From 63431593879783b4f403e9ecd9e92d2ed4a86bf7 Mon Sep 17 00:00:00 2001 From: NexVeridian Date: Tue, 21 Nov 2023 15:51:43 -0800 Subject: [PATCH] normalize arkvx --- .github/workflows/nextest.yml | 4 ++-- docker-compose.yml | 2 +- src/main.rs | 22 +++++++--------------- src/routes.rs | 10 ---------- src/routes/polars_utils.rs | 8 +++++++- 5 files changed, 17 insertions(+), 29 deletions(-) diff --git a/.github/workflows/nextest.yml b/.github/workflows/nextest.yml index f1c8056..2de7bac 100644 --- a/.github/workflows/nextest.yml +++ b/.github/workflows/nextest.yml @@ -16,7 +16,7 @@ env: jobs: run-tests: - name: Run tests + name: run tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -31,7 +31,7 @@ jobs: run: cargo nextest run -E "all() - test(get_api) - kind(bin)" clippy: - name: Clippy + name: clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/docker-compose.yml b/docker-compose.yml index 25cf1f5..179904f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3" services: ark-invest-api-rust: - image: ghcr.io/NexVeridian/ark-invest-api-rust:latest + image: ghcr.io/nexveridian/ark-invest-api-rust:latest container_name: ark-invest-api-rust restart: unless-stopped volumes: diff --git a/src/main.rs b/src/main.rs index 4958914..a2efdc5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -86,28 +86,20 @@ async fn main() { .layer(CompressionLayer::new().zstd(true)) .route("/api.json", get(serve_api)) .layer(CompressionLayer::new().zstd(true)) - .api_route( - "/arkvc_holdings", - get_with(routes::arkvc_holdings, |mut o| { - o = o.id("ARKVC Holdings"); - description_date(o) - }), - ) - .layer( - rate_limit_global(500) - .layer(rate_limit_ip()) - .layer(cors()) - .layer(CompressionLayer::new().zstd(true)), - ) .api_route( "/ark_holdings", get_with(routes::ark_holdings, |mut o| { - o = o.id("ARK* ETF Holdings"); + // test description + o = o.id("ARK* ETF Holdings").description(r" + | date ┆ ticker ┆ cusip ┆ company ┆ market_value ┆ shares ┆ share_price ┆ weight │ + │ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │ + │ date ┆ str ┆ str ┆ str ┆ i64 ┆ f64 ┆ f64 ┆ f64 │ + "); description_date(o) }), ) .layer( - rate_limit_global(200) + rate_limit_global(1000) .layer(rate_limit_ip()) .layer(cors()) .layer(CompressionLayer::new().zstd(true)), diff --git a/src/routes.rs b/src/routes.rs index e5565ce..71188ad 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -3,16 +3,6 @@ use axum::extract::Query; mod polars_utils; -pub async fn arkvc_holdings(date_range: Query) -> impl IntoApiResponse { - let df = polars_utils::get_parquet("ARKVC".to_owned()).await.unwrap(); - - let filter_df = polars_utils::filter_date_range(df, date_range) - .await - .unwrap(); - - axum::Json(polars_utils::to_json(filter_df).await.unwrap()) -} - pub async fn ark_holdings( ticker: Query, date_range: Query, diff --git a/src/routes/polars_utils.rs b/src/routes/polars_utils.rs index e629e7a..0b8af1e 100644 --- a/src/routes/polars_utils.rs +++ b/src/routes/polars_utils.rs @@ -56,13 +56,19 @@ pub async fn filter_date_range( } #[derive(Serialize, Deserialize, JsonSchema, strum_macros::Display)] -pub enum TypeTicker { +pub enum Ticker { + ARKVX, ARKF, ARKG, ARKK, ARKQ, ARKW, ARKX, + // ARKA, + // ARKZ, + ARKC, + ARKD, + ARKY, } #[derive(Serialize, Deserialize, JsonSchema)]