nlbone 0.9.3__tar.gz → 0.9.5__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.
- {nlbone-0.9.3 → nlbone-0.9.5}/PKG-INFO +1 -1
- {nlbone-0.9.3 → nlbone-0.9.5}/pyproject.toml +1 -1
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/auth/auth_service.py +1 -1
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/pricing/pricing_service.py +18 -6
- {nlbone-0.9.3 → nlbone-0.9.5}/.gitignore +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/LICENSE +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/README.md +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/auth/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/auth/keycloak.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/auth/token_provider.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/cache/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/cache/async_redis.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/cache/memory.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/cache/pubsub_listener.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/cache/redis.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/audit.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/base.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/engine.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/query_builder.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/repository.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/schema.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/types.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/postgres/uow.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/redis/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/db/redis/client.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/pricing/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/uploadchi/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/uploadchi/uploadchi.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/http_clients/uploadchi/uploadchi_async.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/i18n/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/i18n/engine.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/i18n/loaders.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/i18n/locales/fa-IR.json +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/messaging/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/messaging/event_bus.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/messaging/rabbitmq.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/outbox/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/outbox/outbox_consumer.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/outbox/outbox_repo.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/percolation/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/percolation/connection.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/repositories/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/snowflake.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/ticketing/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/adapters/ticketing/client.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/config/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/config/logging.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/config/settings.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/container.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/base_worker.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/bus.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/di.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/registry.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/services/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/application/use_case.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/domain/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/domain/base.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/domain/models.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/auth.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/cache.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/event_bus.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/files.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/outbox.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/repository.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/translation.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/core/ports/uow.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/assembler.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/default_field_rules/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/default_field_rules/image_field_rules.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/field_registry.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/additional_filed/resolver.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/async_auth.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/auth.py +2 -2
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/client_credential.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/db.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/dependencies/uow.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/exception_handlers.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/exceptions.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/middleware/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/middleware/access_log.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/middleware/add_request_context.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/middleware/authentication.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/pagination/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/pagination/offset_base.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/routers.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/schema/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/schema/adaptive_schema.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/schema/base_response_model.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/api/schemas.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/cli/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/cli/crypto.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/cli/init_db.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/cli/main.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/cli/ticket.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/jobs/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/jobs/dispatch_outbox.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/interfaces/jobs/sync_tokens.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/types.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/__init__.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/cache.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/cache_keys.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/cache_registry.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/context.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/crypto.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/flatten_dict.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/flatten_sqlalchemy_result.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/http.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/normalize_mobile.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/read_files.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/redactor.py +0 -0
- {nlbone-0.9.3 → nlbone-0.9.5}/src/nlbone/utils/time.py +0 -0
|
@@ -35,7 +35,7 @@ class AuthService(BaseAuthService):
|
|
|
35
35
|
def get_client_id(self, token: str):
|
|
36
36
|
data = self.verify_token(token)
|
|
37
37
|
if data:
|
|
38
|
-
return data["
|
|
38
|
+
return data["preferred_username"] if data["preferred_username"].startswith("service-account") else None
|
|
39
39
|
return None
|
|
40
40
|
|
|
41
41
|
def get_client_token(self) -> dict | None:
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
from decimal import Decimal
|
|
2
3
|
from enum import Enum
|
|
3
4
|
from typing import Any, Dict, List, Literal, Optional, Union
|
|
@@ -66,13 +67,20 @@ class CalculatePriceOut(RootModel[Union[List[PricingRule], Dict[str, PricingRule
|
|
|
66
67
|
pass
|
|
67
68
|
|
|
68
69
|
|
|
70
|
+
class DecimalEncoder(json.JSONEncoder):
|
|
71
|
+
def default(self, obj):
|
|
72
|
+
if isinstance(obj, Decimal):
|
|
73
|
+
return float(obj)
|
|
74
|
+
return super(DecimalEncoder, self).default(obj)
|
|
75
|
+
|
|
76
|
+
|
|
69
77
|
class PricingService:
|
|
70
78
|
def __init__(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
self,
|
|
80
|
+
token_provider: ClientTokenProvider,
|
|
81
|
+
base_url: Optional[str] = None,
|
|
82
|
+
timeout_seconds: Optional[float] = None,
|
|
83
|
+
client: httpx.Client | None = None,
|
|
76
84
|
) -> None:
|
|
77
85
|
s = get_settings()
|
|
78
86
|
self._base_url = normalize_https_base(base_url or str(s.PRICING_SERVICE_URL), enforce_https=False)
|
|
@@ -81,7 +89,11 @@ class PricingService:
|
|
|
81
89
|
self._token_provider = token_provider
|
|
82
90
|
|
|
83
91
|
def calculate(self, items: list[CalculatePriceIn], response: Literal["list", "dict"] = "dict") -> CalculatePriceOut:
|
|
84
|
-
body =
|
|
92
|
+
body = json.dumps(
|
|
93
|
+
{"items": [i.model_dump() for i in items]},
|
|
94
|
+
cls=DecimalEncoder
|
|
95
|
+
)
|
|
96
|
+
body = json.loads(body)
|
|
85
97
|
|
|
86
98
|
r = self._client.post(
|
|
87
99
|
f"{self._base_url}/price/calculate",
|
|
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
|
|
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
|
|
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
|
|
@@ -65,11 +65,11 @@ def user_authenticated(func):
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
def user_has_access_func(*, permissions=None):
|
|
68
|
-
if bypass_authz():
|
|
69
|
-
return True
|
|
70
68
|
request = current_request()
|
|
71
69
|
if not current_user_id():
|
|
72
70
|
raise UnauthorizedException()
|
|
71
|
+
if bypass_authz():
|
|
72
|
+
return True
|
|
73
73
|
if not get_auth_service().has_access(request.state.token, permissions=permissions):
|
|
74
74
|
raise ForbiddenException(f"Forbidden {permissions}")
|
|
75
75
|
return True
|
|
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
|
|
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
|