| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package calendar
- import (
- "dashoo.cn/opms_libary/plugin/dingtalk/base"
- "dashoo.cn/opms_libary/plugin/dingtalk/context"
- "dashoo.cn/opms_libary/utils"
- "fmt"
- )
- // 初始化创建日程的接口
- func initCreateEventUrl(userId string) string {
- return fmt.Sprintf("/v1.0/calendar/users/%v/calendars/primary/events", userId)
- }
- // 初始化查询单个日程接口
- func initGetEventByIdUrl(userId, calendarId string) string {
- return fmt.Sprintf("/v1.0/calendar/users/%v/calendars/primary/events/%v?maxAttendees=100", userId, calendarId)
- }
- // 初始化查询用户忙闲的接口
- func initUserBusyStatusUrl(userId string) string {
- return fmt.Sprintf("/v1.0/calendar/users/%v/querySchedule", userId)
- }
- //Calendar 日程
- type Calendar struct {
- base.Base
- }
- //NewCalendar init
- func NewCalendar(context *context.Context) *Calendar {
- c := new(Calendar)
- c.Context = context
- return c
- }
- //CreateSchedule 创建日程
- func (c *Calendar) CreateSchedule(params *DingAddScheduleParams) (returnData *CreateEventResponse, err error) {
- var attendees []*EventAttendees
- for index := range params.UserIds {
- att := EventAttendees{
- Id: ¶ms.UserIds[index],
- }
- attendees = append(attendees, &att)
- }
- start := &EventStart{
- Date: ¶ms.BeginDate,
- DateTime: ¶ms.BeginTime,
- TimeZone: ¶ms.TimeZone,
- }
- end := &EventEnd{
- Date: ¶ms.EndDate,
- DateTime: ¶ms.EndTime,
- TimeZone: ¶ms.TimeZone,
- }
- req := &EventRequest{
- Summary: ¶ms.Summary,
- Description: ¶ms.Description,
- Start: start,
- End: end,
- Attendees: attendees,
- }
- if params.SchType == "20" {
- req.IsAllDay = utils.Bool(true)
- } else {
- req.IsAllDay = utils.Bool(false)
- }
- resp, _ := c.HTTPPostJSONWithAccessToken(initCreateEventUrl(params.UserId), req)
- var data CreateEventResponse
- err = utils.Bytes2object(resp, &data)
- return &data, err
- }
- //GetScheduleByEventId 根据日程Id获取日程数据
- func (c *Calendar) GetScheduleByEventId(params *DingGetScheduleParams) (returnData *GetEventResponse, err error) {
- resp, _ := c.HTTPGetWithAccessToken(initGetEventByIdUrl(params.UserId, params.EventId), nil)
- var data GetEventResponse
- err = utils.Bytes2object(resp, &data)
- return &data, err
- }
- //GetUserBusyStatus 获取用户闲忙信息
- func (c *Calendar) GetUserBusyStatus(params *DingIsUserBusyParams) (returnData *GetScheduleResponse, err error) {
- var userIds []*string
- for index := range params.UserIds {
- userIds = append(userIds, ¶ms.UserIds[index])
- }
- req := &GetScheduleRequest{
- UserIds: userIds,
- StartTime: ¶ms.BeginTime,
- EndTime: ¶ms.EndTime,
- }
- resp, _ := c.HTTPPostJSONWithAccessToken(initUserBusyStatusUrl(params.UserId), req)
- var data GetScheduleResponse
- err = utils.Bytes2object(resp, &data)
- return &data, err
- }
|