sdk/oapiSdk/lark_oapi/client.py

286 lines
12 KiB
Python
Raw Permalink Normal View History

2025-08-19 10:20:23 +00:00
# Code generated by Lark OpenAPI.
from typing import Optional
from .core.utils.files import Files
from .core.const import UTF_8, APPLICATION_JSON
from .core import logger, JSON
from .core.model import *
from .core.token import TokenManager, verify
from .core.http import Transport
from .api.report.service import ReportService
from .api.search.service import SearchService
from .api.acs.service import AcsService
from .api.application.service import ApplicationService
from .api.corehr.service import CorehrService
from .api.mdm.service import MdmService
from .api.payroll.service import PayrollService
from .api.tenant.service import TenantService
from .api.translation.service import TranslationService
from .api.workplace.service import WorkplaceService
from .api.passport.service import PassportService
from .api.vc.service import VcService
from .api.board.service import BoardService
from .api.calendar.service import CalendarService
from .api.contact.service import ContactService
from .api.personal_settings.service import PersonalSettingsService
from .api.minutes.service import MinutesService
from .api.docx.service import DocxService
from .api.im.service import ImService
from .api.admin.service import AdminService
from .api.helpdesk.service import HelpdeskService
from .api.performance.service import PerformanceService
from .api.sheets.service import SheetsService
from .api.base.service import BaseService
from .api.event.service import EventService
from .api.meeting_room.service import MeetingRoomService
from .api.verification.service import VerificationService
from .api.bitable.service import BitableService
from .api.block.service import BlockService
from .api.lingo.service import LingoService
from .api.aily.service import AilyService
from .api.apaas.service import ApaasService
from .api.document_ai.service import DocumentAiService
from .api.task.service import TaskService
from .api.compensation.service import CompensationService
from .api.hire.service import HireService
from .api.human_authentication.service import HumanAuthenticationService
from .api.moments.service import MomentsService
from .api.optical_char_recognition.service import OpticalCharRecognitionService
from .api.speech_to_text.service import SpeechToTextService
from .api.attendance.service import AttendanceService
from .api.ehr.service import EhrService
from .api.drive.service import DriveService
from .api.okr.service import OkrService
from .api.approval.service import ApprovalService
from .api.cardkit.service import CardkitService
from .api.mail.service import MailService
from .api.security_and_compliance.service import SecurityAndComplianceService
from .api.wiki.service import WikiService
from .api.authen.service import AuthenService
from .api.baike.service import BaikeService
from .api.docs.service import DocsService
from .api.auth.service import AuthService
class Client(object):
def __init__(self) -> None:
self._config: Optional[Config] = None
self.report: Optional[ReportService] = None
self.search: Optional[SearchService] = None
self.acs: Optional[AcsService] = None
self.application: Optional[ApplicationService] = None
self.corehr: Optional[CorehrService] = None
self.mdm: Optional[MdmService] = None
self.payroll: Optional[PayrollService] = None
self.tenant: Optional[TenantService] = None
self.translation: Optional[TranslationService] = None
self.workplace: Optional[WorkplaceService] = None
self.passport: Optional[PassportService] = None
self.vc: Optional[VcService] = None
self.board: Optional[BoardService] = None
self.calendar: Optional[CalendarService] = None
self.contact: Optional[ContactService] = None
self.personal_settings: Optional[PersonalSettingsService] = None
self.minutes: Optional[MinutesService] = None
self.docx: Optional[DocxService] = None
self.im: Optional[ImService] = None
self.admin: Optional[AdminService] = None
self.helpdesk: Optional[HelpdeskService] = None
self.performance: Optional[PerformanceService] = None
self.sheets: Optional[SheetsService] = None
self.base: Optional[BaseService] = None
self.event: Optional[EventService] = None
self.meeting_room: Optional[MeetingRoomService] = None
self.verification: Optional[VerificationService] = None
self.bitable: Optional[BitableService] = None
self.block: Optional[BlockService] = None
self.lingo: Optional[LingoService] = None
self.aily: Optional[AilyService] = None
self.apaas: Optional[ApaasService] = None
self.document_ai: Optional[DocumentAiService] = None
self.task: Optional[TaskService] = None
self.compensation: Optional[CompensationService] = None
self.hire: Optional[HireService] = None
self.human_authentication: Optional[HumanAuthenticationService] = None
self.moments: Optional[MomentsService] = None
self.optical_char_recognition: Optional[OpticalCharRecognitionService] = None
self.speech_to_text: Optional[SpeechToTextService] = None
self.attendance: Optional[AttendanceService] = None
self.ehr: Optional[EhrService] = None
self.drive: Optional[DriveService] = None
self.okr: Optional[OkrService] = None
self.approval: Optional[ApprovalService] = None
self.cardkit: Optional[CardkitService] = None
self.mail: Optional[MailService] = None
self.security_and_compliance: Optional[SecurityAndComplianceService] = None
self.wiki: Optional[WikiService] = None
self.authen: Optional[AuthenService] = None
self.baike: Optional[BaikeService] = None
self.docs: Optional[DocsService] = None
self.auth: Optional[AuthService] = None
@staticmethod
def builder() -> "ClientBuilder":
return ClientBuilder()
def request(self, request: BaseRequest, option: Optional[RequestOption] = None) -> BaseResponse:
if option is None:
option = RequestOption()
# 鉴权、获取token
verify(self._config, request, option)
# 发起请求
raw_resp = Transport.execute(self._config, request, option)
# 返回结果
resp = BaseResponse()
content_type = raw_resp.headers.get(CONTENT_TYPE)
if content_type is not None and content_type.startswith(APPLICATION_JSON):
resp = JSON.unmarshal(str(raw_resp.content, UTF_8), BaseResponse)
elif 200 <= raw_resp.status_code < 300:
resp.code = 0
resp.raw = raw_resp
return resp
async def arequest(self, request: BaseRequest, option: Optional[RequestOption] = None) -> BaseResponse:
if option is None:
option = RequestOption()
# 鉴权、获取token
verify(self._config, request, option)
# 解析文件
request.files = Files.extract_files(request.body)
# 发起请求
raw_resp = await Transport.aexecute(self._config, request, option)
# 返回结果
resp = BaseResponse()
content_type = raw_resp.headers.get(CONTENT_TYPE)
if content_type is not None and content_type.startswith(APPLICATION_JSON):
resp = JSON.unmarshal(str(raw_resp.content, UTF_8), BaseResponse)
elif 200 <= raw_resp.status_code < 300:
resp.code = 0
resp.raw = raw_resp
return resp
class ClientBuilder(object):
def __init__(self) -> None:
self._config = Config()
def app_id(self, app_id: str) -> "ClientBuilder":
self._config.app_id = app_id
return self
def app_secret(self, app_secret: str) -> "ClientBuilder":
self._config.app_secret = app_secret
return self
def domain(self, domain: str) -> "ClientBuilder":
self._config.domain = domain
return self
def timeout(self, timeout: float) -> "ClientBuilder":
self._config.timeout = timeout
return self
def app_type(self, app_type: AppType) -> "ClientBuilder":
self._config.app_type = app_type
return self
def app_ticket(self, app_ticket: str) -> "ClientBuilder":
self._config.app_ticket = app_ticket
return self
def enable_set_token(self, enable_set_token: bool) -> "ClientBuilder":
self._config.enable_set_token = enable_set_token
return self
def cache(self, cache: ICache) -> "ClientBuilder":
self._config.cache = cache
return self
def log_level(self, log_level: LogLevel) -> "ClientBuilder":
self._config.log_level = log_level
return self
def build(self) -> Client:
client: Client = Client()
client._config = self._config
# 初始化缓存
self._init_cache()
# 初始化日志
self._init_logger()
# 初始化 服务
client.report = ReportService(self._config)
client.search = SearchService(self._config)
client.acs = AcsService(self._config)
client.application = ApplicationService(self._config)
client.corehr = CorehrService(self._config)
client.mdm = MdmService(self._config)
client.payroll = PayrollService(self._config)
client.tenant = TenantService(self._config)
client.translation = TranslationService(self._config)
client.workplace = WorkplaceService(self._config)
client.passport = PassportService(self._config)
client.vc = VcService(self._config)
client.board = BoardService(self._config)
client.calendar = CalendarService(self._config)
client.contact = ContactService(self._config)
client.personal_settings = PersonalSettingsService(self._config)
client.minutes = MinutesService(self._config)
client.docx = DocxService(self._config)
client.im = ImService(self._config)
client.admin = AdminService(self._config)
client.helpdesk = HelpdeskService(self._config)
client.performance = PerformanceService(self._config)
client.sheets = SheetsService(self._config)
client.base = BaseService(self._config)
client.event = EventService(self._config)
client.meeting_room = MeetingRoomService(self._config)
client.verification = VerificationService(self._config)
client.bitable = BitableService(self._config)
client.block = BlockService(self._config)
client.lingo = LingoService(self._config)
client.aily = AilyService(self._config)
client.apaas = ApaasService(self._config)
client.document_ai = DocumentAiService(self._config)
client.task = TaskService(self._config)
client.compensation = CompensationService(self._config)
client.hire = HireService(self._config)
client.human_authentication = HumanAuthenticationService(self._config)
client.moments = MomentsService(self._config)
client.optical_char_recognition = OpticalCharRecognitionService(self._config)
client.speech_to_text = SpeechToTextService(self._config)
client.attendance = AttendanceService(self._config)
client.ehr = EhrService(self._config)
client.drive = DriveService(self._config)
client.okr = OkrService(self._config)
client.approval = ApprovalService(self._config)
client.cardkit = CardkitService(self._config)
client.mail = MailService(self._config)
client.security_and_compliance = SecurityAndComplianceService(self._config)
client.wiki = WikiService(self._config)
client.authen = AuthenService(self._config)
client.baike = BaikeService(self._config)
client.docs = DocsService(self._config)
client.auth = AuthService(self._config)
return client
def _init_cache(self):
if self._config.cache is not None:
TokenManager.cache = self._config.cache
def _init_logger(self):
logger.setLevel(int(self._config.log_level.value))