获取服务台工单详情和工单列表接口报错

Đang mở
#91 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức phù hợp với người mới
50/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
api

Hướng nghiên cứu

Bắt đầu với lark_oapi/api/helpdesk/v1/model/ticket.py và so sánh model Ticket với tài liệu danh sách ticket của Feishu Helpdesk. Xác minh hình dạng thực tế của response comments và kiểm tra các annotation của constructor và builder của Ticket. Được xem là hoàn tất khi các response ticket-list và ticket-detail deserialize comments thành một danh sách các đối tượng Comments mà không có lỗi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

https://open.feishu.cn/document/server-docs/helpdesk-v1/ticket-management/ticket/list 接口中定义的comments是一个对象,实际上接口返回的comments是一个列表,

将Ticket对象的commens改成列表即可修复:

代码文件路径为lark_oapi/api/helpdesk/v1/model/ticket.py

# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init
from .ticket_user import TicketUser
from .comments import Comments
from .i18n import I18n
from .ticket_user import TicketUser
from .ticket_user import TicketUser
from .ticket_user import TicketUser
from .customized_field_display_item import CustomizedFieldDisplayItem
from .ticket_user import TicketUser


class Ticket(object):
    _types = {
        "ticket_id": str,
        "helpdesk_id": str,
        "guest": TicketUser,
        "comments": List[Comments],
        "ticket_type": int,
        "status": int,
        "score": int,
        "created_at": int,
        "updated_at": int,
        "closed_at": int,
        "dissatisfaction_reason": I18n,
        "agents": List[TicketUser],
        "channel": int,
        "solve": int,
        "closed_by": TicketUser,
        "collaborators": List[TicketUser],
        "customized_fields": List[CustomizedFieldDisplayItem],
        "agent_service_duration": float,
        "agent_first_response_duration": int,
        "bot_service_duration": int,
        "agent_resolution_time": int,
        "actual_processing_time": int,
        "agent_entry_time": int,
        "agent_first_response_time": int,
        "agent_last_response_time": int,
        "agent_owner": TicketUser,
    }

    def __init__(self, d=None):
        self.ticket_id: Optional[str] = None
        self.helpdesk_id: Optional[str] = None
        self.guest: Optional[TicketUser] = None
        self.comments: Optional[List[Comments]] = None
        self.ticket_type: Optional[int] = None
        self.status: Optional[int] = None
        self.score: Optional[int] = None
        self.created_at: Optional[int] = None
        self.updated_at: Optional[int] = None
        self.closed_at: Optional[int] = None
        self.dissatisfaction_reason: Optional[I18n] = None
        self.agents: Optional[List[TicketUser]] = None
        self.channel: Optional[int] = None
        self.solve: Optional[int] = None
        self.closed_by: Optional[TicketUser] = None
        self.collaborators: Optional[List[TicketUser]] = None
        self.customized_fields: Optional[List[CustomizedFieldDisplayItem]] = None
        self.agent_service_duration: Optional[float] = None
        self.agent_first_response_duration: Optional[int] = None
        self.bot_service_duration: Optional[int] = None
        self.agent_resolution_time: Optional[int] = None
        self.actual_processing_time: Optional[int] = None
        self.agent_entry_time: Optional[int] = None
        self.agent_first_response_time: Optional[int] = None
        self.agent_last_response_time: Optional[int] = None
        self.agent_owner: Optional[TicketUser] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "TicketBuilder":
        return TicketBuilder()


class TicketBuilder(object):
    def __init__(self) -> None:
        self._ticket = Ticket()
    def ticket_id(self, ticket_id: str) -> "TicketBuilder":
        self._ticket.ticket_id = ticket_id
        return self
    def helpdesk_id(self, helpdesk_id: str) -> "TicketBuilder":
        self._ticket.helpdesk_id = helpdesk_id
        return self
    def guest(self, guest: TicketUser) -> "TicketBuilder":
        self._ticket.guest = guest
        return self
    def comments(self, comments: List[Comments]) -> "TicketBuilder":
        self._ticket.comments = comments
        return self
    def ticket_type(self, ticket_type: int) -> "TicketBuilder":
        self._ticket.ticket_type = ticket_type
        return self
    def status(self, status: int) -> "TicketBuilder":
        self._ticket.status = status
        return self
    def score(self, score: int) -> "TicketBuilder":
        self._ticket.score = score
        return self
    def created_at(self, created_at: int) -> "TicketBuilder":
        self._ticket.created_at = created_at
        return self
    def updated_at(self, updated_at: int) -> "TicketBuilder":
        self._ticket.updated_at = updated_at
        return self
    def closed_at(self, closed_at: int) -> "TicketBuilder":
        self._ticket.closed_at = closed_at
        return self
    def dissatisfaction_reason(self, dissatisfaction_reason: I18n) -> "TicketBuilder":
        self._ticket.dissatisfaction_reason = dissatisfaction_reason
        return self
    def agents(self, agents: List[TicketUser]) -> "TicketBuilder":
        self._ticket.agents = agents
        return self
    def channel(self, channel: int) -> "TicketBuilder":
        self._ticket.channel = channel
        return self
    def solve(self, solve: int) -> "TicketBuilder":
        self._ticket.solve = solve
        return self
    def closed_by(self, closed_by: TicketUser) -> "TicketBuilder":
        self._ticket.closed_by = closed_by
        return self
    def collaborators(self, collaborators: List[TicketUser]) -> "TicketBuilder":
        self._ticket.collaborators = collaborators
        return self
    def customized_fields(self, customized_fields: List[CustomizedFieldDisplayItem]) -> "TicketBuilder":
        self._ticket.customized_fields = customized_fields
        return self
    def agent_service_duration(self, agent_service_duration: float) -> "TicketBuilder":
        self._ticket.agent_service_duration = agent_service_duration
        return self
    def agent_first_response_duration(self, agent_first_response_duration: int) -> "TicketBuilder":
        self._ticket.agent_first_response_duration = agent_first_response_duration
        return self
    def bot_service_duration(self, bot_service_duration: int) -> "TicketBuilder":
        self._ticket.bot_service_duration = bot_service_duration
        return self
    def agent_resolution_time(self, agent_resolution_time: int) -> "TicketBuilder":
        self._ticket.agent_resolution_time = agent_resolution_time
        return self
    def actual_processing_time(self, actual_processing_time: int) -> "TicketBuilder":
        self._ticket.actual_processing_time = actual_processing_time
        return self
    def agent_entry_time(self, agent_entry_time: int) -> "TicketBuilder":
        self._ticket.agent_entry_time = agent_entry_time
        return self
    def agent_first_response_time(self, agent_first_response_time: int) -> "TicketBuilder":
        self._ticket.agent_first_response_time = agent_first_response_time
        return self
    def agent_last_response_time(self, agent_last_response_time: int) -> "TicketBuilder":
        self._ticket.agent_last_response_time = agent_last_response_time
        return self
    def agent_owner(self, agent_owner: TicketUser) -> "TicketBuilder":
        self._ticket.agent_owner = agent_owner
        return self

    def build(self) -> "Ticket":
        return self._ticket

Ngôn ngữ chính
Python
Star
559
Fork
102
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của larksuite/oapi-sdk-python

Tất cả issue của larksuite/oapi-sdk-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.