初始化
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package com.ifish.jpush.schedule;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.ifish.jpush.common.ClientConfig;
|
||||
import com.ifish.jpush.common.ServiceHelper;
|
||||
import com.ifish.jpush.common.connection.HttpProxy;
|
||||
import com.ifish.jpush.common.connection.IHttpClient;
|
||||
import com.ifish.jpush.common.connection.NativeHttpClient;
|
||||
import com.ifish.jpush.common.resp.APIConnectionException;
|
||||
import com.ifish.jpush.common.resp.APIRequestException;
|
||||
import com.ifish.jpush.common.resp.ResponseWrapper;
|
||||
import com.ifish.jpush.schedule.model.SchedulePayload;
|
||||
import com.ifish.jpush.utils.Preconditions;
|
||||
import com.ifish.jpush.utils.StringUtils;
|
||||
|
||||
public class ScheduleClient {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ScheduleClient.class);
|
||||
private final NativeHttpClient _httpClient;
|
||||
|
||||
private String hostName;
|
||||
private String schedulePath;
|
||||
|
||||
public ScheduleClient(String masterSecret, String appkey) {
|
||||
this(masterSecret, appkey, IHttpClient.DEFAULT_MAX_RETRY_TIMES, null, ClientConfig.getInstance());
|
||||
}
|
||||
|
||||
public ScheduleClient(String masterSecret, String appKey, int maxRetryTimes) {
|
||||
this(masterSecret, appKey, maxRetryTimes, null, ClientConfig.getInstance());
|
||||
}
|
||||
|
||||
public ScheduleClient(String masterSecret, String appKey, int maxRetryTimes, HttpProxy proxy) {
|
||||
this(masterSecret, appKey, maxRetryTimes, proxy, ClientConfig.getInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Schedule Client with custom configuration.
|
||||
* @param masterSecret API access secret of the appKey.
|
||||
* @param appKey The KEY of one application on JPush.
|
||||
* @param maxRetryTimes Max retry times
|
||||
* @param proxy The proxy, if there is no proxy, should be null.
|
||||
* @param conf The client configuration. Can use ClientConfig.getInstance() as default.
|
||||
*/
|
||||
public ScheduleClient(String masterSecret, String appKey, int maxRetryTimes, HttpProxy proxy, ClientConfig conf) {
|
||||
ServiceHelper.checkBasic(appKey, masterSecret);
|
||||
hostName = (String) conf.get(ClientConfig.SCHEDULE_HOST_NAME);
|
||||
schedulePath = (String) conf.get(ClientConfig.SCHEDULE_PATH);
|
||||
|
||||
String authCode = ServiceHelper.getBasicAuthorization(appKey, masterSecret);
|
||||
this._httpClient = new NativeHttpClient(authCode, maxRetryTimes, proxy);
|
||||
}
|
||||
|
||||
public ScheduleResult createSchedule(SchedulePayload payload) throws APIConnectionException, APIRequestException {
|
||||
|
||||
Preconditions.checkArgument(null != payload, "payload should not be null");
|
||||
|
||||
ResponseWrapper response = _httpClient.sendPost(hostName + schedulePath, payload.toString());
|
||||
return ScheduleResult.fromResponse(response, ScheduleResult.class);
|
||||
}
|
||||
|
||||
public ScheduleListResult getScheduleList(int page) throws APIConnectionException, APIRequestException{
|
||||
|
||||
Preconditions.checkArgument(page > 0, "page should more than 0.");
|
||||
|
||||
ResponseWrapper response = _httpClient.sendGet(hostName + schedulePath + "?page=" + page);
|
||||
return ScheduleListResult.fromResponse(response, ScheduleListResult.class);
|
||||
}
|
||||
|
||||
public ScheduleResult getSchedule(String scheduleId) throws APIConnectionException, APIRequestException{
|
||||
|
||||
Preconditions.checkArgument(StringUtils.isNotEmpty(scheduleId), "scheduleId should not be empty");
|
||||
|
||||
ResponseWrapper response = _httpClient.sendGet(hostName + schedulePath + "/" + scheduleId);
|
||||
return ScheduleResult.fromResponse(response, ScheduleResult.class);
|
||||
}
|
||||
|
||||
public ScheduleResult updateSchedule(String scheduleId, SchedulePayload payload) throws APIConnectionException, APIRequestException{
|
||||
|
||||
Preconditions.checkArgument(StringUtils.isNotEmpty(scheduleId), "scheduleId should not be empty");
|
||||
Preconditions.checkArgument(null != payload, "payload should not be null");
|
||||
|
||||
ResponseWrapper response = _httpClient.sendPut(hostName + schedulePath + "/" + scheduleId,
|
||||
payload.toString());
|
||||
return ScheduleResult.fromResponse(response, ScheduleResult.class);
|
||||
}
|
||||
|
||||
public void deleteSchedule(String scheduleId) throws APIConnectionException, APIRequestException{
|
||||
|
||||
Preconditions.checkArgument(StringUtils.isNotEmpty(scheduleId), "scheduleId should not be empty");
|
||||
|
||||
_httpClient.sendDelete(hostName + schedulePath + "/" + scheduleId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Window
|
||||
Reference in New Issue
Block a user