Commit d59f7812 authored by George Papathanail's avatar George Papathanail
Browse files

feat: add CAMARA to SRm activate command mapper

parent 167d342e
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
from uuid import UUID

from open_exposure_gateway.api.camara.quality_on_demand.v0_10_1.schemas import CreateSession
from open_exposure_gateway.domain.quality_on_demand import (
    NetworkCapabilityParameters,
    NetworkCapabilityPayload,
    NetworkCapabilityTarget,
    NetworkCapabilityTargetApplicationServer,
    NetworkCapabilityTargetDevice,
    SRMNetworkCapabilityActivateCommand,
)


def build_activate_command(
    request: CreateSession,
    operation_id: UUID,
    correlation_id: str,
    requested_at: str,
    service_specification_id: UUID,
    app_provider_id: str,
) -> SRMNetworkCapabilityActivateCommand:
    device = request.device
    application_server = request.applicationServer

    target = NetworkCapabilityTarget(
        device=NetworkCapabilityTargetDevice(
            phone_number=device.phoneNumber,
            ipv4=device.ipv4Address.publicAddress if device.ipv4Address else None,
            ipv6=device.ipv6Address,
            network_access_id=device.networkAccessIdentifier,
        ),
        application_server=NetworkCapabilityTargetApplicationServer(
            ipv4=application_server.ipv4Address,
            ipv6=application_server.ipv6Address,
        ),
    )

    return SRMNetworkCapabilityActivateCommand(
        operation_id=str(operation_id),
        correlation_id=correlation_id,
        requested_at=requested_at,
        app_provider_id=app_provider_id,
        service_specification_id=str(service_specification_id),
        network_capability=NetworkCapabilityPayload(
            target=target,
            profile_ref=request.qosProfile,
            parameters=NetworkCapabilityParameters(duration_seconds=request.duration),
        ),
    )