1efac587f2
fixup! ci: add action-semantic-pull-request
Go / build (1.23) (pull_request) Successful in 20s
Go / build (1.24) (pull_request) Successful in 21s
Lint PR / commitlint (pull_request) Failing after 25s
Go / build (1.22) (pull_request) Successful in 17s
2025-06-21 19:12:40 +01:00
01a9f4109d
fixup! ci: add action-semantic-pull-request
Go / build (1.24) (pull_request) Successful in 35s
Go / build (1.22) (pull_request) Successful in 21s
Go / build (1.23) (pull_request) Successful in 36s
Lint PR / commitlint (pull_request) Failing after 25s
2025-06-21 19:03:28 +01:00
76196661ac
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 47s
Go / build (1.22) (pull_request) Successful in 37s
Go / build (1.23) (pull_request) Failing after 20s
Go / build (1.24) (pull_request) Failing after 13s
2025-06-21 18:40:53 +01:00
d2f6d33006
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 21s
Go / build (1.23) (pull_request) Successful in 20s
Go / build (1.24) (pull_request) Successful in 20s
Lint PR / Validate PR title (pull_request) Failing after 15s
2025-06-13 19:46:49 +01:00
c8c0de646d
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 19s
Go / build (1.23) (pull_request) Successful in 20s
Go / build (1.24) (pull_request) Successful in 20s
Lint PR / Validate PR title (pull_request) Failing after 14s
2025-06-13 19:41:53 +01:00
4b88fb37dd
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 18s
Go / build (1.23) (pull_request) Successful in 20s
Go / build (1.24) (pull_request) Successful in 20s
Lint PR / Validate PR title (pull_request) Failing after 14s
2025-06-13 19:34:23 +01:00
8452e6723e
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 13s
Go / build (1.23) (pull_request) Successful in 20s
Go / build (1.24) (pull_request) Successful in 20s
Lint PR / Validate PR title (pull_request) Failing after 14s
2025-06-13 19:24:14 +01:00
d95fe7abbb
fixup! ci: add action-semantic-pull-request
Go / build (1.23) (pull_request) Successful in 37s
Lint PR / Validate PR title (pull_request) Failing after 14s
Go / build (1.22) (pull_request) Successful in 32s
Go / build (1.24) (pull_request) Successful in 40s
2025-06-13 17:42:27 +01:00
76a3b56d76
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 10m57s
Go / build (1.23) (pull_request) Successful in 10m10s
Go / build (1.24) (pull_request) Successful in 10m8s
Lint PR / Validate PR title (pull_request) Failing after 20s
2025-06-13 16:55:46 +01:00
86a29485b7
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 12s
Go / build (1.23) (pull_request) Successful in 13s
Go / build (1.24) (pull_request) Successful in 14s
Lint PR / Validate PR title (pull_request) Failing after 3s
2025-06-01 21:04:21 +01:00
68ba8a0630
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 5s
Go / build (1.22) (pull_request) Successful in 16s
Go / build (1.23) (pull_request) Successful in 16s
Go / build (1.24) (pull_request) Successful in 16s
2025-06-01 20:58:59 +01:00
6760e53638
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 7s
Go / build (1.22) (pull_request) Successful in 14s
Go / build (1.23) (pull_request) Successful in 16s
Go / build (1.24) (pull_request) Successful in 16s
2025-06-01 20:58:17 +01:00
0e6abbc10e
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 6s
Go / build (1.22) (pull_request) Successful in 15s
Go / build (1.23) (pull_request) Successful in 16s
Go / build (1.24) (pull_request) Successful in 15s
2025-06-01 20:57:36 +01:00
763c4e0a0a
fixup! ci: add action-semantic-pull-request
Go / build (1.22) (pull_request) Successful in 14s
Go / build (1.23) (pull_request) Successful in 16s
Go / build (1.24) (pull_request) Successful in 16s
Lint PR / Validate PR title (pull_request) Failing after 16s
2025-06-01 20:55:25 +01:00
10821298bb
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 5s
Go / build (1.22) (pull_request) Successful in 14s
Go / build (1.23) (pull_request) Successful in 14s
Go / build (1.24) (pull_request) Successful in 15s
2025-06-01 20:50:53 +01:00
084e261105
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 5s
Go / build (1.22) (pull_request) Successful in 12s
Go / build (1.23) (pull_request) Successful in 14s
Go / build (1.24) (pull_request) Successful in 14s
2025-06-01 20:46:22 +01:00
b55f6115e6
fixup! ci: add action-semantic-pull-request
Lint PR / Validate PR title (pull_request) Failing after 6s
Go / build (1.22) (pull_request) Successful in 14s
Go / build (1.23) (pull_request) Successful in 14s
Go / build (1.24) (pull_request) Successful in 15s
2025-06-01 20:41:33 +01:00
38b7d4d112
ci: add action-semantic-pull-request
2025-06-01 20:37:33 +01:00
a6ea697686
fix: transactions SQL statement missing space
...
Go / build (1.22) (push) Successful in 13s
Go / build (1.23) (push) Successful in 14s
Go / build (1.24) (push) Successful in 15s
It is error-prone joining together string literals, since the separator
between statements isn't clear.
Instead, store statements on a string array, and combine them at the
end.
2025-06-01 10:29:36 +00:00
eea6592a26
ci: update go versions
Go / build (1.22) (pull_request) Successful in 12s
Go / build (1.23) (pull_request) Successful in 1m11s
Go / build (1.24) (pull_request) Successful in 1m13s
Go / build (1.24) (push) Has been cancelled
Go / build (1.23) (push) Has been cancelled
Go / build (1.22) (push) Has been cancelled
2025-06-01 11:23:55 +01:00
0347a615ac
Remove logging left from previous commit
Go / build (1.21) (push) Successful in 12s
Go / build (1.22) (push) Successful in 10s
2025-04-12 22:27:55 +01:00
6a854b541a
Add category filtering
...
Thus implementing the category parameter on the /transactions path.
Issue #2
2025-04-12 22:27:44 +01:00
5552b0622a
Implement pagination on /transactions
...
Go / build (1.21) (pull_request) Successful in 13s
Go / build (1.22) (pull_request) Successful in 12s
Go / build (1.21) (push) Successful in 11s
Go / build (1.22) (push) Successful in 10s
using limit and offset.
While not the best, it's the simpler to implement.
Issue: #11
2025-03-27 21:05:26 +00:00
708a8d0588
Adds CORS protocol to server responses
...
Go / build (1.21) (pull_request) Successful in 12s
Go / build (1.22) (pull_request) Successful in 11s
Go / build (1.21) (push) Successful in 12s
Go / build (1.22) (push) Successful in 11s
Allow requests from all endpoints. Currently it is only running on
localhost.
It is required by the react's fetching lib used.
2025-03-23 19:51:46 +00:00
50e8269120
Support modifying a transaction category
...
Go / build (1.22) (pull_request) Successful in 11s
Go / build (1.21) (pull_request) Successful in 11s
Go / build (1.22) (push) Successful in 1m32s
Go / build (1.21) (push) Successful in 1m35s
through the PUT /transactions/{transactionId} method.
The category is also returned on a /transaction(s) call.
Restrict the PUT to changing only the category. The other existing
attributes should remain immutable.
Remove the body of the PUT response, it isn't required, and it was
returning a 204, which shouldn't have it.
This patch also extracts the CategoryName as a separate component on the
OpenAPI spec, so that it can be reused on the Transaction.
Issues #26 and #23
2024-09-13 19:39:24 +01:00
1467250db4
Implements GET /categories
...
Go / build (1.21) (pull_request) Successful in 57s
Go / build (1.22) (pull_request) Successful in 55s
Go / build (1.22) (push) Has been cancelled
Go / build (1.21) (push) Has been cancelled
Adds type to OpenAPI. Feature done and tested E2E.
Adds common utilities package named "golang" to overcome language
deficiencies.
Issue #27
2024-09-13 19:18:27 +01:00
24b7fc3254
Fix resources naming scheme
...
Go / build (1.21) (pull_request) Successful in 11s
Go / build (1.22) (pull_request) Successful in 11s
Go / build (1.21) (push) Successful in 11s
Go / build (1.22) (push) Successful in 11s
The accepted practice is to retain the collection name even for a single
resource operation, like getting a specific transaction.
Also moves the PUT /transactions to /transactions/{id} which makes it
clearer that it can only be applied to an already created transaction.
2024-08-03 23:23:43 +01:00
ac396ac259
Implements /transactions PUT method
...
Go / build (1.21) (push) Successful in 1m33s
Go / build (1.22) (push) Successful in 1m31s
Adds PUT method to OpenAPI spec.
Given that the transaction IDs are generated on server-side, for the PUT
method to remain idempotent, it can only update existing transactions.
It also adds a TransactionExists method on the DAL.
Issue: #20
2024-08-03 22:21:19 +00:00
22668da99a
Adds Go workflow to run UTs on CI
...
Go / build (1.22) (pull_request) Successful in 58s
Go / build (1.21) (pull_request) Successful in 1m0s
Go / build (1.21) (push) Successful in 12s
Go / build (1.22) (push) Successful in 10s
It now builds and tests the project w/ Go 1.21 and 1.22.
Issue # 8
2024-06-29 10:58:15 +01:00
4c82ca0e2b
Implements /transactions POST method
...
It adds the method to the OpenAPI spec and generates a new server
config. The requirement for the ID on the Transaction component is
removed, so that it can be reused for insertions.
It also adds two new middlewares, a logging and a spec validator. If a
request does not follow the spec, a 400 is returned immediately.
Issue: #18
2024-06-22 20:11:52 +01:00
59f4546a81
Adds missing OpenAPI configuration file
...
Also locks the tools versions and launches them from the packages
installed by the go mod. Otherwise, they would have to be manually
installed beforehand.
2024-05-28 21:54:48 +01:00
e382609c9b
Log API/DAL methods
...
Also renames some variables, removes old comments and harmonizes unit
tests.
2024-05-18 23:50:30 +01:00
26302b78d4
Implements /bank/{id} GET method
...
The API had to change, the ID of a bank is its shortform name, so it's
a string.
Issue #15
2024-05-18 23:39:58 +01:00
18fc469637
API: fix no banks/transactions status code
...
No content on the GET response from the banks/tarnsactions methods
should be a 204.
2024-05-18 23:21:24 +01:00
c464247112
Implements /banks GET method
...
Issue #16
2024-05-18 23:18:30 +01:00
8839dea7f5
Implements /transaction/{id} GET method
...
Issue #14
2024-05-18 22:50:24 +01:00
a52bca5882
Adapt API implementation with DAL interface
...
Swap direct access to the DB on the API server with an data abstraction
layer.
Implement each API type converter separately and revert changes to the
auto-generated server implementation types.
Add error return to DAL methods. Implement `Transactions`.
Add tools.go with oapi-codegen and mockgen.
https://www.jvt.me/posts/2022/06/15/go-tools-dependency-management/
Update go packages.
Issues #5 , #12
2024-05-12 22:16:24 +01:00
688a9dcaf2
Add DAL interface and mock
...
Also add entity package with domain types.
2024-04-27 20:42:11 +01:00
d832d64760
go mod tidy
2024-04-27 20:39:58 +01:00
d162eeee3d
Reword method for retrieving single bank/transaction
...
Changed to the singular of the word.
Generated new server implementation.
2024-04-27 20:33:50 +01:00
86036afa4e
API server online and DB connection established
...
Introduces the api-server/main.go, which creates the echo server,
connects it to the implemented handlers and runs it.
Fix the SQL query to retrieved transactions w/ categories.
Issues #6 and #7
2024-03-23 16:51:07 +00:00
1aa6e28b69
Implement basic /transactions method
...
Issue #1
2024-03-23 16:51:00 +00:00
b2451fed66
OpenAPI RESTful API code generator
...
This patch includes and uses the oapi-codegen tool to auto-generate go
boilerplate code, based on the OpenAPI spec.
Issue #4
2024-03-23 16:50:42 +00:00
eddb62b512
OpenAPI spec including transactions and banks
2024-02-25 11:08:30 +00:00
41e13c646d
Initial commit
2024-02-05 23:52:13 +00:00