Files
hotpocket/services/packages/soa/hotpocket_soa/services/saves.py
Tomek Wójcik d909391ee6
Some checks failed
CI / Checks (push) Has been cancelled
Release v1.0.0rc1
2025-08-18 07:09:27 +02:00

60 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import annotations
import uuid
from hotpocket_backend.apps.saves.services import (
SavesService as BackendSavesService,
)
from hotpocket_soa.dto.saves import SaveIn, SaveOut
from .base import ProxyService, SOAError
class SavesService(ProxyService):
class SavesServiceError(SOAError):
pass
class SaveNotFound(SavesServiceError):
pass
def wrap_exception(self, exception: Exception) -> Exception:
new_exception_args = []
if len(exception.args) > 0:
new_exception_args = [exception.args[0]]
return self.SavesServiceError(*new_exception_args)
def __init__(self):
super().__init__()
self.backend_saves_service = BackendSavesService()
def create(self, *, account_uuid: uuid.UUID, save: SaveIn) -> SaveOut:
return SaveOut.model_validate(
self.call(
self.backend_saves_service,
'create',
account_uuid=account_uuid,
save=save,
),
from_attributes=True,
)
def get(self, *, pk: uuid.UUID) -> SaveOut:
try:
result = SaveOut.model_validate(
self.call(
self.backend_saves_service,
'get',
pk=pk,
),
from_attributes=True,
)
return result
except SOAError as exception:
if isinstance(exception.__cause__, BackendSavesService.SaveNotFound) is True:
raise self.SaveNotFound(f'pk=`{pk}`') from exception
else:
raise