This is useful for multitask environments (like the API), to avoid conflicts
35 lines
No EOL
1 KiB
Python
35 lines
No EOL
1 KiB
Python
import os
|
|
|
|
from adapters.postgres import PgDeviceRepository, PgReadingRepository
|
|
from adapters.postgres_query import PgReadingQueryRepository
|
|
from adapters.mqtt import PahoMqttBroker
|
|
from services.uplink_service import UplinkService
|
|
from services.consumption_service import ConsumptionService
|
|
|
|
MQTT_HOST = os.getenv("MQTT_HOST", "mosquitto")
|
|
MQTT_PORT = int(os.getenv("MQTT_PORT", 1883))
|
|
MQTT_TOPIC = os.getenv("MQTT_TOPIC", "application/+/device/+/event/up")
|
|
|
|
|
|
## Repositories
|
|
def get_device_repo() -> PgDeviceRepository:
|
|
return PgDeviceRepository()
|
|
|
|
def get_reading_repo() -> PgReadingRepository:
|
|
return PgReadingRepository()
|
|
|
|
def get_query_repo() -> PgReadingQueryRepository:
|
|
return PgReadingQueryRepository()
|
|
|
|
|
|
## Services
|
|
def get_uplink_service() -> UplinkService:
|
|
return UplinkService(get_device_repo(), get_reading_repo())
|
|
|
|
def get_consumption_service() -> ConsumptionService:
|
|
return ConsumptionService(get_query_repo())
|
|
|
|
|
|
## Adapters
|
|
def get_mqtt_broker() -> PahoMqttBroker:
|
|
return PahoMqttBroker(MQTT_HOST, MQTT_PORT, MQTT_TOPIC) |