001package com.plivo.api.models.verify_session;
002
003import com.plivo.api.exceptions.PlivoRestException;
004import com.plivo.api.models.base.ListResponse;
005import com.plivo.api.util.PropertyFilter;
006import retrofit2.Call;
007import retrofit2.Response;
008
009import com.plivo.api.models.base.Lister;
010
011import java.io.IOException;
012import java.lang.reflect.Field;
013import java.util.Date;
014
015public class SessionLister extends  Lister<VerifySessionList> {
016  private String subaccount = null;
017  private PropertyFilter<Date> sessionTime = null;
018  private String status = null;
019  private String country = null;
020  private String alias =  null;
021  private String appUuid = null;
022  private String recipient = null;
023  public String subaccount() {
024    return this.subaccount;
025  }
026  public String status() {
027    return this.status;
028  }
029  public String country() {
030    return this.country;
031  }
032  public String alias() {
033    return this.alias;
034  }
035  public String appUuid() {
036    return this.appUuid;
037  }
038  public String recipient() {
039    return this.recipient;
040  }
041  public PropertyFilter<Date> sessionTime() {
042    return this.sessionTime;
043  }
044  public SessionLister subaccount(final String subaccount) {
045    this.subaccount = subaccount;
046    return this;
047  }
048  public SessionLister status(final String status) {
049    this.status = status;
050    return this;
051  }
052  public SessionLister country(final String country) {
053    this.country = country;
054    return this;
055  }
056  public SessionLister alias(final String alias) {
057    this.alias = alias;
058    return this;
059  }
060  public SessionLister appUuid(final String appUuid) {
061    this.appUuid = appUuid;
062    return this;
063  }
064  public SessionLister recipient(final String recipient) {
065    this.recipient = recipient;
066    return this;
067  }
068  public SessionLister sessionTime(final PropertyFilter<Date> sessionTime) {
069    this.sessionTime = sessionTime;
070    return this;
071  }
072  @Override
073  /**
074   * Actually list instances of the resource.
075   */
076  public ListResponse<VerifySessionList> list() throws IOException, PlivoRestException {
077    validate();
078    Response<ListResponse<VerifySessionList>> response = obtainCall().execute();
079    handleResponse(response);
080
081    try
082    {
083      Field meta = response.body().getClass().getDeclaredField("meta");
084      meta.setAccessible(true);
085      meta.set(response.body(), new SessionMeta(response.body().getMeta()));
086    }
087    catch(Exception e)
088    {
089      e.printStackTrace();
090    }
091
092    return response.body();
093  }
094
095  @Override
096  protected Call<ListResponse<VerifySessionList>> obtainCall() {
097    return client().getApiService().sessionList(client().getAuthId(), toMap());
098  }
099
100}