nlbone 0.7.13__py3-none-any.whl → 0.7.15__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.
@@ -86,7 +86,8 @@ class PricingService:
86
86
  r = self._client.post(
87
87
  f"{self._base_url}/price/calculate",
88
88
  params={"response": response},
89
- headers=auth_headers(self._token_provider.get_access_token()),
89
+ headers={'X-Api-Key': get_settings().PRICING_API_SECRET, 'X-Client-Id': get_settings().KEYCLOAK_CLIENT_ID},
90
+ # headers=auth_headers(self._token_provider.get_access_token()),
90
91
  json=body,
91
92
  timeout=self._timeout,
92
93
  verify=False,
nlbone/config/settings.py CHANGED
@@ -60,6 +60,7 @@ class Settings(BaseSettings):
60
60
  KEYCLOAK_REALM_NAME: str = Field(default="numberland")
61
61
  KEYCLOAK_CLIENT_ID: str = Field(default="nlbone")
62
62
  KEYCLOAK_CLIENT_SECRET: SecretStr = Field(default=SecretStr("dev-secret"))
63
+ PRICING_API_SECRET: str = ''
63
64
 
64
65
  AUTH_SERVICE_URL: AnyHttpUrl = Field(default="https://auth.numberland.ir")
65
66
 
@@ -3,6 +3,7 @@ from typing import Callable, Optional, Union
3
3
  from fastapi import Request
4
4
  from starlette.middleware.base import BaseHTTPMiddleware
5
5
 
6
+ from nlbone.config.settings import get_settings
6
7
  from nlbone.adapters.auth.auth_service import AuthService
7
8
 
8
9
  try:
@@ -71,9 +72,13 @@ class AuthenticationMiddleware(BaseHTTPMiddleware):
71
72
  self._get_auth = _to_factory(auth)
72
73
 
73
74
  async def dispatch(self, request: Request, call_next):
74
- request.state.client_id = request.headers.get("X-Client-Id")
75
+ request.state.client_id = None
75
76
  request.state.user_id = None
76
77
  request.state.token = None
78
+ if request.headers.get('X-Client-Id') and request.headers.get("X-Api_Key"):
79
+ if request.headers.get("X-Api_Key") == get_settings().PRICING_API_SECRET:
80
+ request.state.client_id = request.headers.get("X-Client-Id")
81
+ return await call_next(request)
77
82
  if request.headers.get('X-Client-Id') == 'website' and request.headers.get("Authorization"):
78
83
  authenticate_user(request)
79
84
  elif request.cookies.get("access_token"):
nlbone/utils/cache.py CHANGED
@@ -2,7 +2,7 @@ import asyncio
2
2
  import inspect
3
3
  import json
4
4
  from typing import Any, Callable, Iterable, Optional, Mapping
5
-
5
+ import hashlib
6
6
  from makefun import wraps as mf_wraps
7
7
 
8
8
  from nlbone.interfaces.api.additional_filed import AdditionalFieldsRequest
@@ -78,7 +78,7 @@ def _key_from_template(
78
78
  payload,
79
79
  sort_keys=True,
80
80
  )
81
- return f"{func.__module__}:{func.__qualname__}:{hash(payload)}"
81
+ return f"{func.__module__}:{func.__qualname__}:{hashlib.sha1(payload.encode('utf-8')).hexdigest()}"
82
82
 
83
83
 
84
84
  def _format_tags(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nlbone
3
- Version: 0.7.13
3
+ Version: 0.7.15
4
4
  Summary: Backbone package for interfaces and infrastructure in Python projects
5
5
  Author-email: Amir Hosein Kahkbazzadeh <a.khakbazzadeh@gmail.com>
6
6
  License: MIT
@@ -26,7 +26,7 @@ nlbone/adapters/db/redis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
26
26
  nlbone/adapters/db/redis/client.py,sha256=5SUnwP2-GrueSFimUbiqDvrQsumvIE2aeozk8l-vOfQ,466
27
27
  nlbone/adapters/http_clients/__init__.py,sha256=w-Yr9CLuXMU71N0Ada5HbvP1DB53wqeP6B-i5rALlTo,150
28
28
  nlbone/adapters/http_clients/pricing/__init__.py,sha256=ElA9NFcAR9u4cqb_w3PPqKU3xGeyjNLQ8veJ0ql2iz0,81
29
- nlbone/adapters/http_clients/pricing/pricing_service.py,sha256=fYfMQh3qW_YDNkBW19RkDkIet7zUDzb2HsIT5dr1Q7Y,3319
29
+ nlbone/adapters/http_clients/pricing/pricing_service.py,sha256=RN9M0RPl5QMxUUb7OfCw3id0xWd1oR2qrEstChHnsls,3441
30
30
  nlbone/adapters/http_clients/uploadchi/__init__.py,sha256=uBzEOuVtY22teWW2b36Pitkdk5yVdSqa6xbg22JfTNg,105
31
31
  nlbone/adapters/http_clients/uploadchi/uploadchi.py,sha256=erpjOees25FW0nuK1PkYS-oU0h8MeRV9Rhs1cf3gaEs,4881
32
32
  nlbone/adapters/http_clients/uploadchi/uploadchi_async.py,sha256=PQbVNeaYde5CmgT3vcnQoI1PGeSs9AxHlPFuB8biOmU,4717
@@ -43,7 +43,7 @@ nlbone/adapters/ticketing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
43
43
  nlbone/adapters/ticketing/client.py,sha256=GAr0_4DVqVCDV7tT2gkxRyKIsvLwJRlT-xx8fsfOVJE,1303
44
44
  nlbone/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  nlbone/config/logging.py,sha256=Ot6Ctf7EQZlW8YNB-uBdleqI6wixn5fH0Eo6QRgNkQk,4358
46
- nlbone/config/settings.py,sha256=o5kJBHuv-XKFOe_yQtkR0YrEbI2uZ89JpGjzDYhE7o4,4507
46
+ nlbone/config/settings.py,sha256=BABYoUBWXazg09bO4QNZDc2Dxg1onCx0hO72ETC4Yb0,4540
47
47
  nlbone/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  nlbone/core/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  nlbone/core/application/base_worker.py,sha256=5brIToSd-vi6tw0ukhHnUZGZhOLq1SQ-NRRy-kp6D24,1193
@@ -83,7 +83,7 @@ nlbone/interfaces/api/dependencies/uow.py,sha256=QfLEvLYLNWZJQN1k-0q0hBVtUld3D75
83
83
  nlbone/interfaces/api/middleware/__init__.py,sha256=zbX2vaEAfxRMIYwO2MVY_2O6bqG5H9o7HqGpX14U3Is,158
84
84
  nlbone/interfaces/api/middleware/access_log.py,sha256=vIkxxxfy2HcjqqKb8XCfGCcSrivAC8u6ie75FMq5x-U,1032
85
85
  nlbone/interfaces/api/middleware/add_request_context.py,sha256=av-qs0biOYuF9R6RJOo2eYsFqDL9WRYWcjVakFhbt-w,1834
86
- nlbone/interfaces/api/middleware/authentication.py,sha256=TaGDvOFmtN5YLVHbEFsB-7xVWYNVpaqtTTgCPZ0T7P0,2799
86
+ nlbone/interfaces/api/middleware/authentication.py,sha256=lSTxhRrbj3WK776uBYou9gxQZj2dWskzsJTFWePtiQc,3112
87
87
  nlbone/interfaces/api/pagination/__init__.py,sha256=pA1uC4rK6eqDI5IkLVxmgO2B6lExnOm8Pje2-hifJZw,431
88
88
  nlbone/interfaces/api/pagination/offset_base.py,sha256=AwuHLQELAKut58fQSL2hk-QhfwsG1coJWz-Jkh2gnmg,4113
89
89
  nlbone/interfaces/api/schema/__init__.py,sha256=LAqgynfupeqOQ6u0I5ucrcYnojRMZUg9yW8IjKSQTNI,119
@@ -98,7 +98,7 @@ nlbone/interfaces/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
98
98
  nlbone/interfaces/jobs/dispatch_outbox.py,sha256=yLZSC3nvkgxT2LL4Pq_DYzCyf_tZB-FknrjjgN89GFg,809
99
99
  nlbone/interfaces/jobs/sync_tokens.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
100
  nlbone/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
- nlbone/utils/cache.py,sha256=HyoVIJ9WDSQeSROgCoxY96-NUTajl3A1L2fhxRa1DN0,6988
101
+ nlbone/utils/cache.py,sha256=3iJdPH896yF9iJfs_rGD-98CPamPOVCjn2LX0aGxFEA,7038
102
102
  nlbone/utils/cache_keys.py,sha256=Y2YSellHTbUOcoaNbl1jaD4r485VU_e4KXsfBWhYTBo,1075
103
103
  nlbone/utils/cache_registry.py,sha256=w28sEfUQZAhzCCqVH5TflWQY3nyDXyEcFWt8hkuHRHw,823
104
104
  nlbone/utils/context.py,sha256=MmclJ24BG2uvSTg1IK7J-Da9BhVFDQ5ag4Ggs2FF1_w,1600
@@ -107,8 +107,8 @@ nlbone/utils/http.py,sha256=MPDEyaC16AKsL0YH6sWCPp8NC2TgzEHpWERYK5HcaYQ,1001
107
107
  nlbone/utils/normalize_mobile.py,sha256=sGH4tV9gX-6eVKozviNWJhm1DN1J28Nj-ERldCYkS_E,732
108
108
  nlbone/utils/redactor.py,sha256=-V4HrHmHwPi3Kez587Ek1uJlgK35qGSrwBOvcbw8Jas,1279
109
109
  nlbone/utils/time.py,sha256=DjjyQ9GLsfXoT6NK8RDW2rOlJg3e6sF04Jw6PBUrSvg,1268
110
- nlbone-0.7.13.dist-info/METADATA,sha256=zRldYwqSoAeRrBOTmqRFV2OH_hZKJgzagNkYHQryokA,2295
111
- nlbone-0.7.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
112
- nlbone-0.7.13.dist-info/entry_points.txt,sha256=CpIL45t5nbhl1dGQPhfIIDfqqak3teK0SxPGBBr7YCk,59
113
- nlbone-0.7.13.dist-info/licenses/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- nlbone-0.7.13.dist-info/RECORD,,
110
+ nlbone-0.7.15.dist-info/METADATA,sha256=4vijLQahgvuIahwx3IeCaXnAb2i9QzbRfpaTUQh779Q,2295
111
+ nlbone-0.7.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
112
+ nlbone-0.7.15.dist-info/entry_points.txt,sha256=CpIL45t5nbhl1dGQPhfIIDfqqak3teK0SxPGBBr7YCk,59
113
+ nlbone-0.7.15.dist-info/licenses/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ nlbone-0.7.15.dist-info/RECORD,,