dingtalk.client.api.checkin 源代码

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

import time
import datetime

import six
from dingtalk.core.utils import to_text

from dingtalk.client.api.base import DingTalkBaseAPI


[文档]class Checkin(DingTalkBaseAPI):
[文档] def record(self, department_id, start_time, end_time, offset=0, size=100, order_asc=True): """ 获得签到数据 :param department_id: 部门id(1 表示根部门) :param start_time: 开始时间 :param end_time: 结束时间 :param offset: 偏移量 :param size: 分页大小 :param order_asc: 是否正序排列 :return: """ if isinstance(start_time, (datetime.date, datetime.datetime)): start_time = int(time.mktime(start_time.timetuple()) * 1000) if isinstance(end_time, (datetime.date, datetime.datetime)): end_time = int(time.mktime(end_time.timetuple()) * 1000) assert isinstance(start_time, six.integer_types) and isinstance(end_time, six.integer_types) return self._get( '/checkin/record', { 'department_id': department_id, 'start_time': start_time, 'end_time': end_time, 'offset': offset, 'size': size, 'order_asc': 'asc' if order_asc else 'desc' }, result_processor=lambda x: x['data'] )
[文档] def record_get(self, userid_list, start_time, end_time, offset=0, size=100): """ 获取多个用户的签到记录 (如果是取1个人的数据,时间范围最大到10天,如果是取多个人的数据,时间范围最大1天。) :param userid_list: 需要查询的用户列表 :param start_time: 起始时间 :param end_time: 截止时间 :param offset: 偏移量 :param size: 分页大小 :return: """ if isinstance(start_time, (datetime.date, datetime.datetime)): start_time = int(time.mktime(start_time.timetuple()) * 1000) if isinstance(end_time, (datetime.date, datetime.datetime)): end_time = int(time.mktime(end_time.timetuple()) * 1000) assert isinstance(start_time, six.integer_types) and isinstance(end_time, six.integer_types) if isinstance(userid_list, (list, tuple, set)): userid_list = ','.join(map(to_text, userid_list)) return self._top_request( 'dingtalk.smartwork.checkin.record.get', { 'userid_list': userid_list, 'start_time': start_time, 'end_time': end_time, 'offset': offset, 'size': size } )