mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-28 19:59:46 -05:00
create the Group type to group all the resources (including groups for nesting
This commit is contained in:
@@ -6,6 +6,9 @@ use typeshare::typeshare;
|
||||
|
||||
use crate::{diff::*, Command, EnvironmentVar, PermissionsMap};
|
||||
|
||||
#[typeshare]
|
||||
pub const PERIPHERY_BUILDER_BUSY: &str = "BUILDER_BUSY";
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default, Diff, Builder)]
|
||||
#[diff(attr(#[derive(Debug, Serialize)]))]
|
||||
|
||||
53
lib/types/src/group.rs
Normal file
53
lib/types/src/group.rs
Normal file
@@ -0,0 +1,53 @@
|
||||
use bson::serde_helpers::hex_string_as_object_id;
|
||||
use derive_builder::Builder;
|
||||
use diff::Diff;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{diff::*, PermissionsMap};
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default, Diff, Builder)]
|
||||
#[diff(attr(#[derive(Debug, Serialize)]))]
|
||||
pub struct Group {
|
||||
#[serde(
|
||||
default,
|
||||
rename = "_id",
|
||||
skip_serializing_if = "String::is_empty",
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[diff(attr(#[serde(skip_serializing_if = "Option::is_none")]))]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "Option::is_none")]))]
|
||||
pub name: String,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "hashmap_diff_no_change")]))]
|
||||
#[builder(setter(skip))]
|
||||
pub permissions: PermissionsMap,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub builds: Vec<String>,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub deployments: Vec<String>,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub servers: Vec<String>,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub procedures: Vec<String>,
|
||||
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub groups: Vec<String>,
|
||||
|
||||
#[serde(default)]
|
||||
#[diff(attr(#[serde(skip)]))]
|
||||
#[builder(setter(skip))]
|
||||
pub created_at: String,
|
||||
#[serde(default)]
|
||||
#[diff(attr(#[serde(skip)]))]
|
||||
#[builder(setter(skip))]
|
||||
pub updated_at: String,
|
||||
}
|
||||
@@ -2,7 +2,9 @@ use std::collections::HashMap;
|
||||
|
||||
use ::diff::Diff;
|
||||
use anyhow::Context;
|
||||
use bson::serde_helpers::hex_string_as_object_id;
|
||||
use chrono::{DateTime, SecondsFormat, Utc};
|
||||
use derive_builder::Builder;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum_macros::{Display, EnumString};
|
||||
use typeshare::typeshare;
|
||||
@@ -15,6 +17,7 @@ mod build;
|
||||
mod config;
|
||||
mod deployment;
|
||||
mod diff;
|
||||
mod group;
|
||||
mod procedure;
|
||||
mod server;
|
||||
mod update;
|
||||
@@ -23,12 +26,13 @@ mod user;
|
||||
pub use build::*;
|
||||
pub use config::*;
|
||||
pub use deployment::*;
|
||||
pub use group::*;
|
||||
pub use procedure::*;
|
||||
pub use server::*;
|
||||
pub use update::*;
|
||||
pub use user::*;
|
||||
|
||||
pub const PERIPHERY_BUILDER_BUSY: &str = "builder is busy";
|
||||
use crate::diff::*;
|
||||
|
||||
#[typeshare]
|
||||
pub type PermissionsMap = HashMap<String, PermissionLevel>;
|
||||
|
||||
Reference in New Issue
Block a user