From 7331fdc083276f5117e77dc294cc9bba8100e925 Mon Sep 17 00:00:00 2001 From: mbecker20 Date: Sat, 12 Aug 2023 01:59:57 -0400 Subject: [PATCH] move some files around --- bin/core/src/helpers/mod.rs | 5 +++- bin/core/src/{ => helpers}/resource.rs | 0 bin/core/src/listener/github.rs | 3 +-- bin/core/src/main.rs | 1 - bin/core/src/{monitor.rs => monitor/mod.rs} | 0 bin/core/src/requests/auth.rs | 21 +++++++++++------ bin/core/src/requests/execute/build.rs | 3 +-- bin/core/src/requests/execute/deployment.rs | 2 +- bin/core/src/requests/execute/repo.rs | 2 +- bin/core/src/requests/execute/server.rs | 2 +- bin/core/src/requests/read/alerter.rs | 2 +- bin/core/src/requests/read/build.rs | 2 +- bin/core/src/requests/read/builder.rs | 2 +- bin/core/src/requests/read/deployment.rs | 2 +- bin/core/src/requests/read/repo.rs | 2 +- bin/core/src/requests/read/search.rs | 2 +- bin/core/src/requests/read/server.rs | 2 +- bin/core/src/requests/read/update.rs | 2 +- bin/core/src/requests/write/alerter.rs | 6 ++++- bin/core/src/requests/write/build.rs | 3 +-- bin/core/src/requests/write/builder.rs | 2 +- bin/core/src/requests/write/deployment.rs | 4 +++- bin/core/src/requests/write/description.rs | 2 +- bin/core/src/requests/write/repo.rs | 2 +- bin/core/src/requests/write/server.rs | 6 ++++- bin/core/src/state.rs | 26 +++------------------ bin/core/src/ws.rs | 2 +- 27 files changed, 52 insertions(+), 56 deletions(-) rename bin/core/src/{ => helpers}/resource.rs (100%) rename bin/core/src/{monitor.rs => monitor/mod.rs} (100%) diff --git a/bin/core/src/helpers/mod.rs b/bin/core/src/helpers/mod.rs index 447daf05e..315ba5413 100644 --- a/bin/core/src/helpers/mod.rs +++ b/bin/core/src/helpers/mod.rs @@ -16,12 +16,15 @@ use mungos::mongodb::bson::{doc, to_bson}; use periphery_client::{requests, PeripheryClient}; use rand::{thread_rng, Rng}; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, state::State}; + +use self::resource::StateResource; pub mod alert; pub mod cache; pub mod channel; pub mod db; +pub mod resource; pub fn empty_or_only_spaces(word: &str) -> bool { if word.is_empty() { diff --git a/bin/core/src/resource.rs b/bin/core/src/helpers/resource.rs similarity index 100% rename from bin/core/src/resource.rs rename to bin/core/src/helpers/resource.rs diff --git a/bin/core/src/listener/github.rs b/bin/core/src/listener/github.rs index 45bd3647a..5bee559d5 100644 --- a/bin/core/src/listener/github.rs +++ b/bin/core/src/listener/github.rs @@ -12,8 +12,7 @@ use sha2::Sha256; use crate::{ auth::InnerRequestUser, - helpers::random_duration, - resource::StateResource, + helpers::{random_duration, resource::StateResource}, state::{State, StateExtension}, }; diff --git a/bin/core/src/main.rs b/bin/core/src/main.rs index 0250e36a2..2dbc75e97 100644 --- a/bin/core/src/main.rs +++ b/bin/core/src/main.rs @@ -12,7 +12,6 @@ mod helpers; mod listener; mod monitor; mod requests; -mod resource; mod state; mod ws; diff --git a/bin/core/src/monitor.rs b/bin/core/src/monitor/mod.rs similarity index 100% rename from bin/core/src/monitor.rs rename to bin/core/src/monitor/mod.rs diff --git a/bin/core/src/requests/auth.rs b/bin/core/src/requests/auth.rs index e0d0e480f..a8444aa66 100644 --- a/bin/core/src/requests/auth.rs +++ b/bin/core/src/requests/auth.rs @@ -1,9 +1,9 @@ use async_trait::async_trait; use monitor_types::requests::auth::{ - CreateLocalUser, ExchangeForJwt, ExchangeForJwtResponse, GetLoginOptions, LoginLocalUser, - LoginWithSecret, + CreateLocalUser, ExchangeForJwt, ExchangeForJwtResponse, GetLoginOptions, + GetLoginOptionsResponse, LoginLocalUser, LoginWithSecret, }; -use resolver_api::{derive::Resolver, Resolve, ResolveToString}; +use resolver_api::{derive::Resolver, Resolve}; use serde::{Deserialize, Serialize}; use typeshare::typeshare; @@ -15,7 +15,6 @@ use crate::state::State; #[serde(tag = "type", content = "params")] #[allow(clippy::enum_variant_names, clippy::large_enum_variant)] pub enum AuthRequest { - #[to_string_resolver] GetLoginOptions(GetLoginOptions), CreateLocalUser(CreateLocalUser), LoginLocalUser(LoginLocalUser), @@ -24,9 +23,17 @@ pub enum AuthRequest { } #[async_trait] -impl ResolveToString for State { - async fn resolve_to_string(&self, _: GetLoginOptions, _: ()) -> anyhow::Result { - Ok(self.login_options_response.clone()) +impl Resolve for State { + async fn resolve(&self, _: GetLoginOptions, _: ()) -> anyhow::Result { + Ok(GetLoginOptionsResponse { + local: self.config.local_auth, + github: self.config.github_oauth.enabled + && !self.config.github_oauth.id.is_empty() + && !self.config.github_oauth.secret.is_empty(), + google: self.config.google_oauth.enabled + && !self.config.google_oauth.id.is_empty() + && !self.config.google_oauth.secret.is_empty(), + }) } } diff --git a/bin/core/src/requests/execute/build.rs b/bin/core/src/requests/execute/build.rs index f5d8df555..6f3195def 100644 --- a/bin/core/src/requests/execute/build.rs +++ b/bin/core/src/requests/execute/build.rs @@ -27,8 +27,7 @@ use tokio_util::sync::CancellationToken; use crate::{ auth::{InnerRequestUser, RequestUser}, cloud::{aws::Ec2Instance, BuildCleanupData}, - helpers::make_update, - resource::StateResource, + helpers::{make_update, resource::StateResource}, state::State, }; diff --git a/bin/core/src/requests/execute/deployment.rs b/bin/core/src/requests/execute/deployment.rs index 0d2dece71..385e40dda 100644 --- a/bin/core/src/requests/execute/deployment.rs +++ b/bin/core/src/requests/execute/deployment.rs @@ -14,7 +14,7 @@ use monitor_types::{ use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/execute/repo.rs b/bin/core/src/requests/execute/repo.rs index 12c5dc629..234d12d69 100644 --- a/bin/core/src/requests/execute/repo.rs +++ b/bin/core/src/requests/execute/repo.rs @@ -14,7 +14,7 @@ use mungos::mongodb::bson::doc; use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/execute/server.rs b/bin/core/src/requests/execute/server.rs index e47c6c1ab..83ed279e0 100644 --- a/bin/core/src/requests/execute/server.rs +++ b/bin/core/src/requests/execute/server.rs @@ -12,7 +12,7 @@ use monitor_types::{ use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/alerter.rs b/bin/core/src/requests/read/alerter.rs index 7a2b274dc..bbfcfb3ed 100644 --- a/bin/core/src/requests/read/alerter.rs +++ b/bin/core/src/requests/read/alerter.rs @@ -7,7 +7,7 @@ use monitor_types::{ use mungos::mongodb::bson::doc; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/build.rs b/bin/core/src/requests/read/build.rs index 22a221255..d4ece7159 100644 --- a/bin/core/src/requests/read/build.rs +++ b/bin/core/src/requests/read/build.rs @@ -15,7 +15,7 @@ use monitor_types::{ use mungos::mongodb::{bson::doc, options::FindOptions}; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/builder.rs b/bin/core/src/requests/read/builder.rs index 796512b36..6453a48ed 100644 --- a/bin/core/src/requests/read/builder.rs +++ b/bin/core/src/requests/read/builder.rs @@ -10,7 +10,7 @@ use monitor_types::{ use mungos::mongodb::bson::doc; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/deployment.rs b/bin/core/src/requests/read/deployment.rs index e25bc3b1e..f62c55100 100644 --- a/bin/core/src/requests/read/deployment.rs +++ b/bin/core/src/requests/read/deployment.rs @@ -18,7 +18,7 @@ use mungos::mongodb::{bson::doc, options::FindOneOptions}; use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/repo.rs b/bin/core/src/requests/read/repo.rs index 0ea5dc277..db6c35a0f 100644 --- a/bin/core/src/requests/read/repo.rs +++ b/bin/core/src/requests/read/repo.rs @@ -10,7 +10,7 @@ use monitor_types::{ use mungos::mongodb::bson::doc; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/search.rs b/bin/core/src/requests/read/search.rs index 84a831585..ad5cdd68a 100644 --- a/bin/core/src/requests/read/search.rs +++ b/bin/core/src/requests/read/search.rs @@ -8,7 +8,7 @@ use monitor_types::{ }; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; const FIND_RESOURCE_TYPES: [ResourceTargetVariant; 4] = [Server, Build, Deployment, Repo]; diff --git a/bin/core/src/requests/read/server.rs b/bin/core/src/requests/read/server.rs index f2dd525ac..dd7f10d7b 100644 --- a/bin/core/src/requests/read/server.rs +++ b/bin/core/src/requests/read/server.rs @@ -16,7 +16,7 @@ use mungos::mongodb::{bson::doc, options::FindOptions}; use periphery_client::requests::{self, GetAccountsResponse}; use resolver_api::{Resolve, ResolveToString}; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/read/update.rs b/bin/core/src/requests/read/update.rs index 722a1ce7b..db7332b01 100644 --- a/bin/core/src/requests/read/update.rs +++ b/bin/core/src/requests/read/update.rs @@ -18,7 +18,7 @@ use monitor_types::{ use mungos::mongodb::{bson::doc, options::FindOptions}; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; const UPDATES_PER_PAGE: i64 = 20; diff --git a/bin/core/src/requests/write/alerter.rs b/bin/core/src/requests/write/alerter.rs index 31618d80d..5fee3bbb0 100644 --- a/bin/core/src/requests/write/alerter.rs +++ b/bin/core/src/requests/write/alerter.rs @@ -11,7 +11,11 @@ use monitor_types::{ use mungos::mongodb::bson::{doc, to_bson}; use resolver_api::Resolve; -use crate::{auth::RequestUser, helpers::make_update, resource::StateResource, state::State}; +use crate::{ + auth::RequestUser, + helpers::{make_update, resource::StateResource}, + state::State, +}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/write/build.rs b/bin/core/src/requests/write/build.rs index 4ac234643..2bd5c7697 100644 --- a/bin/core/src/requests/write/build.rs +++ b/bin/core/src/requests/write/build.rs @@ -16,8 +16,7 @@ use resolver_api::Resolve; use crate::{ auth::RequestUser, - helpers::{empty_or_only_spaces, make_update}, - resource::StateResource, + helpers::{empty_or_only_spaces, make_update, resource::StateResource}, state::State, }; diff --git a/bin/core/src/requests/write/builder.rs b/bin/core/src/requests/write/builder.rs index f01d22fe8..52489d2ca 100644 --- a/bin/core/src/requests/write/builder.rs +++ b/bin/core/src/requests/write/builder.rs @@ -12,7 +12,7 @@ use monitor_types::{ use mungos::mongodb::bson::{doc, to_bson}; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/write/deployment.rs b/bin/core/src/requests/write/deployment.rs index 252b0a8f0..5ecd9e2ee 100644 --- a/bin/core/src/requests/write/deployment.rs +++ b/bin/core/src/requests/write/deployment.rs @@ -18,7 +18,9 @@ use periphery_client::requests; use resolver_api::Resolve; use crate::{ - auth::RequestUser, helpers::empty_or_only_spaces, resource::StateResource, state::State, + auth::RequestUser, + helpers::{empty_or_only_spaces, resource::StateResource}, + state::State, }; #[async_trait] diff --git a/bin/core/src/requests/write/description.rs b/bin/core/src/requests/write/description.rs index c28c5ba53..eb343785f 100644 --- a/bin/core/src/requests/write/description.rs +++ b/bin/core/src/requests/write/description.rs @@ -9,7 +9,7 @@ use monitor_types::{ }; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/write/repo.rs b/bin/core/src/requests/write/repo.rs index 8474a27ec..8a2c99ec2 100644 --- a/bin/core/src/requests/write/repo.rs +++ b/bin/core/src/requests/write/repo.rs @@ -15,7 +15,7 @@ use mungos::mongodb::bson::{doc, to_bson}; use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, resource::StateResource, state::State}; +use crate::{auth::RequestUser, helpers::resource::StateResource, state::State}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/requests/write/server.rs b/bin/core/src/requests/write/server.rs index 6d34237db..30e0066bc 100644 --- a/bin/core/src/requests/write/server.rs +++ b/bin/core/src/requests/write/server.rs @@ -13,7 +13,11 @@ use mungos::mongodb::bson::{doc, to_bson}; use periphery_client::requests; use resolver_api::Resolve; -use crate::{auth::RequestUser, helpers::make_update, resource::StateResource, state::State}; +use crate::{ + auth::RequestUser, + helpers::{make_update, resource::StateResource}, + state::State, +}; #[async_trait] impl Resolve for State { diff --git a/bin/core/src/state.rs b/bin/core/src/state.rs index 0b84b4f36..2c7553a7b 100644 --- a/bin/core/src/state.rs +++ b/bin/core/src/state.rs @@ -2,12 +2,9 @@ use std::{net::SocketAddr, str::FromStr, sync::Arc}; use anyhow::Context; use axum::Extension; -use monitor_types::{ - entities::{ - build::BuildActionState, deployment::DeploymentActionState, repo::RepoActionState, - server::ServerActionState, update::UpdateListItem, - }, - requests::auth::GetLoginOptionsResponse, +use monitor_types::entities::{ + build::BuildActionState, deployment::DeploymentActionState, repo::RepoActionState, + server::ServerActionState, update::UpdateListItem, }; use crate::{ @@ -34,9 +31,6 @@ pub struct State { pub deployment_status_cache: Cache>, pub server_status_cache: Cache>, - // cached responses - pub login_options_response: String, - // channels pub build_cancel: BroadcastChannel, // build id to cancel pub update: BroadcastChannel, @@ -61,7 +55,6 @@ impl State { jwt: JwtClient::new(&config), github_auth: GithubOauthClient::new(&config), google_auth: GoogleOauthClient::new(&config), - login_options_response: login_options_response(&config)?, action_states: Default::default(), deployment_status_cache: Default::default(), server_status_cache: Default::default(), @@ -83,19 +76,6 @@ impl State { } } -pub fn login_options_response(config: &CoreConfig) -> anyhow::Result { - let options = GetLoginOptionsResponse { - local: config.local_auth, - github: config.github_oauth.enabled - && !config.github_oauth.id.is_empty() - && !config.github_oauth.secret.is_empty(), - google: config.google_oauth.enabled - && !config.google_oauth.id.is_empty() - && !config.google_oauth.secret.is_empty(), - }; - serde_json::to_string(&options).context("failed to serialize login options") -} - #[derive(Default)] pub struct ActionStates { pub build: Cache, diff --git a/bin/core/src/ws.rs b/bin/core/src/ws.rs index 4fc796c78..bb019cc22 100644 --- a/bin/core/src/ws.rs +++ b/bin/core/src/ws.rs @@ -29,7 +29,7 @@ use tokio_util::sync::CancellationToken; use crate::{ auth::RequestUser, - resource::StateResource, + helpers::resource::StateResource, state::{State, StateExtension}, };