
com.yunpian.sdk.api.UserApi Maven / Gradle / Ivy
/**
*
*/
package com.yunpian.sdk.api;
import java.util.List;
import java.util.Map;
import org.apache.http.NameValuePair;
import com.yunpian.sdk.YunpianClient;
import com.yunpian.sdk.constant.Code;
import com.yunpian.sdk.model.Result;
import com.yunpian.sdk.model.User;
import com.yunpian.sdk.util.ApiUtil;
import com.yunpian.sdk.util.JsonUtil;
/**
* https://www.yunpian.com/api2.0/user.html
*
* @author dzh
* @date Nov 23, 2016 1:10:42 PM
* @since 1.2.0
*/
public class UserApi extends YunpianApi {
public static final String NAME = "user";
@Override
public String name() {
return NAME;
}
@Override
public void init(YunpianClient clnt) {
super.init(clnt);
host(clnt.getConf().getConf(YP_USER_HOST, "https://sms.yunpian.com"));
}
/**
* 查账户信息
*
*
* 参数名 类型 是否必须 描述 示例
*
*
* apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
*
*
* @return
*/
public Result get() {
Result r = new Result<>();
List list = param2pair(null, r, APIKEY);
if (r.getCode() != Code.OK)
return r;
String data = format2Form(list);
MapResultHandler h = new MapResultHandler() {
@Override
public User data(Map rsp) {
switch (version()) {
case VERSION_V1:
return JsonUtil.fromJson(rsp.get(USER), User.class);
case VERSION_V2:
return map2User(rsp);
}
return null;
}
@Override
public Integer code(Map rsp) {
return YunpianApi.code(rsp, UserApi.this.version());
}
};
try {
return path("get.json").post(uri(), data, h);
} catch (Exception e) {
return h.catchExceptoin(e, null);
}
}
/**
* 修改账户信息
*
*
* 参数名 类型 是否必须 描述 示例
*
*
* apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
*
*
* emergency_contact String 否 紧急联系人 zhangshan
*
*
* emergency_mobile String 否 紧急联系人手机号 13012345678
*
*
* alarm_balance Long 否 短信余额提醒阈值。 一天只提示一次 100
*
*
* @param param
* emergency_contact emergency_mobile alarm_balance
* @return
*/
public Result set(Map param) {
Result r = new Result<>();
List list = param2pair(param, r, APIKEY);
if (r.getCode() != Code.OK)
return r;
String data = format2Form(list);
MapResultHandler h = new MapResultHandler() {
@Override
public User data(Map rsp) {
switch (version()) {
case VERSION_V2:
return map2User(rsp);
}
return null;
}
@Override
public Integer code(Map rsp) {
return YunpianApi.code(rsp, UserApi.this.version());
}
};
try {
return path("set.json").post(uri(), data, h, r);
} catch (Exception e) {
return h.catchExceptoin(e, r);
}
}
public static final User map2User(Map map) {
if (map == null || map.isEmpty())
return null;
try {
User user = new User();
user.setNick(map.get(NICK));
user.setAlarm_balance(Long.parseLong(map.get(ALARM_BALANCE)));
user.setBalance(Double.parseDouble(map.get(BALANCE)));
user.setEmail(map.get(EMAIL));
user.setEmergency_contact(map.get(EMERGENCY_CONTACT));
user.setEmergency_mobile(map.get(EMERGENCY_MOBILE));
user.setGmt_created(ApiUtil.str2date(map.get(GMT_CREATED)));
user.setIp_whitelist(map.get(IP_WHITELIST));
return user;
} catch (Exception e) {
LOG.error(e.getMessage(), e.fillInStackTrace());
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy