File size: 1,022 Bytes
b4f2238
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""当事人单条查询服务。"""

from typing import Any

from django.utils.translation import gettext_lazy as _

from apps.client.models import Client
from apps.client.services.client_internal_query_service import ClientInternalQueryService
from apps.core.exceptions import NotFoundError


class ClientGetQueryService:
    def __init__(self, internal_query_service: ClientInternalQueryService | None = None) -> None:
        self._internal_query_service = internal_query_service

    @property
    def internal_query_service(self) -> ClientInternalQueryService:
        if self._internal_query_service is None:
            self._internal_query_service = ClientInternalQueryService()
        return self._internal_query_service

    def get_client(self, *, client_id: int, user: Any | None = None) -> Client:
        client = self.internal_query_service.get_client(client_id=client_id)
        if not client:
            raise NotFoundError(message=_("客户不存在"), code="CLIENT_NOT_FOUND")
        return client