internal 1.0.15__tar.gz → 1.0.16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {internal-1.0.15 → internal-1.0.16}/PKG-INFO +1 -1
- {internal-1.0.15 → internal-1.0.16}/pyproject.toml +1 -1
- {internal-1.0.15 → internal-1.0.16}/src/internal/http/responses.py +13 -1
- {internal-1.0.15 → internal-1.0.16}/README.md +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/base_config.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/base_factory.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/contact_type.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/description_type.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/event_trigger_type.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/operator_type.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/common_enum/order_type.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/const.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/database.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/exception/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/exception/base_exception.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/exception/internal_exception.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/ext/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/ext/amazon/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/ext/amazon/aws/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/ext/amazon/aws/const.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/http/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/http/requests.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/interface/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/interface/base_interface.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/middleware/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/middleware/log_request.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/model/__init__.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/model/base_model.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/model/operate.py +0 -0
- {internal-1.0.15 → internal-1.0.16}/src/internal/utils.py +0 -0
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import arrow
|
|
3
|
+
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
2
6
|
import httpx
|
|
3
7
|
|
|
4
8
|
from fastapi import status
|
|
5
9
|
from fastapi.responses import JSONResponse
|
|
6
10
|
from fastapi.encoders import jsonable_encoder
|
|
7
11
|
from beanie import Document, Link
|
|
12
|
+
from ..const import ARR_HUMAN_READ_FMT
|
|
8
13
|
|
|
9
14
|
|
|
10
15
|
async def async_response(data=None, message=None, code=None, page_no=None, total_num=None, page_size=None,
|
|
11
|
-
status_code=status.HTTP_200_OK):
|
|
16
|
+
time_zone="Asia/Taipei", time_format=ARR_HUMAN_READ_FMT, status_code=status.HTTP_200_OK):
|
|
12
17
|
def _serialize(data):
|
|
13
18
|
if issubclass(type(data), Document):
|
|
14
19
|
link_field_list = []
|
|
20
|
+
datetime_field_list = []
|
|
15
21
|
for field_name in data.__annotations__:
|
|
16
22
|
field_type = getattr(data, field_name)
|
|
17
23
|
if isinstance(field_type, Link):
|
|
18
24
|
link_field_list.append(field_name)
|
|
25
|
+
if isinstance(field_type, datetime):
|
|
26
|
+
datetime_field_list.append(field_name)
|
|
19
27
|
|
|
20
28
|
data = json.loads(data.model_dump_json(exclude="password", by_alias=False))
|
|
21
29
|
if link_field_list:
|
|
22
30
|
for field_name in link_field_list:
|
|
23
31
|
if isinstance(data[field_name], dict) and "id" in data[field_name].keys():
|
|
24
32
|
data[field_name] = data[field_name]["id"]
|
|
33
|
+
for field_name in datetime_field_list:
|
|
34
|
+
if data[field_name]:
|
|
35
|
+
data[field_name] = arrow.get(data[field_name]).to(time_zone).format(time_format)
|
|
36
|
+
|
|
25
37
|
return data
|
|
26
38
|
|
|
27
39
|
if isinstance(data, httpx.Response):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|