refacto: use common dependency injection repository for consumer app

This commit is contained in:
Alexis Fourmaux 2026-05-10 13:26:08 +02:00
parent f127a4c34c
commit a22413bb0b
2 changed files with 26 additions and 28 deletions

View file

@ -1,31 +1,11 @@
import logging
import sys
import os
from core.logging import setup_logging
from dependencies import get_conn, get_uplink_service, get_mqtt_broker
from adapters.postgres import connect, PgDeviceRepository, PgReadingRepository
from adapters.mqtt import PahoMqttBroker
from services.uplink_service import UplinkService
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")
DB_URI = os.getenv("DATABASE_URL", "postgresql://simugaz:simugaz@db/simugaz")
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
datefmt="%Y-%m-%dT%H:%M:%S",
stream=sys.stdout,
force=True,
)
setup_logging()
if __name__ == "__main__":
conn = connect(DB_URI)
broker = PahoMqttBroker(MQTT_HOST, MQTT_PORT, MQTT_TOPIC)
devices = PgDeviceRepository(conn)
readings = PgReadingRepository(conn)
uplink = UplinkService(devices, readings)
conn = get_conn()
broker = get_mqtt_broker()
uplink = get_uplink_service()
broker.start(on_uplink=uplink.handle)