MCPcopy Create free account
hub / github.com/dbunt1tled/python-fast-api / response

Method response

src/core/http/response/json_api.py:13–42  ·  view source on GitHub ↗
(
        data: Any = None,
        errors: list[JsonApiError | dict[str, Any]] | None = None,
        meta: dict[str, Any] | None = None,
        resource_type: str | None = None,
    )

Source from the content-addressed store, hash-verified

11
12 @staticmethod
13 def response(
14 data: Any = None,
15 errors: list[JsonApiError | dict[str, Any]] | None = None,
16 meta: dict[str, Any] | None = None,
17 resource_type: str | None = None,
18 ) -> JsonApiResponse:
19 resources: list[JsonApiResource] | list[dict[str, Any]] | JsonApiResource = [] # noqa
20 if data is None and errors is None:
21 return JsonApiResponse(meta=meta)
22 if resource_type is None:
23 resource_type = data.__class__.__name__
24 if errors:
25 return JsonApiResponse(
26 errors=[error.model_dump() if hasattr(error, "model_dump") else error for error in errors],
27 meta=meta,
28 )
29 if isinstance(data, Paginator):
30 resources = JsonAPIService.map_items(data.items)
31 meta = {
32 "total": data.total,
33 "page": data.page,
34 "perPage": data.per_page,
35 "totalPages": data.pages,
36 }
37 elif isinstance(data, list):
38 resources = JsonAPIService.map_items(data)
39 else:
40 resources = ResponseBaseModel.data_to_resource(data, resource_type)
41
42 return JsonApiResponse(data=resources, meta=meta)
43
44 @staticmethod
45 def map_items(data: list | Sequence[Any]) -> list[JsonApiResource]:

Callers

nothing calls this directly

Calls 3

JsonApiResponseClass · 0.90
data_to_resourceMethod · 0.80
map_itemsMethod · 0.45

Tested by

no test coverage detected