internal 0.1.47__py3-none-any.whl → 0.1.49__py3-none-any.whl

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.

Potentially problematic release.


This version of internal might be problematic. Click here for more details.

internal/base_factory.py CHANGED
@@ -9,7 +9,7 @@ from functools import lru_cache
9
9
  import dotenv
10
10
  import watchtower
11
11
  from beanie import init_beanie
12
- from fastapi import FastAPI, status
12
+ from fastapi import FastAPI, status, Request
13
13
  from fastapi.exceptions import RequestValidationError
14
14
  from fastapi.middleware.cors import CORSMiddleware
15
15
 
@@ -44,18 +44,6 @@ class BaseFactory(metaclass=ABCMeta):
44
44
  Each factory should define what config it wants.
45
45
  """
46
46
 
47
- async def process_exception(self, app, request, exc):
48
- if isinstance(exc, InternalBaseException):
49
- detail = exc.detail
50
- return await async_response(data=detail.data, code=detail.code, message=detail.message,
51
- status_code=exc.status_code)
52
- else:
53
- app.state.logger.warn(f"Exception, request:{request.__dict__}, exc:{exc}")
54
- app.state.logger.warn(traceback.format_exc())
55
- return await async_response(data={}, code="error_internal_server",
56
- message="Internal server error",
57
- status_code=status.HTTP_500_INTERNAL_SERVER_ERROR)
58
-
59
47
  def create_app(self, title=DEFAULT_APP_NAME) -> FastAPI:
60
48
  app = FastAPI(title=title, debug=self.get_app_config().DEBUG, version=self.API_VERSION)
61
49
 
@@ -95,15 +83,24 @@ class BaseFactory(metaclass=ABCMeta):
95
83
  self.__init_modules(app)
96
84
  self.__init_builtin_api(app)
97
85
 
86
+ @app.exception_handler(InternalBaseException)
87
+ async def http_exception_handler(request: Request, exc: InternalBaseException):
88
+ detail = exc.detail
89
+ return await async_response(data=detail.data, code=detail.code, message=detail.message,
90
+ status_code=exc.status_code)
91
+
98
92
  @app.exception_handler(RequestValidationError)
99
- async def validation_exception_handler(request, exc):
93
+ async def validation_exception_handler(request: Request, exc: RequestValidationError):
100
94
  return await async_response(data={"detail": exc.errors(), "body": exc.body},
101
95
  code="error_unprocessable_entity", message="Validation failed",
102
96
  status_code=status.HTTP_422_UNPROCESSABLE_ENTITY)
103
97
 
104
98
  @app.exception_handler(Exception)
105
- async def http_exception_handler(request, exc):
106
- await self.process_exception(app, request, exc)
99
+ async def http_exception_handler(request: Request, exc: Exception):
100
+ app.state.logger.warn(f"Exception, request:{request.__dict__}, exc:{exc}")
101
+ app.state.logger.warn(traceback.format_exc())
102
+ await async_response(code="error_internal_server", message="Internal server error",
103
+ status_code=status.HTTP_500_INTERNAL_SERVER_ERROR)
107
104
 
108
105
  return app
109
106
 
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import httpx
2
3
 
3
4
  from fastapi import status
4
5
  from fastapi.responses import JSONResponse
@@ -23,7 +24,7 @@ async def async_response(data=None, message=None, code=None, page_no=None, total
23
24
  data[field_name] = data[field_name]["id"]
24
25
  return data
25
26
 
26
- if isinstance(data, JSONResponse):
27
+ if isinstance(data, httpx.Response):
27
28
  return data
28
29
 
29
30
  ret = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: internal
3
- Version: 0.1.47
3
+ Version: 0.1.49
4
4
  Summary:
5
5
  Author: Ray
6
6
  Author-email: ray@cruisys.com
@@ -1,6 +1,6 @@
1
1
  internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  internal/base_config.py,sha256=GFuigDWbvG257qOc2cfdz3KgHUIKiXOU0E7pnD5zOQA,1247
3
- internal/base_factory.py,sha256=KDKyPytJO5kBrYW2kv7D-1ds55rL2g7szdPN7JOlbjM,6426
3
+ internal/base_factory.py,sha256=W9YmFnXdWYlqeqA9CpJXK3EHEpXEX9r8iXF-sXvLu5c,6384
4
4
  internal/const.py,sha256=U1S9r7bjtHgad2oYQoHO19s8D4V0WDUG-L-haV4UaIw,1025
5
5
  internal/database.py,sha256=MyRLlb0W8FB8Odq0UQpN3R7OD3yUPWgJXsZRuDWQC_w,1010
6
6
  internal/exception/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -12,7 +12,7 @@ internal/ext/amazon/aws/__init__.py,sha256=2YFjb-rHG1JaZGZiZffYDesgTAJjDshOqQbsw
12
12
  internal/ext/amazon/aws/const.py,sha256=l4WMg5bKWujwOKABBkCO2zclNg3abnYOfbhD7DG8GsA,109
13
13
  internal/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  internal/http/requests.py,sha256=Np0uIzHJjJ4S0yeet3dgTJEkQaDo9BkW3gLdqsahCeA,1040
15
- internal/http/responses.py,sha256=G6IPte-DCJPG-zWVffANFIhu0m_mTIrI3AOOnDHEk_k,1539
15
+ internal/http/responses.py,sha256=Sbi1IhvrjuW5kdBl5tsJU8wzLlBkSZCp5WlrxVO41F8,1554
16
16
  internal/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  internal/interface/base_interface.py,sha256=R5MmO5oa5-ORPV_adkegLVCwsVio2zFOuQFGiby3khs,340
18
18
  internal/jwt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -23,6 +23,6 @@ internal/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  internal/model/base_model.py,sha256=gNbixWuGiK8Tbe78wHuLneZ8p3fwMwQRKurBDrGoh6s,1874
24
24
  internal/model/operate.py,sha256=3mOs7eQ2CPnCB6i6UQBOp8VdTPmVnayaUFqUEDOKoTY,1493
25
25
  internal/utils.py,sha256=0SubS0iUhDvjSX1F4TykasA5-enYJzt2VH-f7_0BnjI,1509
26
- internal-0.1.47.dist-info/METADATA,sha256=nUN7VNseLGr1kA3uEsFWGCTcH_IkCt-qtgL3YDa5q94,625
27
- internal-0.1.47.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
28
- internal-0.1.47.dist-info/RECORD,,
26
+ internal-0.1.49.dist-info/METADATA,sha256=G8rsCzjIZj7SukZevKKqTkvqvNSw98NjMBjRMD-lfzY,625
27
+ internal-0.1.49.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
28
+ internal-0.1.49.dist-info/RECORD,,