mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-28 19:59:46 -05:00
* setup network page * add Network, Image, Container * Docker ListItems and Inspects * frontend build * dev0 * network info working * fix cargo lock * dev1 * pages for the things * implement Active in dashboard * RunBuild update trigger list refresh * rename deployment executions to StartDeployment etc * add server level container control * dev2 * add Config field to Image * can get image labels from Config.Labels * mount container page * server show resource count * add GetContainerLog api * add _AllContainers api * dev3 * move ResourceTarget to entities mod * GetResourceMatchingContainer api * connect container to resource * dev4 add volume names to container list items * ts types * volume / image / network unused management * add image history to image page * fix PruneContainers incorret Operation * update cache for server for server after server actions * dev5 * add singapore to Hetzner * implement delete single network / image / volume api * dev6 * include "in use" on Docker Lists * add docker resource delete buttons * is nice * fix volume all in use * remove google font dependency * use host networking in test compose * implement Secret Variables (hidden in logs) * remove unneeded borrow * interpolate variables / secrets into extra args / onclone / onpull / command etc * validate empty strings before SelectItem * rename everything to Komodo * rename workspace to komodo * rc1
61 lines
1.6 KiB
Rust
61 lines
1.6 KiB
Rust
use komodo_client::{
|
|
api::write::*,
|
|
entities::{
|
|
permission::PermissionLevel, procedure::Procedure, user::User,
|
|
},
|
|
};
|
|
use resolver_api::Resolve;
|
|
|
|
use crate::{resource, state::State};
|
|
|
|
impl Resolve<CreateProcedure, User> for State {
|
|
#[instrument(name = "CreateProcedure", skip(self, user))]
|
|
async fn resolve(
|
|
&self,
|
|
CreateProcedure { name, config }: CreateProcedure,
|
|
user: User,
|
|
) -> anyhow::Result<CreateProcedureResponse> {
|
|
resource::create::<Procedure>(&name, config, &user).await
|
|
}
|
|
}
|
|
|
|
impl Resolve<CopyProcedure, User> for State {
|
|
#[instrument(name = "CopyProcedure", skip(self, user))]
|
|
async fn resolve(
|
|
&self,
|
|
CopyProcedure { name, id }: CopyProcedure,
|
|
user: User,
|
|
) -> anyhow::Result<CopyProcedureResponse> {
|
|
let Procedure { config, .. } =
|
|
resource::get_check_permissions::<Procedure>(
|
|
&id,
|
|
&user,
|
|
PermissionLevel::Write,
|
|
)
|
|
.await?;
|
|
resource::create::<Procedure>(&name, config.into(), &user).await
|
|
}
|
|
}
|
|
|
|
impl Resolve<UpdateProcedure, User> for State {
|
|
#[instrument(name = "UpdateProcedure", skip(self, user))]
|
|
async fn resolve(
|
|
&self,
|
|
UpdateProcedure { id, config }: UpdateProcedure,
|
|
user: User,
|
|
) -> anyhow::Result<UpdateProcedureResponse> {
|
|
resource::update::<Procedure>(&id, config, &user).await
|
|
}
|
|
}
|
|
|
|
impl Resolve<DeleteProcedure, User> for State {
|
|
#[instrument(name = "DeleteProcedure", skip(self, user))]
|
|
async fn resolve(
|
|
&self,
|
|
DeleteProcedure { id }: DeleteProcedure,
|
|
user: User,
|
|
) -> anyhow::Result<DeleteProcedureResponse> {
|
|
resource::delete::<Procedure>(&id, &user).await
|
|
}
|
|
}
|