Rename Nordigen to PSD2

This commit is contained in:
Luís Murta 2023-04-13 18:55:33 +01:00
parent 26cf921a6f
commit 184628dcfc
Signed by: satprog
GPG Key ID: 169EF1BBD7049F94
5 changed files with 37 additions and 28 deletions

View File

@ -83,7 +83,7 @@ if __name__ == "__main__":
assert len(args["bank"]) > 0, "argparser ill defined" assert len(args["bank"]) > 0, "argparser ill defined"
params = args["bank"] params = args["bank"]
case Operation.NordigenAdd: case Operation.PSD2Add:
keys = {"bank", "bank_id", "requisition_id", "invert"} keys = {"bank", "bank_id", "requisition_id", "invert"}
assert args.keys() >= keys, f"missing {args.keys() - keys}" assert args.keys() >= keys, f"missing {args.keys() - keys}"
@ -96,7 +96,7 @@ if __name__ == "__main__":
) )
] ]
case Operation.NordigenMod: case Operation.PSD2Mod:
keys = {"bank", "bank_id", "requisition_id", "invert", "remove"} keys = {"bank", "bank_id", "requisition_id", "invert", "remove"}
assert args.keys() >= keys, f"missing {args.keys() - keys}" assert args.keys() >= keys, f"missing {args.keys() - keys}"
@ -110,11 +110,11 @@ if __name__ == "__main__":
params = [param] params = [param]
case Operation.NordigenDel: case Operation.PSD2Del:
assert len(args["bank"]) > 0, "argparser ill defined" assert len(args["bank"]) > 0, "argparser ill defined"
params = args["bank"] params = args["bank"]
case Operation.NordigenCountryBanks: case Operation.PSD2CountryBanks:
keys = {"country"} keys = {"country"}
assert args.keys() >= keys, f"missing {args.keys() - keys}" assert args.keys() >= keys, f"missing {args.keys() - keys}"
@ -149,7 +149,16 @@ if __name__ == "__main__":
] ]
case Operation.RuleAdd: case Operation.RuleAdd:
keys = {"category", "start", "end", "description", "regex", "bank", "min", "max"} keys = {
"category",
"start",
"end",
"description",
"regex",
"bank",
"min",
"max",
}
assert args.keys() >= keys, f"missing {args.keys() - keys}" assert args.keys() >= keys, f"missing {args.keys() - keys}"
params = [ params = [

View File

@ -126,16 +126,16 @@ def argparser() -> argparse.ArgumentParser:
# Banks # Banks
bank(subparsers.add_parser("bank")) bank(subparsers.add_parser("bank"))
# Nordigen access token # PSD2 access token
subparsers.add_parser("token").set_defaults(op=Operation.Token) subparsers.add_parser("token").set_defaults(op=Operation.Token)
# Nordigen requisition id # PSD2 requisition id
requisition = subparsers.add_parser("eua") requisition = subparsers.add_parser("eua")
requisition.set_defaults(op=Operation.RequisitionId) requisition.set_defaults(op=Operation.RequisitionId)
requisition.add_argument("id", nargs=1, type=str) requisition.add_argument("id", nargs=1, type=str)
requisition.add_argument("country", nargs=1, type=str) requisition.add_argument("country", nargs=1, type=str)
# Download through the Nordigen API # Download through the PSD2 API
download = subparsers.add_parser("download", parents=[period]) download = subparsers.add_parser("download", parents=[period])
download.set_defaults(op=Operation.Download) download.set_defaults(op=Operation.Download)
download_banks = download.add_mutually_exclusive_group() download_banks = download.add_mutually_exclusive_group()
@ -145,7 +145,7 @@ def argparser() -> argparse.ArgumentParser:
# List available banks in country C # List available banks in country C
banks = subparsers.add_parser("banks") banks = subparsers.add_parser("banks")
banks.set_defaults(op=Operation.NordigenCountryBanks) banks.set_defaults(op=Operation.PSD2CountryBanks)
banks.add_argument("country", nargs=1, type=str) banks.add_argument("country", nargs=1, type=str)
# Categories # Categories
@ -214,7 +214,7 @@ def bank(parser: argparse.ArgumentParser):
mod.add_argument("--type", nargs=1, type=str, choices=[e.name for e in AccountType]) mod.add_argument("--type", nargs=1, type=str, choices=[e.name for e in AccountType])
mod.add_argument("--remove", nargs="*", default=[], type=str) mod.add_argument("--remove", nargs="*", default=[], type=str)
nordigen(commands.add_parser("nordigen")) psd2(commands.add_parser("psd2"))
export = commands.add_parser("export") export = commands.add_parser("export")
export.set_defaults(op=Operation.ExportBanks) export.set_defaults(op=Operation.ExportBanks)
@ -225,22 +225,22 @@ def bank(parser: argparse.ArgumentParser):
file_options(pimport) file_options(pimport)
def nordigen(parser: argparse.ArgumentParser): def psd2(parser: argparse.ArgumentParser):
commands = parser.add_subparsers(required=True) commands = parser.add_subparsers(required=True)
add = commands.add_parser("add") add = commands.add_parser("add")
add.set_defaults(op=Operation.NordigenAdd) add.set_defaults(op=Operation.PSD2Add)
add.add_argument("bank", nargs=1, type=str) add.add_argument("bank", nargs=1, type=str)
add.add_argument("--bank_id", nargs=1, type=str) add.add_argument("--bank_id", nargs=1, type=str)
add.add_argument("--requisition_id", nargs=1, type=str) add.add_argument("--requisition_id", nargs=1, type=str)
add.add_argument("--invert", action="store_true") add.add_argument("--invert", action="store_true")
rem = commands.add_parser("del") rem = commands.add_parser("del")
rem.set_defaults(op=Operation.NordigenDel) rem.set_defaults(op=Operation.PSD2Del)
rem.add_argument("bank", nargs="+", type=str) rem.add_argument("bank", nargs="+", type=str)
mod = commands.add_parser("mod") mod = commands.add_parser("mod")
mod.set_defaults(op=Operation.NordigenMod) mod.set_defaults(op=Operation.PSD2Mod)
mod.add_argument("bank", nargs=1, type=str) mod.add_argument("bank", nargs=1, type=str)
mod.add_argument("--bank_id", nargs=1, type=str) mod.add_argument("--bank_id", nargs=1, type=str)
mod.add_argument("--requisition_id", nargs=1, type=str) mod.add_argument("--requisition_id", nargs=1, type=str)

View File

@ -33,10 +33,10 @@ class Operation(Enum):
BankAdd = auto() BankAdd = auto()
BankMod = auto() BankMod = auto()
BankDel = auto() BankDel = auto()
NordigenAdd = auto() PSD2Add = auto()
NordigenMod = auto() PSD2Mod = auto()
NordigenDel = auto() PSD2Del = auto()
NordigenCountryBanks = auto() PSD2CountryBanks = auto()
Export = auto() Export = auto()
Import = auto() Import = auto()
ExportBanks = auto() ExportBanks = auto()

View File

@ -25,7 +25,7 @@ from pfbudget.db.model import (
Transaction, Transaction,
TransactionCategory, TransactionCategory,
) )
from pfbudget.extract.nordigen import NordigenInput from pfbudget.extract.psd2 import PSD2Client
from pfbudget.extract.parsers import parse_data from pfbudget.extract.parsers import parse_data
@ -72,7 +72,7 @@ class Manager:
session.add(sorted(transactions)) session.add(sorted(transactions))
case Operation.Download: case Operation.Download:
client = NordigenInput() client = PSD2Client()
with self.db.session() as session: with self.db.session() as session:
if len(params[3]) == 0: if len(params[3]) == 0:
client.banks = session.get(Bank, Bank.nordigen) client.banks = session.get(Bank, Bank.nordigen)
@ -103,7 +103,7 @@ class Manager:
with self.db.session() as session: with self.db.session() as session:
session.update(Bank, params) session.update(Bank, params)
case Operation.NordigenMod: case Operation.PSD2Mod:
with self.db.session() as session: with self.db.session() as session:
session.update(Nordigen, params) session.update(Nordigen, params)
@ -111,26 +111,26 @@ class Manager:
with self.db.session() as session: with self.db.session() as session:
session.remove_by_name(Bank, params) session.remove_by_name(Bank, params)
case Operation.NordigenDel: case Operation.PSD2Del:
with self.db.session() as session: with self.db.session() as session:
session.remove_by_name(Nordigen, params) session.remove_by_name(Nordigen, params)
case Operation.Token: case Operation.Token:
NordigenInput().token() PSD2Client().token()
case Operation.RequisitionId: case Operation.RequisitionId:
link, _ = NordigenInput().requisition(params[0], params[1]) link, _ = PSD2Client().requisition(params[0], params[1])
print(f"Opening {link} to request access to {params[0]}") print(f"Opening {link} to request access to {params[0]}")
webbrowser.open(link) webbrowser.open(link)
case Operation.NordigenCountryBanks: case Operation.PSD2CountryBanks:
banks = NordigenInput().country_banks(params[0]) banks = PSD2Client().country_banks(params[0])
print(banks) print(banks)
case ( case (
Operation.BankAdd Operation.BankAdd
| Operation.CategoryAdd | Operation.CategoryAdd
| Operation.NordigenAdd | Operation.PSD2Add
| Operation.RuleAdd | Operation.RuleAdd
| Operation.TagAdd | Operation.TagAdd
| Operation.TagRuleAdd | Operation.TagRuleAdd

View File

@ -15,7 +15,7 @@ from .extract import Extract
dotenv.load_dotenv() dotenv.load_dotenv()
class NordigenInput(Extract): class PSD2Client(Extract):
redirect_url = "https://murta.dev" redirect_url = "https://murta.dev"
def __init__(self): def __init__(self):