UNPKG

ddinit

Version:

封装了一些常用的钉钉小程序服务端API,获取员工周期性打卡结果(每日,任意时间,上周,上月...),在/离职员工列表,获取用户/部门信息、发送工作消息、审批流等

284 lines (283 loc) 10.5 kB
interface IMessage { agent_id: number; userid_list: string; dept_id_list?: string; to_all_user?: boolean; msg: object; } interface ITask { agent_id: number; task_id: number; } interface IInstance { process_code: string; originator_user_id: string; dept_id: number; approvers: string; form_component_values: any; } interface IRegisterCallBack { call_back_tag: string[]; token: string; aes_key: string; url: string; } interface ICrypto { timestamp: number; nonce: string; token: string; userid: string; encodingAESKey: string; CorpId: string; } declare class DDinit { weekdata: any[]; moondata: any[]; daliyData: any[]; holidayData: {}; data: { userIdList: any[]; employee: any[]; }; cooldata: { dimissionList: any[]; employee: any[]; }; private Key; private Secret; private AccessToken; /** * 构建主要参数 * @param {string} appKey * @param {string} appSecre * @param {number} 周数据缓存大小,默认为1,传0不缓存 * @param {number} 月数据缓存大小,默认为1,传0不缓存 */ constructor(key: string, Secret: string, week?: number, moon?: number, speed?: number); /** * 启动时刷新数据 */ refreshen(week: number, moon: number, speed: number): Promise<void>; /** * 不传参时,默认以最高速度获取在职员工id信息 * @param speed 获取速度 * @param Substate 员工子状态 * @param offsetis 分页值,默认从0开始 * @param sizeis 单页数据大小 * @param token 秘钥 * @returns array 离职员工列表 */ getStatusList(Substate?: string, offsetis?: string | number, sizeis?: string | number, token?: string): Promise<any[]>; /** * 不传参时,默认以最高速度获取离职员工id信息 * @param speed 获取速度 * @param offsetis 分页值 * @param sizeis 单词取得数据大小 * @param token 秘钥 * @returns array 离职员工id信息 */ getdimission(offsetis?: string | number, sizeis?: string | number, token?: string): Promise<any[]>; /** * 不传参时,函数默认调用在职(待离职也算)员工列表,并获取其id,姓名,职位,部门信息 * @param list 员工id列表 * @param token 秘钥 * @returns array 返回员工部门职位,姓名和id信息 */ getemployee(list?: { [x: string]: any; }, token?: string): Promise<any[]>; /** * 不传参时,默认以3秒一次获取在职员工每日打卡结果 * @param offsetis 分页值,不传参默认以0开始 * @param limitis 分页大小,也就是每一次查询时的返回数据条数,默认为50 * @param list 员工列表,默认使用在职员工信息 * @param token 秘钥 * @returns array 返回在职员工打卡结果 */ gettoDayData(offsetis?: number, limitis?: number, list?: any[], token?: string): Promise<any[]>; /** * 返回上num周的数据,不传数据默认获取上周在职员工的打卡数据(不会解析离职员工信息,返回'已离职') * @param num 获取上num周的数据默认为1,传或不传为上周数据,传2位上第二周数据 * @param ix 暂存下标 * @param offsetis 分页值 * @param limitis 分页数据大小 * @param list 员工id:名字信息表 * @param token 秘钥 */ getWeekData(num?: number, ix?: number, offsetis?: number, limitis?: number, list?: any[], token?: string): Promise<any[]>; /** * 返回上num月的数据,不传数据默认获取上月在职员工的打卡数据(不会解析离职员工信息,返回'已离职') * @param num 获取上num月的数据,默认为1,传或不传为上月数据,传2位上第二月数据 * @param ix 暂存下标 * @param offsetis 分页值 * @param limitis 分页数据大小 * @param list 员工id:名字信息表 * @param token 秘钥 */ getMoonData(num?: number, ix?: number, offsetis?: number, limitis?: number, list?: any[], token?: string): Promise<any[]>; /** * 获取time1和time2之间的用户考勤信息,time1和time2最长间隔7天 * @param useridList 用户id列表,查询考勤数据必填选项 * @param employeeList 用户id与姓名,部门,职位等信息表,格式为数组对象[{name:name,branch:branch}] * @param time1 查询所需的开始时间 * @param time2 查询所需的结束时间 * @param offsetis 分页值,默认从0开始 * @param limitis 单页数据大小,默认为50 * @param apiUrl 请求的url这里似乎是固定的 * @param start 用户id列表的查询起始值,默认从0开始 * @param token 秘钥 */ getKaoqingLists(time1: string, time2: string, useridList?: any[], employeeList?: any[], offsetis?: number, limitis?: number, apiUrl?: string, start?: number, token?: string): Promise<any[]>; /** * 立即获取秘钥并保存在对象中 */ getToken(): Promise<any>; /** * 每(两小时-5s)获取一次token,对象被创建时即被引用 */ getAccessTonken(): Promise<void>; /** * 获取用户ID * @param code 授权码 * @param token 秘钥 */ getUserId(code: string, token?: string): Promise<any>; /** * 获取用户信息 * @param userid 用户id * @param token 秘钥 */ getUser(userid: string, token?: string): Promise<any>; /** * 获取子部门列表 * @param id 父部门id。根部门传1 * @param token 秘钥 */ childDepartment(id: number, token?: string): Promise<any>; /** * 获取部门列表 * @param id 父部门id(如果不传,默认部门为根部门,根部门ID为1) * @param token 秘钥 */ department(id: number, token?: string): Promise<any>; /** * 查询部门的所有上级父部门路径 * @param id 希望查询的部门的id,包含查询的部门本身 * @param token 秘钥 */ getAllDepartment(id: number, token?: string): Promise<any>; /** * 查询指定用户的所有上级父部门路径 * @param userId 希望查询的用户的id * @param token 秘钥 */ departmentListParentDepts(userId: string, token?: string): Promise<any>; /** * 获取企业员工人数 * @param onlyActive 0:包含未激活钉钉的人员数量 1:不包含未激活钉钉的人员数量 * @param token 秘钥 */ getOrgUserCount(onlyActive: number, token?: string): Promise<any>; /** * 发送工作消息 * @param data IMessage { * @param agent_id: number; // 应用agent_id, * @param userid_list: string; // 可选(userid_list,dept_id_list, to_all_user必须有一个不能为空) 最大列表长度:100 * @param dept_id_list?: string; // 接收者的部门id列表, 最大长度20 * @param to_all_user?: boolean; // 是否发送给企业全部用户 * @param msg: object; // json对象 * } * @param token 秘钥 */ setWorkerMessage(data: IMessage, token?: string): Promise<any>; /** * 查询工作通知消息的发送进度 * @param data ITask { * @param agent_id: number; // 应用agent_id, * @param task_id: number; // 发送消息时钉钉返回的任务id * } * @param token 秘钥 */ viewWorkerMessage(data: ITask, token?: string): Promise<any>; /** * 查询工作通知消息的发送结果 * @param data ITask { * @param agent_id: number; // 应用agent_id, * @param task_id: number; // 发送消息时钉钉返回的任务id * } * @param token 秘钥 */ resultWorkerMessage(data: ITask, token?: string): Promise<any>; /** * 创建一个审批实例 * @param data IInstance { * @param process_code: string; // 审批流的唯一码,process_code就在审批流编辑的页面URL中 * @param originator_user_id: string; // 审批实例发起人的userid * @param dept_id: number; // 发起人所在的部门,如果发起人属于根部门,传-1 * @param approvers: string; // 审批人userid列表,最大列表长度:20。 * @param form_component_values: any; // 审批流表单参数 * } * @param token 秘钥 */ createProcessInstance(data: IInstance, token?: string): Promise<any>; /** * 获取审批实例 * @param id 审批实例ID * @param token 秘钥 */ getProcessInstance(id: string, token?: string): Promise<any>; /** * 注册审批回调 * @param data IRegisterCallBack{ * @param call_back_tag: string[]; 需要监听的事件类型 * @param token: 加解密需要用到的token; * @param aes_key: 数据加密密钥。用于回调数据的加密,长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,您可以随机生成,ISV(服务提供商)推荐使用注册套件时填写的EncodingAESKey; * @param url: 接收事件回调的url,必须是公网可以访问的url地址 * } * @param token */ registerCallBack(data: IRegisterCallBack, token?: string): Promise<any>; /** * 实例化crypto * @param token * @param encodingAESKey * @param CorpId */ instanceCrypto(data: ICrypto): { userid: string; msg_signature: any; timeStamp: number; nonce: string; encrypt: any; }; /** * 获取事件回调 * @param token 秘钥 */ getCallBack(token?: string): Promise<any>; /** * 删除回调注册事件 * @param token 秘钥 */ deleteCallBack(token?: string): Promise<any>; job(speed?: number): Promise<void>; getDoubleIndex: (arr: { [x: string]: any; }, start: number, end: number) => any[]; getHoliday(year?: number): Promise<{}>; destroy(): any; } /** * 授权登录 * @param accessKey 扫码登录应用的appId * @param appSecret 扫码登录应用的appSecret * @param code 临时授权码 */ export declare function authEncrypto(accessKey: string, appSecret: string, code: string): Promise<any>; /** * 发送钉钉通知 消息类型 https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq * @param Token * @param msg */ export declare function ddNotification(Token: string, msg: any): Promise<any>; export default DDinit;