🌟 Refactor
- Moved mappings into Sb1 impl - Moved Actual types to @common - Moved createDirIfMissing to respective functions - Refactored main into multiple functions - Moved create db into Sb1impl and close - Log requests on info
This commit is contained in:
66
packages/common/types.ts
Normal file
66
packages/common/types.ts
Normal file
@ -0,0 +1,66 @@
|
||||
import type { Dayjs } from "dayjs"
|
||||
import type { UUID } from "node:crypto"
|
||||
import type { TransactionEntity } from "@actual-app/api/@types/loot-core/types/models"
|
||||
|
||||
/**
|
||||
* Defines how to interact with the bank
|
||||
*/
|
||||
export interface Bank {
|
||||
/**
|
||||
* Fetch all transactions in the specified days, from the given accounts
|
||||
* @param interval Which days to fetch transactions for
|
||||
* @param accountKeys The id of the accounts to fetch transactions from
|
||||
* @returns An array of all transactions
|
||||
*/
|
||||
fetchTransactions: (
|
||||
interval: Interval,
|
||||
...accountKeys: ReadonlyArray<string>
|
||||
) => Promise<ReadonlyArray<ActualTransaction>>
|
||||
|
||||
/**
|
||||
* Shutdown resources
|
||||
*/
|
||||
shutdown: () => Promise<void> | void
|
||||
}
|
||||
|
||||
export interface Interval {
|
||||
fromDate: Dayjs
|
||||
toDate: Dayjs
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes how to interact with ActualBudget
|
||||
*/
|
||||
export interface Actual {
|
||||
/**
|
||||
* Import transactions following the rules defined in the ActualBudget instance
|
||||
* If the transactions exists, it will be updated, or no change should be done.
|
||||
* @param accountId The ActualBudget id to upload to
|
||||
* @param transactions The transactions to import
|
||||
* @returns An object describing what changed
|
||||
*/
|
||||
importTransactions: (
|
||||
accountId: UUID,
|
||||
transactions: Iterable<ActualTransaction>,
|
||||
) => Promise<ImportTransactionsResponse>
|
||||
|
||||
/**
|
||||
* Disconnect from ActualBudget and release resources
|
||||
*/
|
||||
shutdown: () => Promise<void>
|
||||
}
|
||||
|
||||
export interface ActualTransaction extends TransactionEntity {
|
||||
account: UUID
|
||||
payee_name?: string
|
||||
}
|
||||
|
||||
export interface ImportTransactionsResponse {
|
||||
errors?: Message[]
|
||||
added: number
|
||||
updated: number
|
||||
}
|
||||
|
||||
export interface Message {
|
||||
message: string
|
||||
}
|
Reference in New Issue
Block a user