Skip to content

Commit 6e9c68a

Browse files
committed
fix(fortuna): use query builder and add comprehensive indices
1 parent 5df118e commit 6e9c68a

6 files changed

+196
-164
lines changed

apps/fortuna/.sqlx/query-9ab85443388dbac329b8c3031c33aa4767439d43238eb95e8625e377af46ecc1.json

Lines changed: 0 additions & 116 deletions
This file was deleted.

apps/fortuna/flake.nix

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,20 @@
1919
flake-utils.lib.eachDefaultSystem
2020
(
2121
system: let
22-
cli-overlay = nixpkgs.lib.composeExtensions mkCli.overlays.default (_: prev: {
22+
cli-overlay = nixpkgs.lib.composeExtensions mkCli.overlays.default (_: prev: let
23+
cargo = "cargo --color=always";
24+
in {
2325
cli = prev.lib.mkCli "cli" {
2426
_noAll = true;
25-
start = "cargo sqlx migrate run && cargo sqlx prepare && RUST_LOG=info cargo run run";
27+
start = "${cargo} sqlx migrate run && ${cargo} sqlx prepare && RUST_LOG=info ${cargo} watch -x 'run -- run'";
2628
test = {
27-
format = "cargo fmt --check";
28-
lint = "cargo clippy";
29+
format = "${cargo} fmt --check";
30+
lint = "${cargo} sqlx migrate run && ${cargo} sqlx prepare && ${cargo} clippy --color always";
31+
unit = "${cargo} sqlx migrate run && ${cargo} sqlx prepare && ${cargo} test -- --color always";
2932
};
3033
fix = {
31-
format = "cargo fmt";
32-
lint = "cargo clippy --fix";
34+
format = "${cargo} fmt";
35+
lint = "${cargo} sqlx migrate run && ${cargo} sqlx prepare && ${cargo} clippy -- --error-format human --color always --fix";
3336
};
3437
};
3538
});
@@ -51,6 +54,7 @@
5154
pkgs.sqlx-cli
5255
pkgs.foundry
5356
pkgs.sqlite
57+
pkgs.cargo-watch
5458
];
5559
};
5660
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-- Add down migration script here
2+
3+
DROP INDEX request__network_id__state__created_at;
4+
DROP INDEX request__network_id__created_at;
5+
DROP INDEX request__sender__network_id__state__created_at;
6+
DROP INDEX request__sender__network_id__created_at;
7+
DROP INDEX request__sender__state__created_at;
8+
DROP INDEX request__sender__created_at;
9+
DROP INDEX request__sequence__network_id__state__created_at;
10+
DROP INDEX request__sequence__network_id__created_at;
11+
DROP INDEX request__sequence__state__created_at;
12+
DROP INDEX request__sequence__created_at;
13+
DROP INDEX request__state__created_at;
14+
DROP INDEX request__created_at;
15+
16+
17+
CREATE INDEX idx_request_sequence ON request (sequence);
18+
CREATE INDEX idx_request_network_id_created_at ON request (network_id, created_at);
19+
CREATE INDEX idx_request_created_at ON request (created_at);
20+
CREATE INDEX idx_request_request_tx_hash ON request (request_tx_hash) WHERE request_tx_hash IS NOT NULL;
21+
CREATE INDEX idx_request_reveal_tx_hash ON request (reveal_tx_hash) WHERE reveal_tx_hash IS NOT NULL;
22+
CREATE INDEX idx_request_sender ON request (sender) WHERE sender IS NOT NULL;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-- Add up migration script here
2+
3+
DROP INDEX idx_request_sequence;
4+
DROP INDEX idx_request_network_id_created_at;
5+
DROP INDEX idx_request_created_at;
6+
DROP INDEX idx_request_request_tx_hash;
7+
DROP INDEX idx_request_reveal_tx_hash;
8+
DROP INDEX idx_request_sender;
9+
10+
11+
CREATE INDEX request__network_id__state__created_at ON request(network_id, state, created_at);
12+
CREATE INDEX request__network_id__created_at ON request(network_id, created_at);
13+
CREATE INDEX request__sender__network_id__state__created_at ON request(sender, network_id, state, created_at);
14+
CREATE INDEX request__sender__network_id__created_at ON request(sender, network_id, created_at);
15+
CREATE INDEX request__sender__state__created_at ON request(sender, state, created_at);
16+
CREATE INDEX request__sender__created_at ON request(sender, created_at);
17+
CREATE INDEX request__sequence__network_id__state__created_at ON request(sequence, network_id, state, created_at);
18+
CREATE INDEX request__sequence__network_id__created_at ON request(sequence, network_id, created_at);
19+
CREATE INDEX request__sequence__state__created_at ON request(sequence, state, created_at);
20+
CREATE INDEX request__sequence__created_at ON request(sequence, created_at);
21+
CREATE INDEX request__state__created_at ON request(state, created_at);
22+
CREATE INDEX request__created_at ON request(created_at);

apps/fortuna/src/api/explorer.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ pub async fn explorer(
6565
}
6666
let mut query = state.history.query();
6767
if let Some(search) = query_params.query {
68-
query = query.search(search);
68+
query = query
69+
.search(search)
70+
.map_err(|_| RestError::InvalidQueryString)?;
6971
}
7072
if let Some(network_id) = query_params.network_id {
7173
query = query.network_id(network_id);

0 commit comments

Comments
 (0)