A simple toy payments engine that reads a series of transactions from a CSV file, updates client accounts, handles disputes and chargebacks, and then outputs the state of clients accounts as a CSV file.
cargo run -- transactions.csv > accounts.csv
.
transactions.csv
is the name of the csv file that exists in the ./csvFiles
. It contains a series of transactions to be
read and processed.
accounts.csv
is the name of the file that exists in the ./csvFiles
. It would contain the accounts details
as a result processing the transactions.
- Both of the csv files must exist before running the app. It does not create new ones if one or both of those file do not exist.
- The name of those csv files must match with name of the files that are passed in the arguments.
- An extra file
failed.csv
will contain those failed transactions, each with an err message. This might be useful in case we need to deal with them later.