UNPKG

@tnwx/wxcp

Version:

TNWX 微信系开发脚手架之极速开发企业微信/企业号

326 lines 14.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const util = require("util"); const kits_1 = require("@tnwx/kits"); const accesstoken_1 = require("@tnwx/accesstoken"); /** * @author Javen * @copyright javendev@126.com * @description OA 相关接口 */ class QyOAApi { /** * 创建日历 * @param organizer 指定的组织者userid * @param summary 日历标题。1 ~ 128 字符 * @param color 日历在终端上显示的颜色,RGB颜色编码16进制表示,例如:”#0000FF” 表示纯蓝色 * @param description 日历描述。0 ~ 512 字符 * @param shares 日历共享成员列表。最多2000人 */ static addCalendar(organizer, summary, color, description, shares) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.addCalendarUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ calendar: { organizer: organizer, summary: summary, color: color, description: description, shares: shares } })); }); } /** * 更新日历 * @param calId 日历ID * @param summary 日历标题。1 ~ 128 字符 * @param color 日历在终端上显示的颜色,RGB颜色编码16进制表示,例如:”#0000FF” 表示纯蓝色 * @param description 日历描述。0 ~ 512 字符 * @param shares 日历共享成员列表。最多2000人 */ static updateCalendar(calId, summary, color, description, shares) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.updateCalendarUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ calendar: { cal_id: calId, summary: summary, color: color, description: description, shares: shares } })); }); } /** * 获取日历 * @param calIdList 日历ID列表。一次最多可获取1000条 */ static getCalendar(calIdList) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getCalendarUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ cal_id_list: calIdList })); }); } /** * 删除日历 * @param calId 日历ID */ static delCalendar(calId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.delCalendarUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ cal_id: calId })); }); } /** * 创建日程 * @param organizer 组织者 * @param startTime 日程开始时间,Unix时间戳 * @param endTime 日程结束时间,Unix时间戳 * @param attendees 日程参与者列表。最多支持2000人 * @param summary 日程标题。0 ~ 128 字符。不填会默认显示为“新建事件” * @param description 日程描述。0 ~ 512 字符 * @param reminders 提醒相关信息 * @param location 日程地址。0 ~ 128 字符 * @param calId 日程所属日历ID */ static addSchedule(organizer, startTime, endTime, attendees, summary, description, reminders, location, calId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.addScheduleUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ schedule: { organizer: organizer, start_time: startTime, end_time: endTime, attendees: attendees, summary: summary, description: description, reminders: reminders, location: location, cal_id: calId } })); }); } /** * 更新日程 * @param organizer 组织者 * @param scheduleId 日程ID * @param startTime 日程开始时间,Unix时间戳 * @param endTime 日程结束时间,Unix时间戳 * @param attendees 日程参与者列表。最多支持2000人 * @param summary 日程标题。0 ~ 128 字符。不填会默认显示为“新建事件” * @param description 日程描述。0 ~ 512 字符 * @param reminders 提醒相关信息 * @param location 日程地址。0 ~ 128 字符 * @param calId 日程所属日历ID */ static updateSchedule(organizer, scheduleId, startTime, endTime, attendees, summary, description, reminders, location, calId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.updateScheduleUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ schedule: { organizer: organizer, schedule_id: scheduleId, start_time: startTime, end_time: endTime, attendees: attendees, summary: summary, description: description, reminders: reminders, location: location, cal_id: calId } })); }); } /** * 获取日程 * @param scheduleIdList 日程ID列表。一次最多拉取1000条 */ static getSchedule(scheduleIdList) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getScheduleUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ schedule_id_list: scheduleIdList })); }); } /** * 删除日程 * @param scheduleId 日程ID */ static delSchedule(scheduleId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.delScheduleUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ schedule_id: scheduleId })); }); } /** * 获取日历下的日程列表 * @param calId 日历ID * @param offset 分页,偏移量, 默认为0 * @param limit 分页,预期请求的数据量,默认为500,取值范围 1 ~ 1000 */ static getScheduleByCalendar(calId, offset = 0, limit = 500) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getScheduleByCalendarUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ cal_id: calId, offset: offset, limit: limit })); }); } /** * 获取公费电话拨打记录 * @param startTime 查询的起始时间戳 * @param endTime 查询的结束时间戳 * @param offset 分页查询的偏移量 * @param limit 分页查询的每页大小,默认为100条,如该参数大于100则按100处理 */ static getDialRecord(startTime, endTime, offset = 0, limit) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getDialRecordUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ start_time: startTime, end_time: endTime, offset: offset, limit: limit })); }); } /** * 获取打卡数据 * @param checkInType 打卡类型。1:上下班打卡;2:外出打卡;3:全部打卡 * @param startTime 获取打卡记录的开始时间。Unix时间戳 * @param endTime 获取打卡记录的结束时间。Unix时间戳 * @param userIdList 需要获取打卡记录的用户列表 */ static getCheckInData(checkInType, startTime, endTime, userIdList) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getCheckInDataUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ opencheckindatatype: checkInType, starttime: startTime, endtime: endTime, useridlist: userIdList })); }); } /** * 获取打卡规则 * @param datetime 需要获取规则的日期当天0点的Unix时间戳 * @param userIdList 需要获取打卡规则的用户列表 */ static getCheckInoption(datetime, userIdList) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getCheckInoptionUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ datetime: datetime, useridlist: userIdList })); }); } /** * 获取审批模板详情 * @param templateId 模板的唯一标识id */ static getTemplateDetail(templateId) { return __awaiter(this, void 0, void 0, function* () { let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken(); let url = util.format(this.getTemplateDetailUrl, accessToken.getAccessToken); return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({ template_id: templateId })); }); } } exports.QyOAApi = QyOAApi; QyOAApi.addCalendarUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/calendar/add?access_token=%s'; QyOAApi.updateCalendarUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/calendar/update?access_token=%s'; QyOAApi.getCalendarUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/calendar/get?access_token=%s'; QyOAApi.delCalendarUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/calendar/del?access_token=%s'; QyOAApi.addScheduleUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/schedule/add?access_token=%s'; QyOAApi.updateScheduleUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/schedule/update?access_token=%s'; QyOAApi.getScheduleUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/schedule/get?access_token=%s'; QyOAApi.delScheduleUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/schedule/del?access_token=%s'; QyOAApi.getScheduleByCalendarUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/schedule/get_by_calendar?access_token=%s'; QyOAApi.getDialRecordUrl = 'https://qyapi.weixin.qq.com/cgi-bin/dial/get_dial_record?access_token=%s'; QyOAApi.getCheckInDataUrl = 'https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token=%s'; QyOAApi.getCheckInoptionUrl = 'https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckinoption?access_token=%s'; QyOAApi.getTemplateDetailUrl = 'https://qyapi.weixin.qq.com/cgi-bin/oa/gettemplatedetail?access_token=%s'; class Attendees { constructor(userId) { this.userid = userId; } get userId() { return this.userid; } set userId(userId) { this.userid = userId; } } exports.Attendees = Attendees; class Reminders { constructor(isRemind, remindBeforeEventSecs, isRepeat, repeatType) { this.is_remind = isRemind; this.remind_before_event_secs = remindBeforeEventSecs; this.is_repeat = isRepeat; this.repeat_type = repeatType; } get isRemind() { return this.is_remind; } set isRemind(isRemind) { this.is_remind = isRemind; } get remindBeforeEventSecs() { return this.remind_before_event_secs; } set remindBeforeEventSecs(remindBeforeEventSecs) { this.remind_before_event_secs = remindBeforeEventSecs; } get isRepeat() { return this.is_repeat; } set isRepeat(isRepeat) { this.is_repeat = isRepeat; } get repeatType() { return this.repeat_type; } set repeatType(repeatType) { this.repeat_type = repeatType; } } exports.Reminders = Reminders; //# sourceMappingURL=QyOAApi.js.map