Commit graph

78 commits

Author SHA1 Message Date
5a6641a199
refactor: Use ptr for QueryNodes.toSQL()
Since `SortBy` and `SortDirection` is modified directly from `QueryNodes`
pointer, `sortBy` and `sortDirrection` return value from `QueryNodes.toSQL()`
no longger needed
2024-08-05 18:27:00 +07:00
4395a5e2d5
test: Add benchmark Test for QueryNodes.toSQL() 2024-07-29 22:44:10 +07:00
97fad6cacb
refactor: Use slice.Contains() nettype check
Instead using `||` for each nettype query check , simply using `slice.Contains`.
Also, checking `any` value is not needed here.
2024-07-29 22:30:03 +07:00
73308d2a32
refactor: Use proberRepo struct instead of interface
o need to use interface when calling `NewProber()`.
2024-07-07 03:25:30 +07:00
4d1a2da49c
refactor: Use moneroRepo struct instead of interface
No need to use interface when calling `monero.New()`.
2024-07-07 03:13:11 +07:00
ef553dab9e
refactor: Use cronRepo struct instead of interface
No need to use interface when calling `cron.New()`.
2024-07-07 02:57:36 +07:00
c250e8e3bb
feat!: Moving handler to internal/handler
So people aware that the package is internal use and not using that
on their projects.
2024-07-07 01:42:29 +07:00
4c7d53547b
feat!: Change the module name to "URL based"
This make me easier to test the module with external services.
2024-07-07 01:28:44 +07:00
0d72dd9995
build: Inject version when build the binaries
The version include git current commit and branch info.
2024-07-04 03:45:37 +07:00
3f5c0c9472
refactor: Lowercase & upperase initialism acronyms 2024-06-19 16:24:18 +07:00
e9cacb478c
feat: Allow user to specify custom .env location
This feature can also be useful for running tests in CI.
2024-06-18 04:23:08 +07:00
17b5f18332
chore(docs): Note how to get list of public nodes
Adding example way to get list of Monero public nodes
using monero-wallet-cli for future integration test.
2024-06-11 14:47:01 +07:00
1429cde662
Uppercase CheckAPI test func
Ref cd52dc7
2024-06-10 03:23:03 +07:00
cd52dc7b70
Lowercase & upperase initialism acronyms
See https://google.github.io/styleguide/go/decisions#initialisms
2024-06-10 03:03:23 +07:00
5f5ebd81a9
Reuse existing db connection (if any) 2024-06-10 02:47:44 +07:00
70372e58ab
Changed the initialization of the countries slice 2024-06-08 00:53:28 +07:00
054a4809dd
No need to use ptr for NetFee 2024-06-08 00:37:26 +07:00
459271408d
test: Unit test for parseStatuses() 2024-06-03 22:18:24 +07:00
ced90fde8e
feat: Function to parse node statuses from report 2024-06-03 22:13:12 +07:00
85f3169689
Only call time.Now() once 2024-06-03 19:26:12 +07:00
54d82e0c8f
fix: RowsPerPage nodes API return zero
Forget to set RowsPerPage response
2024-06-03 13:18:52 +07:00
48fe09c1cb
Adding table tbl_fee
This table used to store majority fee of monero nettype.
By calculating majority fee via "cron" every 300s, the function to
get majority fee for nettypes can be done with single query.

The frontend majority static data in the frontend removed and
now use `/api/v1/fees` endpoint to get majority fee value.

Note: Don't know if it works well with `onload` method or not. Let see.
2024-05-31 16:28:21 +07:00
55f6af1f22
Change estimate fee for stagenet to 56000
TODO: Create in-memory cache for NetFees function.
2024-05-31 13:30:56 +07:00
e83045f8b5
toSQL function for QueryLog struct 2024-05-31 13:04:53 +07:00
8b5bdc7523
toSQL function for QueryProber struct
Make the unit test easier
2024-05-30 20:14:16 +07:00
acc70111c8
fix: slog args message become slog.Attr 2024-05-30 19:41:03 +07:00
a11986ac0c
Separating QueryNode to it's own sql builder func
A quick note that is's ok to use "*" all columns on nodes query
since all columns really want to be displayed to the frontend.
2024-05-30 19:19:03 +07:00
4800bb3284
Adding test and bench example 2024-05-30 15:47:27 +07:00
130cd06dc4
Make X-Prober-Api-Key as constant 2024-05-30 13:40:57 +07:00
0b331ec6c6
Lowercase & upperase initialism acronyms
See https://google.github.io/styleguide/go/decisions#initialisms
2024-05-30 12:46:33 +07:00
38320bc316
Rename NewProberRepo to NewProber
Also rename ProbersQueryParams to QueryProbers
2024-05-27 07:17:27 +07:00
ab82985bdf
Rename MoneroLogQueryParams to QueryLogs
The reason is same with commits reference 99a367f04b
2024-05-27 06:38:11 +07:00
6b5225758e
Rename NewMoneroRepo to just New
Just run `monero.New()` to initialize MoneroRepository.

The database connection is now called from the `New()` function
2024-05-27 06:15:40 +07:00
99a367f04b
chore: Renamed MoneroQueryParams
The `MoneroQueryParams` renamed to `QueryNodes`.
It become much more readable when calling it.

Also added some comment in some functions.
2024-05-27 05:13:03 +07:00
c25e9224b6
lint: No err check 2024-05-24 05:37:27 +07:00
2270fe4deb
Secret key environment variable no longer needed 2024-05-23 03:57:29 +07:00
253230dc5a
Removing admin module and functions
The administration of the server is done using cli tools. So I don't
think that admin account and module is required. At least for now.

Note that this also remove `tbl_admin` creation in database migrate.
Since no release were made until this commit, the database migration
still in version 1. Manual removal database table for `tbl_admin`
is required on the existing running server.
2024-05-23 03:40:06 +07:00
40b9a6e1d6
Make sure cron goroutine is stopped
Adding struct chan to run cron Process to stop the goroutine.

Moving db migration inside `fiber.IsChild` block
to avoid multiple execution migration script when in prefork mode.

Give additional time for graceful shutdown.
2024-05-23 02:58:58 +07:00
8c1f6b0c43
Make cron as it's own package 2024-05-23 02:24:06 +07:00
ddc448e90c
Moving monero.go to its own internal package 2024-05-22 22:45:38 +07:00
7d69e9af95
chore: Make SQL queries in more readable 2024-05-20 04:22:58 +07:00
fae32d9a74
chore: Make SQL queries in more readable 2024-05-20 03:08:48 +07:00
30b37b922f
Ability to list cron from CLI #2
Since `tbl_cron` will contain a few rows (for now just 1),
cron list function call is not using any arguments.

This commit also remove cron http handler and endpoint.
2024-05-18 20:13:00 +07:00
120ba51c87
Ability to edit prober name by ID from CLI #2 2024-05-18 19:50:20 +07:00
b5e2787420
Ability to delete prober by ID from CLI #2 2024-05-18 19:39:27 +07:00
d2f927e3db
Ability to add prober from CLI #2 2024-05-18 19:03:56 +07:00
59f1dd9421
List Probers CLI command #2
Listing probers is now only available from server CLI.

The `ProbersQueryParams` struct also changed. I don't think that I will
use more than 20 probers in this project, so paging is not required.

The search param also simplified in one field struct `Search" which
search both in `name` and `api_key` column.
2024-05-18 00:56:13 +07:00
46bc3dc2e8
Using slog for logging level
The log level for the apps is using `log/slog` from Go standard library.
This commit change log format for fiber http logger to match with
the slog standard log format (date and time).

This commit also remove `APP_DEBUG` field from config struct.

TODO:
Use `slog` for default app output. Note that in this commit, the `slog`
output only implemented in `cron` "db migrate" and probe client.
2024-05-13 18:40:01 +07:00
d3113bf598
feat: MySQL db migration
Create database schema migration for this app that run when the `serve`
command is executed.
2024-05-12 04:19:40 +07:00
efca11e51c
Make nettype and protocol query more strict
It will return error if nettype and protocol query string value is wrong
2024-05-09 20:44:49 +07:00