Files
board-mate/api-customer/src/controllers/message_controller.py
2026-01-02 17:56:51 +01:00

47 lines
1.7 KiB
Python

from board_mate.message import Configuration, ApiClient, MessageDto, MessageApi, MessagePostRequestDto
from flask import jsonify, request
from pydantic import StrictStr
from src.models.AuthData import AuthData
from src.services.mqtt_service import MQTTService
import json
class MessageController:
_client_id : MQTTService = None
_auth_data : AuthData = None
def __init__(self, app, auth_data : AuthData, host : str):
self._register_routes(app)
self.config = Configuration(host=host)
self.config.verify_ssl=False
self._auth_data = auth_data
def _register_routes(self, app):
app.add_url_rule("/message/send", view_func=self.send, methods=['POST'])
def send(self):
try :
with ApiClient(self.config) as api:
req = request.get_json()
content = req["content"]
timestamp = req["timestamp"]
payload = json.dumps({"content": content, "timestamp": timestamp})
print(payload)
api.default_headers["Authorization"] = f"Bearer {self._auth_data.get_token()}"
message_api = MessageApi(api)
new_message = MessagePostRequestDto(
content=content,
timeStamp=timestamp,
clientId=StrictStr(self._auth_data.get_client_id())
)
message_api.post_message(new_message)
return jsonify({"success" : True, "message": None}), 200
except Exception as e:
print(e)
return jsonify({"success" : False, "message" : f"An error occurred : {self._auth_data.get_token()} {self._auth_data.get_client_id()} \n {e}"}), 500