internal 1.0.126__tar.gz → 1.0.128__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.

Potentially problematic release.


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

Files changed (39) hide show
  1. {internal-1.0.126 → internal-1.0.128}/PKG-INFO +1 -1
  2. {internal-1.0.126 → internal-1.0.128}/pyproject.toml +1 -1
  3. {internal-1.0.126 → internal-1.0.128}/src/internal/exception/app_exception.py +10 -1
  4. {internal-1.0.126 → internal-1.0.128}/src/internal/middleware/log_request.py +6 -4
  5. {internal-1.0.126 → internal-1.0.128}/src/internal/validator_utils.py +11 -2
  6. {internal-1.0.126 → internal-1.0.128}/README.md +0 -0
  7. {internal-1.0.126 → internal-1.0.128}/src/internal/__init__.py +0 -0
  8. {internal-1.0.126 → internal-1.0.128}/src/internal/base_config.py +0 -0
  9. {internal-1.0.126 → internal-1.0.128}/src/internal/base_factory.py +0 -0
  10. {internal-1.0.126 → internal-1.0.128}/src/internal/cache_redis.py +0 -0
  11. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/__init__.py +0 -0
  12. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/contact_type.py +0 -0
  13. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/description_type.py +0 -0
  14. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/device_code.py +0 -0
  15. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/event_code.py +0 -0
  16. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/lpr_direction.py +0 -0
  17. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/notify_type.py +0 -0
  18. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/operator_type.py +0 -0
  19. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/order_type.py +0 -0
  20. {internal-1.0.126 → internal-1.0.128}/src/internal/common_enum/websocket_channel.py +0 -0
  21. {internal-1.0.126 → internal-1.0.128}/src/internal/const.py +0 -0
  22. {internal-1.0.126 → internal-1.0.128}/src/internal/database.py +0 -0
  23. {internal-1.0.126 → internal-1.0.128}/src/internal/exception/__init__.py +0 -0
  24. {internal-1.0.126 → internal-1.0.128}/src/internal/exception/base_exception.py +0 -0
  25. {internal-1.0.126 → internal-1.0.128}/src/internal/exception/internal_exception.py +0 -0
  26. {internal-1.0.126 → internal-1.0.128}/src/internal/ext/__init__.py +0 -0
  27. {internal-1.0.126 → internal-1.0.128}/src/internal/ext/amazon/__init__.py +0 -0
  28. {internal-1.0.126 → internal-1.0.128}/src/internal/ext/amazon/aws/__init__.py +0 -0
  29. {internal-1.0.126 → internal-1.0.128}/src/internal/ext/amazon/aws/const.py +0 -0
  30. {internal-1.0.126 → internal-1.0.128}/src/internal/http/__init__.py +0 -0
  31. {internal-1.0.126 → internal-1.0.128}/src/internal/http/requests.py +0 -0
  32. {internal-1.0.126 → internal-1.0.128}/src/internal/http/responses.py +0 -0
  33. {internal-1.0.126 → internal-1.0.128}/src/internal/interface/__init__.py +0 -0
  34. {internal-1.0.126 → internal-1.0.128}/src/internal/interface/base_interface.py +0 -0
  35. {internal-1.0.126 → internal-1.0.128}/src/internal/middleware/__init__.py +0 -0
  36. {internal-1.0.126 → internal-1.0.128}/src/internal/model/__init__.py +0 -0
  37. {internal-1.0.126 → internal-1.0.128}/src/internal/model/base_model.py +0 -0
  38. {internal-1.0.126 → internal-1.0.128}/src/internal/model/operate.py +0 -0
  39. {internal-1.0.126 → internal-1.0.128}/src/internal/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: internal
3
- Version: 1.0.126
3
+ Version: 1.0.128
4
4
  Summary:
5
5
  Author: Ray
6
6
  Author-email: ray@cruisys.com
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "internal"
3
- version = "1.0.126"
3
+ version = "1.0.128"
4
4
  description = ""
5
5
  authors = [{ name = "Ray", email = "ray@cruisys.com" }]
6
6
  readme = "README.md"
@@ -58,7 +58,7 @@ class VinLengthOrFormatException(InternalBaseException):
58
58
 
59
59
  class PhoneFormatException(InternalBaseException):
60
60
  code = "error_phone_format"
61
- message = "Phone only allow numeric"
61
+ message = "Phone only allow start with 09 and add 8 digits"
62
62
 
63
63
  def __init__(self, message: str = None, **kwargs):
64
64
  _message = message or self.message
@@ -74,6 +74,15 @@ class DateFormatException(InternalBaseException):
74
74
  super().__init__(status.HTTP_422_UNPROCESSABLE_ENTITY, self.code, _message, **kwargs)
75
75
 
76
76
 
77
+ class EMailFormatException(InternalBaseException):
78
+ code = "error_email_format"
79
+ message = "Email format error"
80
+
81
+ def __init__(self, message: str = None, **kwargs):
82
+ _message = message or self.message
83
+ super().__init__(status.HTTP_422_UNPROCESSABLE_ENTITY, self.code, _message, **kwargs)
84
+
85
+
77
86
  class LineUidNullPointException(InternalBaseException):
78
87
  code = "error_line_uid_not_be_null"
79
88
  message = "Line uid can not be null"
@@ -20,10 +20,12 @@ class LogRequestMiddleware(BaseHTTPMiddleware):
20
20
  headers = request.headers
21
21
  request_id = headers.get(CORRELATION_ID_HEADER_KEY_NAME, "")
22
22
 
23
- params = defaultdict(list)
24
- for key, value in request.query_params.multi_items():
25
- params[key].append(value)
26
- params = dict(params)
23
+ query_params = request.query_params
24
+ temp = defaultdict(list)
25
+ for key, value in query_params.multi_items():
26
+ temp[key].append(value)
27
+ # 如果只有一個值就轉成單一值
28
+ params = {k: v[0] if len(v) == 1 else v for k, v in temp.items()}
27
29
 
28
30
  body = await request.body()
29
31
  self.logger.info(
@@ -1,7 +1,7 @@
1
1
  import re
2
2
 
3
3
  from .exception.app_exception import PlateNoFormatException, VinLengthOrFormatException, PhoneFormatException, \
4
- DateFormatException
4
+ DateFormatException, EMailFormatException
5
5
  from .utils import sanitize_plate_no
6
6
 
7
7
 
@@ -29,7 +29,7 @@ def verify_phone(value: str, is_require: bool = False):
29
29
  raise PhoneFormatException()
30
30
 
31
31
  if value:
32
- if not re.match(r'^\d+$', value):
32
+ if not re.match(r'^09\d{8}$', value):
33
33
  raise PhoneFormatException()
34
34
 
35
35
 
@@ -40,3 +40,12 @@ def verify_date(value: str, is_require: bool = False):
40
40
  if value:
41
41
  if not re.match(r'^\d{4}-\d{2}-\d{2}$', value):
42
42
  raise DateFormatException()
43
+
44
+
45
+ def verify_mail(value: str, is_require: bool = False):
46
+ if is_require and not value:
47
+ raise EMailFormatException()
48
+
49
+ if value:
50
+ if not re.match(r'^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$', value):
51
+ raise EMailFormatException()
File without changes