mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-29 21:27:26 -05:00
GetAvailableAccounts / GetAvailableNetworks
This commit is contained in:
@@ -25,7 +25,6 @@ mod server;
|
||||
#[resolver_target(State)]
|
||||
#[resolver_args(RequestUser)]
|
||||
#[serde(tag = "type", content = "params")]
|
||||
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
|
||||
enum ExecuteRequest {
|
||||
// ==== SERVER ====
|
||||
PruneContainers(PruneDockerContainers),
|
||||
|
||||
@@ -32,7 +32,6 @@ mod user;
|
||||
#[resolver_target(State)]
|
||||
#[resolver_args(RequestUser)]
|
||||
#[serde(tag = "type", content = "params")]
|
||||
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
|
||||
enum ReadRequest {
|
||||
GetVersion(GetVersion),
|
||||
GetUser(GetUser),
|
||||
@@ -53,6 +52,8 @@ enum ReadRequest {
|
||||
GetDockerNetworks(GetDockerNetworks),
|
||||
GetServerActionState(GetServerActionState),
|
||||
GetHistoricalServerStats(GetHistoricalServerStats),
|
||||
GetAvailableAccounts(GetAvailableAccounts),
|
||||
GetAvailableNetworks(GetAvailableNetworks),
|
||||
|
||||
// ==== DEPLOYMENT ====
|
||||
GetDeploymentsSummary(GetDeploymentsSummary),
|
||||
|
||||
@@ -13,7 +13,7 @@ use monitor_types::{
|
||||
requests::read::*,
|
||||
};
|
||||
use mungos::mongodb::{bson::doc, options::FindOptions};
|
||||
use periphery_client::requests;
|
||||
use periphery_client::requests::{self, GetAccountsResponse};
|
||||
use resolver_api::{Resolve, ResolveToString};
|
||||
|
||||
use crate::{auth::RequestUser, resource::StateResource, state::State};
|
||||
@@ -403,3 +403,45 @@ impl Resolve<GetDockerContainers, RequestUser> for State {
|
||||
.await
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Resolve<GetAvailableAccounts, RequestUser> for State {
|
||||
async fn resolve(
|
||||
&self,
|
||||
GetAvailableAccounts { server_id }: GetAvailableAccounts,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<GetAvailableAccountsResponse> {
|
||||
let server: Server = self
|
||||
.get_resource_check_permissions(&server_id, &user, PermissionLevel::Read)
|
||||
.await?;
|
||||
let GetAccountsResponse { github, docker } = self
|
||||
.periphery_client(&server)
|
||||
.request(requests::GetAccounts {})
|
||||
.await
|
||||
.context("failed to get accounts from periphery")?;
|
||||
let res = GetAvailableAccountsResponse { github, docker };
|
||||
Ok(res)
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Resolve<GetAvailableNetworks, RequestUser> for State {
|
||||
async fn resolve(
|
||||
&self,
|
||||
GetAvailableNetworks { server_id }: GetAvailableNetworks,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<GetAvailableNetworksResponse> {
|
||||
let server: Server = self
|
||||
.get_resource_check_permissions(&server_id, &user, PermissionLevel::Read)
|
||||
.await?;
|
||||
let networks = self
|
||||
.periphery_client(&server)
|
||||
.request(requests::GetNetworkList {})
|
||||
.await
|
||||
.context("failed to get accounts from periphery")?;
|
||||
let res = GetAvailableNetworksResponse {
|
||||
networks
|
||||
};
|
||||
Ok(res)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ mod user;
|
||||
#[resolver_target(State)]
|
||||
#[resolver_args(RequestUser)]
|
||||
#[serde(tag = "type", content = "params")]
|
||||
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
|
||||
enum WriteRequest {
|
||||
// ==== SECRET ====
|
||||
CreateLoginSecret(CreateLoginSecret),
|
||||
|
||||
@@ -7,7 +7,7 @@ use monitor_types::{
|
||||
build::BuildActionState, deployment::DeploymentActionState, repo::RepoActionState,
|
||||
server::ServerActionState, update::UpdateListItem,
|
||||
},
|
||||
requests::{auth::GetLoginOptionsResponse},
|
||||
requests::auth::GetLoginOptionsResponse,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
|
||||
Reference in New Issue
Block a user