@tnwx/wxcp
Version:
TNWX 微信系开发脚手架之极速开发企业微信/企业号
326 lines • 14.3 kB
JavaScript
"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