Commit b28c0dd4 authored by Dimitrios Gogos's avatar Dimitrios Gogos
Browse files

feat: add source specification for location retrieval and quality on demand APIs

parent 0cd9cee3
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -5,6 +5,9 @@ from pydantic import AwareDatetime, BaseModel, Field, field_validator, model_val

from open_exposure_gateway.api.camara.common import validated_ipv4, validated_ipv6

SOURCE_API = "location-retrieval"
SOURCE_API_VERSION = "0.5.0"


class AreaType(StrEnum):
    CIRCLE = "CIRCLE"
+3 −0
Original line number Diff line number Diff line
@@ -6,6 +6,9 @@ from pydantic import BaseModel, Field, field_validator, model_validator

from open_exposure_gateway.api.camara.common import validated_ipv4, validated_ipv6

SOURCE_API = "quality-on-demand"
SOURCE_API_VERSION = "0.10.1"


class QosStatus(StrEnum):
    REQUESTED = "REQUESTED"
+7 −1
Original line number Diff line number Diff line
from uuid import UUID

from open_exposure_gateway.api.camara.location_retrieval.v0_5_0.schemas import (
    SOURCE_API,
    SOURCE_API_VERSION,
    AreaType,
    Circle,
    Device,
@@ -17,7 +19,10 @@ from open_exposure_gateway.domain.location_retrieval import (
    SRMLocationQuery,
    SRMLocationResult,
)
from open_exposure_gateway.domain.quality_on_demand import NetworkCapabilityTargetDevice
from open_exposure_gateway.domain.quality_on_demand import (
    NetworkCapabilityTargetDevice,
    SourceSpec,
)

_IDENTIFIER_PRECEDENCE = ("ipv4", "phone_number", "ipv6", "network_access_id")

@@ -49,6 +54,7 @@ def build_location_query(
            max_age_seconds=request.maxAge,
            max_surface_sqm=request.maxSurface,
        ),
        source_spec=SourceSpec(api=SOURCE_API, version=SOURCE_API_VERSION),
    )


+4 −0
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ from typing import Literal
from uuid import UUID, uuid4

from open_exposure_gateway.api.camara.quality_on_demand.v0_10_1.schemas import (
    SOURCE_API,
    SOURCE_API_VERSION,
    ApplicationServer,
    CreateSession,
    Device,
@@ -23,6 +25,7 @@ from open_exposure_gateway.domain.quality_on_demand import (
    NetworkCapabilityTargetApplicationServer,
    NetworkCapabilityTargetDevice,
    QosStatusChangedCloudEvent,
    SourceSpec,
    SRMNetworkCapability,
    SRMNetworkCapabilityActivateCommand,
    SRMNetworkCapabilityDeactivateCommand,
@@ -83,6 +86,7 @@ def build_activate_command(
            target=target,
            profile_ref=request.qosProfile,
            parameters=NetworkCapabilityParameters(duration_seconds=request.duration),
            source_spec=SourceSpec(api=SOURCE_API, version=SOURCE_API_VERSION),
        ),
    )

+5 −1
Original line number Diff line number Diff line
@@ -10,7 +10,10 @@ from typing import Literal

from pydantic import AwareDatetime, BaseModel, Field

from open_exposure_gateway.domain.quality_on_demand import NetworkCapabilityTargetDevice
from open_exposure_gateway.domain.quality_on_demand import (
    NetworkCapabilityTargetDevice,
    SourceSpec,
)


class LocationQueryTarget(BaseModel):
@@ -31,6 +34,7 @@ class SRMLocationQuery(BaseModel):
    service_specification_id: str
    target: LocationQueryTarget
    parameters: LocationQueryParameters = Field(default_factory=LocationQueryParameters)
    source_spec: SourceSpec


class LocationPoint(BaseModel):
Loading