Loading poolpay/fints/__main__.py +5 −10 Changes for poolpay/fints/__main__.py: 5 added lines, 10 removed lines. Original line number Diff line number Diff line import getpass import json from pathlib import Path from typing import Annotated Loading @@ -8,6 +7,7 @@ from sqlalchemy import select from poolpay import db, paths from poolpay.model.BankAccount import BankAccount from poolpay.model.messages.UpdateBalanceMessage import UpdateBalanceMessage from poolpay.model.Transaction import Transaction app = typer.Typer() Loading Loading @@ -57,19 +57,14 @@ def export( transactions = db.session.execute(sorted_selection).scalars().all() messages = [ { "uuid": str(transaction.uuid), "action": { "type": "update_balance", "by_amount": transaction.amount_cents, }, "person": {"full_name": transaction.partner}, } UpdateBalanceMessage( transaction.uuid, transaction.amount_cents, transaction.partner ) for transaction in transactions ] for message in messages: print(json.dumps(message)) print(message) if __name__ == "__main__": Loading poolpay/model/messages/Message.py 0 → 100644 +11 −0 Changes for poolpay/model/messages/Message.py: 11 added lines, 0 removed lines. Original line number Diff line number Diff line from abc import ABC, abstractmethod from dataclasses import dataclass from poolpay.wire.Packet import Packet @dataclass(frozen=True) class Message(ABC): @abstractmethod def to_packet(self) -> Packet: pass poolpay/model/messages/UpdateBalanceMessage.py 0 → 100644 +26 −0 Changes for poolpay/model/messages/UpdateBalanceMessage.py: 26 added lines, 0 removed lines. Original line number Diff line number Diff line import json from dataclasses import dataclass from uuid import UUID from poolpay.model.messages.Message import Message from poolpay.wire.Packet import Packet @dataclass(frozen=True) class UpdateBalanceMessage(Message): uuid: UUID by_amount_cents: int person_full_name: str def to_packet(self) -> Packet: return { "uuid": str(self.uuid), "action": { "type": "update_balance", "by_amount_cents": self.by_amount_cents, }, "person": {"full_name": self.person_full_name}, } def __repr__(self) -> str: return json.dumps(self.to_packet()) poolpay/model/messages/__init__.py 0 → 100644 +6 −0 Changes for poolpay/model/messages/__init__.py: 6 added lines, 0 removed lines. Original line number Diff line number Diff line """ Messages to be sent and received, likely via the Wire. The Wire server and client transmit _packets_, which are arbitrary dicts. They don't care about the content. The model models messages, which have a semantic to it. """ Loading
poolpay/fints/__main__.py +5 −10 Changes for poolpay/fints/__main__.py: 5 added lines, 10 removed lines. Original line number Diff line number Diff line import getpass import json from pathlib import Path from typing import Annotated Loading @@ -8,6 +7,7 @@ from sqlalchemy import select from poolpay import db, paths from poolpay.model.BankAccount import BankAccount from poolpay.model.messages.UpdateBalanceMessage import UpdateBalanceMessage from poolpay.model.Transaction import Transaction app = typer.Typer() Loading Loading @@ -57,19 +57,14 @@ def export( transactions = db.session.execute(sorted_selection).scalars().all() messages = [ { "uuid": str(transaction.uuid), "action": { "type": "update_balance", "by_amount": transaction.amount_cents, }, "person": {"full_name": transaction.partner}, } UpdateBalanceMessage( transaction.uuid, transaction.amount_cents, transaction.partner ) for transaction in transactions ] for message in messages: print(json.dumps(message)) print(message) if __name__ == "__main__": Loading
poolpay/model/messages/Message.py 0 → 100644 +11 −0 Changes for poolpay/model/messages/Message.py: 11 added lines, 0 removed lines. Original line number Diff line number Diff line from abc import ABC, abstractmethod from dataclasses import dataclass from poolpay.wire.Packet import Packet @dataclass(frozen=True) class Message(ABC): @abstractmethod def to_packet(self) -> Packet: pass
poolpay/model/messages/UpdateBalanceMessage.py 0 → 100644 +26 −0 Changes for poolpay/model/messages/UpdateBalanceMessage.py: 26 added lines, 0 removed lines. Original line number Diff line number Diff line import json from dataclasses import dataclass from uuid import UUID from poolpay.model.messages.Message import Message from poolpay.wire.Packet import Packet @dataclass(frozen=True) class UpdateBalanceMessage(Message): uuid: UUID by_amount_cents: int person_full_name: str def to_packet(self) -> Packet: return { "uuid": str(self.uuid), "action": { "type": "update_balance", "by_amount_cents": self.by_amount_cents, }, "person": {"full_name": self.person_full_name}, } def __repr__(self) -> str: return json.dumps(self.to_packet())
poolpay/model/messages/__init__.py 0 → 100644 +6 −0 Changes for poolpay/model/messages/__init__.py: 6 added lines, 0 removed lines. Original line number Diff line number Diff line """ Messages to be sent and received, likely via the Wire. The Wire server and client transmit _packets_, which are arbitrary dicts. They don't care about the content. The model models messages, which have a semantic to it. """