Verified Commit b3c61b3a authored by Jakob Moser's avatar Jakob Moser
Browse files

Allow overriding partner using purpose

parent ff56ce42
Loading
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
import getpass
import re
import sys
from pathlib import Path
from typing import Annotated
@@ -49,14 +50,27 @@ def _encrypt_if_requested(content: str, encrypt: bool) -> str:
        return content


def _maybe_override_partner(partner: str, purpose: str, override_partner: bool) -> str:
    if override_partner and (match := re.findall(r".* f(?:ü|ue|u)r (.+)", purpose)):
        return match[0]
    else:
        return partner


@app.command()
def export(
    filter_purpose: Annotated[
        str | None,
        typer.Option(
            help="An optonal regex to keep only transactions with matching purpose"
            help="An optional regex to keep only transactions with matching purpose"
        ),
    ] = r"Aufladen",
    override_partner: Annotated[
        bool,
        typer.Option(
            help="If the transaction purpose contains 'für XYZ', set the partner to XYZ"
        ),
    ] = True,
    encrypt: Annotated[
        bool,
        typer.Option(
@@ -89,7 +103,11 @@ def export(

    messages = [
        UpdateBalanceMessage(
            transaction.uuid, transaction.amount_cents, transaction.partner
            transaction.uuid,
            transaction.amount_cents,
            _maybe_override_partner(
                transaction.partner, transaction.purpose, override_partner
            ),
        )
        for transaction in transactions
    ]