Commit aa046126 authored by Paris Stentoumis's avatar Paris Stentoumis
Browse files

fix: now changed every repo save function to create. the use of session.merge...

fix: now changed every repo save function to create. the use of session.merge changed to session.add. changed it to every repo to be consistent and the save/update function will be added per use case
parent 94657429
Loading
Loading
Loading
Loading
+18 −17
Original line number Diff line number Diff line
@@ -63,19 +63,20 @@ class SqlServiceSpecificationRepository(ServiceSpecificationRepository):
        row = await self._session.scalar(stmt)
        return ServiceSpecificationMapper.to_domain(row) if row is not None else None

    async def save(self, service_specification: ServiceSpecification) -> ServiceSpecification:
        merged = await self._session.merge(ServiceSpecificationMapper.to_row(service_specification))
    async def create(self, service_specification: ServiceSpecification) -> ServiceSpecification:
        row = ServiceSpecificationMapper.to_row(service_specification)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="service_specification", operation="save")
            _log_integrity_error(exc, entity="service_specification", operation="create")
            if _pgcode(exc) == "23505":
                raise DuplicateServiceSpecificationError() from exc
            raise
        specification_id = merged.id
        specification_id = row.id
        saved = await self.get_by_id(specification_id)
        if saved is None:
            raise RuntimeError("Saved service specification could not be reloaded")
            raise RuntimeError("Created service specification could not be reloaded")
        return saved


@@ -88,17 +89,18 @@ class SqlServiceDeploymentUnitRepository(ServiceDeploymentUnitRepository):
        row = await self._session.scalar(stmt)
        return ServiceDeploymentUnitMapper.to_domain(row) if row is not None else None

    async def save(self, deployment_unit: ServiceDeploymentUnit) -> ServiceDeploymentUnit:
        merged = await self._session.merge(ServiceDeploymentUnitMapper.to_row(deployment_unit))
    async def create(self, deployment_unit: ServiceDeploymentUnit) -> ServiceDeploymentUnit:
        row = ServiceDeploymentUnitMapper.to_row(deployment_unit)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="service_deployment_unit", operation="save")
            _log_integrity_error(exc, entity="service_deployment_unit", operation="create")
            raise
        deployment_unit_id = merged.id
        deployment_unit_id = row.id
        saved = await self.get_by_id(deployment_unit_id)
        if saved is None:
            raise RuntimeError("Saved deployment unit could not be reloaded")
            raise RuntimeError("Created deployment unit could not be reloaded")
        return saved


@@ -113,20 +115,19 @@ class SqlServiceCapabilityRequirementRepository(ServiceCapabilityRequirementRepo
        row = await self._session.scalar(stmt)
        return ServiceCapabilityRequirementMapper.to_domain(row) if row is not None else None

    async def save(
    async def create(
        self,
        capability_requirement: ServiceCapabilityRequirement,
    ) -> ServiceCapabilityRequirement:
        merged = await self._session.merge(
            ServiceCapabilityRequirementMapper.to_row(capability_requirement)
        )
        row = ServiceCapabilityRequirementMapper.to_row(capability_requirement)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="service_capability_requirement", operation="save")
            _log_integrity_error(exc, entity="service_capability_requirement", operation="create")
            raise
        requirement_id = merged.id
        requirement_id = row.id
        saved = await self.get_by_id(requirement_id)
        if saved is None:
            raise RuntimeError("Saved capability requirement could not be reloaded")
            raise RuntimeError("Created capability requirement could not be reloaded")
        return saved
+18 −15
Original line number Diff line number Diff line
@@ -51,17 +51,18 @@ class SqlServiceOrderRepository(ServiceOrderRepository):
        row = await self._session.scalar(stmt)
        return ServiceOrderMapper.to_domain(row) if row is not None else None

    async def save(self, service_order: ServiceOrder) -> ServiceOrder:
        merged = await self._session.merge(ServiceOrderMapper.to_row(service_order))
    async def create(self, service_order: ServiceOrder) -> ServiceOrder:
        row = ServiceOrderMapper.to_row(service_order)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="service_order", operation="save")
            _log_integrity_error(exc, entity="service_order", operation="create")
            raise
        service_order_id = merged.id
        service_order_id = row.id
        saved = await self.get_by_id(service_order_id)
        if saved is None:
            raise RuntimeError("Saved service order could not be reloaded")
            raise RuntimeError("Created service order could not be reloaded")
        return saved


@@ -80,17 +81,18 @@ class SqlServiceInstanceRepository(ServiceInstanceRepository):
        row = await self._session.scalar(stmt)
        return ServiceInstanceMapper.to_domain(row) if row is not None else None

    async def save(self, service_instance: ServiceInstance) -> ServiceInstance:
        merged = await self._session.merge(ServiceInstanceMapper.to_row(service_instance))
    async def create(self, service_instance: ServiceInstance) -> ServiceInstance:
        row = ServiceInstanceMapper.to_row(service_instance)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="service_instance", operation="save")
            _log_integrity_error(exc, entity="service_instance", operation="create")
            raise
        service_instance_id = merged.id
        service_instance_id = row.id
        saved = await self.get_by_id(service_instance_id)
        if saved is None:
            raise RuntimeError("Saved service instance could not be reloaded")
            raise RuntimeError("Created service instance could not be reloaded")
        return saved


@@ -103,15 +105,16 @@ class SqlCapabilityInstanceRepository(CapabilityInstanceRepository):
        row = await self._session.scalar(stmt)
        return CapabilityInstanceMapper.to_domain(row) if row is not None else None

    async def save(self, capability_instance: CapabilityInstance) -> CapabilityInstance:
        merged = await self._session.merge(CapabilityInstanceMapper.to_row(capability_instance))
    async def create(self, capability_instance: CapabilityInstance) -> CapabilityInstance:
        row = CapabilityInstanceMapper.to_row(capability_instance)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="capability_instance", operation="save")
            _log_integrity_error(exc, entity="capability_instance", operation="create")
            raise
        capability_instance_id = merged.id
        capability_instance_id = row.id
        saved = await self.get_by_id(capability_instance_id)
        if saved is None:
            raise RuntimeError("Saved capability instance could not be reloaded")
            raise RuntimeError("Created capability instance could not be reloaded")
        return saved
+24 −20
Original line number Diff line number Diff line
@@ -57,17 +57,18 @@ class SqlZoneRepository(ZoneRepository):
        row = await self._session.scalar(stmt)
        return ZoneMapper.to_domain(row) if row is not None else None

    async def save(self, zone: Zone) -> Zone:
        merged = await self._session.merge(ZoneMapper.to_row(zone))
    async def create(self, zone: Zone) -> Zone:
        row = ZoneMapper.to_row(zone)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="zone", operation="save")
            _log_integrity_error(exc, entity="zone", operation="create")
            raise
        zone_id = merged.id
        zone_id = row.id
        saved = await self.get_by_id(zone_id)
        if saved is None:
            raise RuntimeError("Saved zone could not be reloaded")
            raise RuntimeError("Created zone could not be reloaded")
        return saved


@@ -88,17 +89,18 @@ class SqlDomainRepository(DomainRepository):
        row = await self._session.scalar(stmt)
        return DomainMapper.to_domain(row) if row is not None else None

    async def save(self, domain: Domain) -> Domain:
        merged = await self._session.merge(DomainMapper.to_row(domain))
    async def create(self, domain: Domain) -> Domain:
        row = DomainMapper.to_row(domain)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="domain", operation="save")
            _log_integrity_error(exc, entity="domain", operation="create")
            raise
        domain_id = merged.id
        domain_id = row.id
        saved = await self.get_by_id(domain_id)
        if saved is None:
            raise RuntimeError("Saved domain could not be reloaded")
            raise RuntimeError("Created domain could not be reloaded")
        return saved


@@ -115,17 +117,18 @@ class SqlCapabilityRepository(CapabilityRepository):
        row = await self._session.scalar(stmt)
        return CapabilityMapper.to_domain(row) if row is not None else None

    async def save(self, capability: Capability) -> Capability:
        merged = await self._session.merge(CapabilityMapper.to_row(capability))
    async def create(self, capability: Capability) -> Capability:
        row = CapabilityMapper.to_row(capability)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="capability", operation="save")
            _log_integrity_error(exc, entity="capability", operation="create")
            raise
        capability_id = merged.id
        capability_id = row.id
        saved = await self.get_by_id(capability_id)
        if saved is None:
            raise RuntimeError("Saved capability could not be reloaded")
            raise RuntimeError("Created capability could not be reloaded")
        return saved


@@ -138,15 +141,16 @@ class SqlControlPathBindingRepository(ControlPathBindingRepository):
        row = await self._session.scalar(stmt)
        return ControlPathBindingMapper.to_domain(row) if row is not None else None

    async def save(self, control_path_binding: ControlPathBinding) -> ControlPathBinding:
        merged = await self._session.merge(ControlPathBindingMapper.to_row(control_path_binding))
    async def create(self, control_path_binding: ControlPathBinding) -> ControlPathBinding:
        row = ControlPathBindingMapper.to_row(control_path_binding)
        self._session.add(row)
        try:
            await self._session.flush()
        except IntegrityError as exc:
            _log_integrity_error(exc, entity="control_path_binding", operation="save")
            _log_integrity_error(exc, entity="control_path_binding", operation="create")
            raise
        binding_id = merged.id
        binding_id = row.id
        saved = await self.get_by_id(binding_id)
        if saved is None:
            raise RuntimeError("Saved control path binding could not be reloaded")
            raise RuntimeError("Created control path binding could not be reloaded")
        return saved
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ class ServiceSpecificationRepository(ABC):
        pass

    @abstractmethod
    async def save(self, service_specification: ServiceSpecification) -> ServiceSpecification:
    async def create(self, service_specification: ServiceSpecification) -> ServiceSpecification:
        pass


@@ -26,7 +26,7 @@ class ServiceDeploymentUnitRepository(ABC):
        pass

    @abstractmethod
    async def save(self, deployment_unit: ServiceDeploymentUnit) -> ServiceDeploymentUnit:
    async def create(self, deployment_unit: ServiceDeploymentUnit) -> ServiceDeploymentUnit:
        pass


@@ -36,7 +36,7 @@ class ServiceCapabilityRequirementRepository(ABC):
        pass

    @abstractmethod
    async def save(
    async def create(
        self,
        capability_requirement: ServiceCapabilityRequirement,
    ) -> ServiceCapabilityRequirement:
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ class ServiceOrderRepository(ABC):
        pass

    @abstractmethod
    async def save(self, service_order: ServiceOrder) -> ServiceOrder:
    async def create(self, service_order: ServiceOrder) -> ServiceOrder:
        pass


@@ -26,7 +26,7 @@ class ServiceInstanceRepository(ABC):
        pass

    @abstractmethod
    async def save(self, service_instance: ServiceInstance) -> ServiceInstance:
    async def create(self, service_instance: ServiceInstance) -> ServiceInstance:
        pass


@@ -36,5 +36,5 @@ class CapabilityInstanceRepository(ABC):
        pass

    @abstractmethod
    async def save(self, capability_instance: CapabilityInstance) -> CapabilityInstance:
    async def create(self, capability_instance: CapabilityInstance) -> CapabilityInstance:
        pass
Loading