001package com.plivo.api.models.recording; 002 003import com.plivo.api.models.base.ListResponse; 004import com.plivo.api.models.base.VoiceLister; 005import com.plivo.api.util.PropertyFilter; 006import java.util.Date; 007import retrofit2.Call; 008 009public class RecordingLister extends VoiceLister<Recording> { 010 011 private String subaccount; 012 private String callUuid; 013 private String fromNumber; 014 private String toNumber; 015 private String conferenceName; 016 private String mpcName; 017 private String conferenceUuid; 018 private String mpcUuid; 019 private PropertyFilter<Date> addTime; 020 private PropertyFilter<Integer> recordingStorageDuration; 021 022 public String subaccount() { 023 return this.subaccount; 024 } 025 026 public String callUuid() { 027 return this.callUuid; 028 } 029 030 public String fromNumber() { 031 return this.fromNumber; 032 } 033 034 public String toNumber() { 035 return this.toNumber; 036 } 037 038 public String conferenceName() { 039 return this.conferenceName; 040 } 041 042 public String mpcName() { 043 return this.mpcName; 044 } 045 046 public String conferenceUuid() { 047 return this.conferenceUuid; 048 } 049 050 public String mpcUuid() { 051 return this.mpcUuid; 052 } 053 054 public PropertyFilter<Date> addTime() { 055 return this.addTime; 056 } 057 058 public PropertyFilter<Integer> recordingStorageDuration() { 059 return this.recordingStorageDuration; 060 } 061 062 /** 063 * @param subaccount auth_id of the subaccount. Lists only those recordings of the main accounts 064 * which are tied to the specified subaccount. 065 */ 066 public RecordingLister subaccount(final String subaccount) { 067 this.subaccount = subaccount; 068 return this; 069 } 070 071 /** 072 * @param fromNumber Used to filter recordings for a specific fromNumber. 073 */ 074 public RecordingLister fromNumber(final String fromNumber) { 075 this.fromNumber = fromNumber; 076 return this; 077 } 078 079 /** 080 * @param toNumber Used to filter recordings for a specific toNumber. 081 */ 082 public RecordingLister toNumber(final String toNumber) { 083 this.toNumber = toNumber; 084 return this; 085 } 086 087 /** 088 * @param conferenceName Used to filter recordings for a specific conferenceName. 089 */ 090 public RecordingLister conferenceName(final String conferenceName) { 091 this.conferenceName = conferenceName; 092 return this; 093 } 094 095 /** 096 * @param mpcName Used to filter recordings for a specific mpcName. 097 */ 098 public RecordingLister mpcName(final String mpcName) { 099 this.mpcName = mpcName; 100 return this; 101 } 102 103 /** 104 * @param conferenceUuid Used to filter recordings for a specific conferenceUuid. 105 */ 106 public RecordingLister conferenceUuid(final String conferenceUuid) { 107 this.conferenceUuid = conferenceUuid; 108 return this; 109 } 110 111 /** 112 * @param mpcUuid Used to filter recordings for a specific mpcUuid. 113 */ 114 public RecordingLister mpcUuid(final String mpcUuid) { 115 this.mpcUuid = mpcUuid; 116 return this; 117 } 118 119 /** 120 * @param callUuid Used to filter recordings for a specific call. 121 */ 122 public RecordingLister callUuid(final String callUuid) { 123 this.callUuid = callUuid; 124 return this; 125 } 126 127 /** 128 * @param addTime Used to filter out recordings according to the time they were added. 129 */ 130 public RecordingLister addTime(final PropertyFilter<Date> addTime) { 131 this.addTime = addTime; 132 return this; 133 } 134 135 public RecordingLister recordingStorageDuration(final PropertyFilter<Integer> recordingStorageDuration) { 136 this.recordingStorageDuration = recordingStorageDuration; 137 return this; 138 } 139 140 @Override 141 protected Call<ListResponse<Recording>> obtainCall() { 142 return client().getVoiceApiService().recordingList(client().getAuthId(), toMap()); 143 } 144 145 @Override 146 protected Call<ListResponse<Recording>> obtainFallback1Call() { 147 return client().getVoiceFallback1Service().recordingList(client().getAuthId(), toMap()); 148 } 149 150 @Override 151 protected Call<ListResponse<Recording>> obtainFallback2Call() { 152 return client().getVoiceFallback2Service().recordingList(client().getAuthId(), toMap()); 153 } 154}