Verified Commit 7e3d01c8 authored by Jakob Moser's avatar Jakob Moser
Browse files

Update if already exists

parent b510dc6f
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -178,17 +178,21 @@ class Director:
        logging.debug("Presented Balance scene")

    def message_received(self, message: Message) -> None:
        if (receipt := MessageReceipt.get_only(message.uuid)) and receipt.successful:
        receipt = MessageReceipt.get_only(message.uuid)

        if receipt and receipt.successful:
            logging.info(
                f"Successfully previously received message {message.uuid}, doing nothing."
            )
            return

        successful = False
        if not receipt:
            receipt = MessageReceipt(uuid=message.uuid, successful=False)

        try:
            successful = self._handle_message(message)
            receipt.successful = self._handle_message(message)
        finally:
            db.session.add(MessageReceipt(uuid=message.uuid, successful=successful))
            db.session.add(receipt)
            db.session.commit()

    def _handle_message(self, message: Message) -> bool: