me.chanjar.weixin.cp.api.impl.WxCpMeetingServiceImpl Maven / Gradle / Ivy
package me.chanjar.weixin.cp.api.impl;
import com.google.common.collect.ImmutableMap;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpMeetingService;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.oa.meeting.WxCpMeeting;
import me.chanjar.weixin.cp.bean.oa.meeting.WxCpMeetingUpdateResult;
import me.chanjar.weixin.cp.bean.oa.meeting.WxCpUserMeetingIdResult;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Oa.*;
/**
* 企业微信日程接口.
* 企业和开发者通过会议接口可以便捷地预定及管理会议,用于小组周会、部门例会等场景。
* 调用接口的应用自动成为会议创建者,也可指定成员作为会议管理员辅助管理。
* 官方文档:https://developer.work.weixin.qq.com/document/path/93626
*
* @author wangmeng3486 created on 2023-01-31
*/
@RequiredArgsConstructor
public class WxCpMeetingServiceImpl implements WxCpMeetingService {
private final WxCpService cpService;
@Override
public String create(WxCpMeeting meeting) throws WxErrorException {
return this.cpService.post(this.cpService.getWxCpConfigStorage().getApiUrl(MEETING_ADD),
WxCpGsonBuilder.create().toJson(meeting));
}
@Override
public WxCpMeetingUpdateResult update(WxCpMeeting meeting) throws WxErrorException {
final String response = this.cpService.post(this.cpService.getWxCpConfigStorage().getApiUrl(MEETING_UPDATE),
WxCpGsonBuilder.create().toJson(meeting));
return WxCpGsonBuilder.create().fromJson(response, WxCpMeetingUpdateResult.class);
}
@Override
public void cancel(String meetingId) throws WxErrorException {
this.cpService.post(this.cpService.getWxCpConfigStorage().getApiUrl(MEETING_CANCEL),
WxCpGsonBuilder.create().toJson(ImmutableMap.of("meetingid", meetingId)));
}
@Override
public WxCpMeeting getDetail(String meetingId) throws WxErrorException {
final String response = this.cpService.post(this.cpService.getWxCpConfigStorage().getApiUrl(MEETING_DETAIL),
WxCpGsonBuilder.create().toJson(ImmutableMap.of("meetingid", meetingId)));
return WxCpGsonBuilder.create().fromJson(response, WxCpMeeting.class);
}
@Override
public WxCpUserMeetingIdResult getUserMeetingIds(String userId, String cursor, Integer limit,
Long beginTime, Long endTime) throws WxErrorException {
final Map param = new HashMap<>(3);
param.put("userid", userId);
if (cursor != null) {
param.put("cursor", cursor);
}
if (limit != null) {
param.put("limit", limit);
}
if (beginTime != null) {
param.put("begin_time", beginTime);
}
if (endTime != null) {
param.put("end_time", endTime);
}
final String response = this.cpService.post(this.cpService.getWxCpConfigStorage().getApiUrl(GET_USER_MEETING_ID),
WxCpGsonBuilder.create().toJson(param));
return WxCpGsonBuilder.create().fromJson(response, WxCpUserMeetingIdResult.class);
}
}