
com.pubnub.api.endpoints.push.ListPushProvisions Maven / Gradle / Ivy
package com.pubnub.api.endpoints.push;
import com.pubnub.api.PubNub;
import com.pubnub.api.PubNubException;
import com.pubnub.api.builder.PubNubErrorBuilder;
import com.pubnub.api.endpoints.Endpoint;
import com.pubnub.api.enums.PNOperationType;
import com.pubnub.api.enums.PNPushType;
import com.pubnub.api.models.consumer.push.PNPushListProvisionsResult;
import lombok.Setter;
import lombok.experimental.Accessors;
import retrofit2.Call;
import retrofit2.Response;
import java.util.List;
import java.util.Map;
@Accessors(chain = true, fluent = true)
public class ListPushProvisions extends Endpoint, PNPushListProvisionsResult> {
@Setter
private PNPushType pushType;
@Setter
private String deviceId;
public ListPushProvisions(PubNub pubnub) {
super(pubnub);
}
@Override
protected void validateParams() throws PubNubException {
if (this.getPubnub().getConfiguration().getSubscribeKey() == null || this.getPubnub().getConfiguration().getSubscribeKey().isEmpty()) {
throw PubNubException.builder().pubnubError(PubNubErrorBuilder.PNERROBJ_SUBSCRIBE_KEY_MISSING).build();
}
if (pushType == null) {
throw PubNubException.builder().pubnubError(PubNubErrorBuilder.PNERROBJ_PUSH_TYPE_MISSING).build();
}
if (deviceId == null || deviceId.isEmpty()) {
throw PubNubException.builder().pubnubError(PubNubErrorBuilder.PNERROBJ_DEVICE_ID_MISSING).build();
}
}
@Override
protected Call> doWork(Map params) throws PubNubException {
params.put("type", pushType.name().toLowerCase());
PushService service = this.createRetrofit().create(PushService.class);
return service.listChannelsForDevice(this.getPubnub().getConfiguration().getSubscribeKey(), deviceId, params);
}
@Override
protected PNPushListProvisionsResult createResponse(Response> input) throws PubNubException {
if (input.body() == null) {
throw PubNubException.builder().pubnubError(PubNubErrorBuilder.PNERROBJ_PARSING_ERROR).build();
}
return PNPushListProvisionsResult.builder().channels(input.body()).build();
}
protected int getConnectTimeout() {
return this.getPubnub().getConfiguration().getConnectTimeout();
}
protected int getRequestTimeout() {
return this.getPubnub().getConfiguration().getNonSubscribeRequestTimeout();
}
@Override
protected PNOperationType getOperationType() {
return PNOperationType.PNPushNotificationEnabledChannelsOperation;
}
@Override
protected boolean isAuthRequired() {
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy