define more api for alerter / tag

This commit is contained in:
mbecker20
2023-07-09 06:03:21 +00:00
parent 818210805f
commit 4e7311bdfe
7 changed files with 164 additions and 4 deletions

View File

@@ -26,7 +26,7 @@ mod server;
#[resolver_args(RequestUser)]
#[serde(tag = "type", content = "params")]
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
pub enum ExecuteRequest {
enum ExecuteRequest {
// ==== SERVER ====
PruneContainers(PruneDockerContainers),
PruneImages(PruneDockerImages),

View File

@@ -28,7 +28,7 @@ mod search;
#[resolver_args(RequestUser)]
#[serde(tag = "type", content = "params")]
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
pub enum ReadRequest {
enum ReadRequest {
// ==== SEARCH ====
FindResources(FindResources),

View File

@@ -0,0 +1,52 @@
use async_trait::async_trait;
use monitor_types::{
entities::alerter::Alerter,
requests::write::{CopyAlerter, CreateAlerter, DeleteAlerter, UpdateAlerter},
};
use resolver_api::Resolve;
use crate::{auth::RequestUser, state::State};
#[async_trait]
impl Resolve<CreateAlerter, RequestUser> for State {
async fn resolve(
&self,
CreateAlerter { name, config }: CreateAlerter,
user: RequestUser,
) -> anyhow::Result<Alerter> {
todo!()
}
}
#[async_trait]
impl Resolve<CopyAlerter, RequestUser> for State {
async fn resolve(
&self,
CopyAlerter { name, id }: CopyAlerter,
user: RequestUser,
) -> anyhow::Result<Alerter> {
todo!()
}
}
#[async_trait]
impl Resolve<DeleteAlerter, RequestUser> for State {
async fn resolve(
&self,
DeleteAlerter { id }: DeleteAlerter,
user: RequestUser,
) -> anyhow::Result<Alerter> {
todo!()
}
}
#[async_trait]
impl Resolve<UpdateAlerter, RequestUser> for State {
async fn resolve(
&self,
UpdateAlerter { id, config }: UpdateAlerter,
user: RequestUser,
) -> anyhow::Result<Alerter> {
todo!()
}
}

View File

@@ -22,6 +22,8 @@ mod permissions;
mod repo;
mod secret;
mod server;
mod alerter;
mod tag;
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolver)]
@@ -29,7 +31,7 @@ mod server;
#[resolver_args(RequestUser)]
#[serde(tag = "type", content = "params")]
#[allow(clippy::enum_variant_names, clippy::large_enum_variant)]
pub enum WriteRequest {
enum WriteRequest {
// ==== SECRET ====
CreateLoginSecret(CreateLoginSecret),
DeleteLoginSecret(DeleteLoginSecret),
@@ -46,24 +48,39 @@ pub enum WriteRequest {
// ==== DEPLOYMENT ====
CreateDeployment(CreateDeployment),
CopyDeployment(CopyDeployment),
DeleteDeployment(DeleteDeployment),
UpdateDeployment(UpdateDeployment),
RenameDeployment(RenameDeployment),
// ==== BUILD ====
CreateBuild(CreateBuild),
CopyBuild(CopyBuild),
DeleteBuild(DeleteBuild),
UpdateBuild(UpdateBuild),
// ==== BUIDLER ====
CreateBuilder(CreateBuilder),
CopyBuilder(CopyBuilder),
DeleteBuilder(DeleteBuilder),
UpdateBuilder(UpdateBuilder),
// ==== REPO ====
CreateRepo(CreateRepo),
UpdateRepo(UpdateRepo),
CopyRepo(CopyRepo),
DeleteRepo(DeleteRepo),
UpdateRepo(UpdateRepo),
// ==== ALERTER ====
CreateAlerter(CreateAlerter),
CopyAlerter(CopyAlerter),
DeleteAlerter(DeleteAlerter),
UpdateAlerter(UpdateAlerter),
// ==== TAG ====
CreateTag(CreateTag),
DeleteTag(DeleteTag),
UpdateTag(UpdateTag),
}
pub fn router() -> Router {

View File

@@ -0,0 +1,45 @@
use async_trait::async_trait;
use monitor_types::{
entities::tag::CustomTag,
requests::write::{CreateTag, DeleteTag, UpdateTag},
};
use resolver_api::Resolve;
use crate::{auth::RequestUser, state::State};
#[async_trait]
impl Resolve<CreateTag, RequestUser> for State {
async fn resolve(
&self,
CreateTag {
name,
category,
color,
}: CreateTag,
user: RequestUser,
) -> anyhow::Result<CustomTag> {
todo!()
}
}
#[async_trait]
impl Resolve<UpdateTag, RequestUser> for State {
async fn resolve(
&self,
UpdateTag { id, config }: UpdateTag,
user: RequestUser,
) -> anyhow::Result<CustomTag> {
todo!()
}
}
#[async_trait]
impl Resolve<DeleteTag, RequestUser> for State {
async fn resolve(
&self,
DeleteTag { id }: DeleteTag,
user: RequestUser,
) -> anyhow::Result<CustomTag> {
todo!()
}
}

View File

@@ -0,0 +1,44 @@
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::alerter::{Alerter, PartialAlerterConfig};
//
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Alerter)]
pub struct CreateAlerter {
pub name: String,
pub config: PartialAlerterConfig,
}
//
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Alerter)]
pub struct CopyAlerter {
pub name: String,
pub id: String,
}
//
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Alerter)]
pub struct DeleteAlerter {
pub id: String,
}
//
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Alerter)]
pub struct UpdateAlerter {
pub id: String,
pub config: PartialAlerterConfig,
}

View File

@@ -1,3 +1,4 @@
mod alerter;
mod build;
mod builder;
mod deployment;
@@ -8,6 +9,7 @@ mod server;
mod tags;
mod user;
pub use alerter::*;
pub use build::*;
pub use builder::*;
pub use deployment::*;