Implement bankstatement, export, and data interactors (#4) #16
Reference in New Issue
Block a user
Delete Branch "feat/4-implement-bankstatement-export-data"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
BankStatementImporterinterface and 3 stub implementations (BRI / Jago / BNI) returningNotImplementedErrorExportExpensesToCsvinteractor that writes a UTF-8 BOM CSV via Okio with ISO 8601 dates and double-quoted notesClearAllDatainteractor that wipes all Room tables insidewithTransactionPDFBoxResourceLoader.init(this)toMainApplication.onCreateand register all new interactors inDomainModule(incl. theList<BankStatementImporter>aggregate)Test plan
./gradlew assembleDebugsucceeds in the worktreeNotImplementedErrorfailure as specifiedExportExpensesToCsvopens the SAFOutputStream, writes the BOM via\uFEFF, writes theDate,Category,Amount,Noteheader, and one CSV row per expense withLocalDate.toString()(ISO 8601)ClearAllDatacallsdatabase.withTransaction { database.clearAllTables() }(no re-seed;SettingsScreenwill re-runSeedDefaultCategoriesafterwards)MainApplication.onCreateinvokesPDFBoxResourceLoader.init(this)beforestartKoinDomainModuleprovides the 3 named bank importers, theList<BankStatementImporter>aggregate,ExportExpensesToCsv, andClearAllDataCloses #4