forked from github-starred/komodo
change tags api, add tags requests, get list items
This commit is contained in:
@@ -5,7 +5,7 @@ use partial_derive2::Partial;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
use super::{EnvironmentVar, PermissionsMap, SystemCommand, Version};
|
||||
|
||||
@@ -19,7 +19,7 @@ pub struct Build {
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub name: String,
|
||||
@@ -44,6 +44,10 @@ pub struct Build {
|
||||
#[builder(setter(skip))]
|
||||
pub last_built_at: I64,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
pub config: BuildConfig,
|
||||
}
|
||||
|
||||
@@ -108,10 +112,6 @@ pub struct BuildConfig {
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub use_buildx: bool,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
fn default_branch() -> String {
|
||||
@@ -143,7 +143,6 @@ impl From<PartialBuildConfig> for BuildConfig {
|
||||
build_args: value.build_args.unwrap_or_default(),
|
||||
extra_args: value.extra_args.unwrap_or_default(),
|
||||
use_buildx: value.use_buildx.unwrap_or_default(),
|
||||
tags: value.tags.unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use partial_derive2::Partial;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
use super::PermissionsMap;
|
||||
|
||||
@@ -19,7 +19,7 @@ pub struct Builder {
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub name: String,
|
||||
|
||||
@@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize};
|
||||
use strum_macros::{Display, EnumString};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
use super::{EnvironmentVar, PermissionsMap, Version};
|
||||
|
||||
@@ -20,7 +20,7 @@ pub struct Deployment {
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub name: String,
|
||||
@@ -41,6 +41,10 @@ pub struct Deployment {
|
||||
#[builder(setter(skip))]
|
||||
pub updated_at: I64,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
pub config: DeploymentConfig,
|
||||
}
|
||||
|
||||
@@ -115,10 +119,6 @@ pub struct DeploymentConfig {
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub docker_account: String, // the username of the dockerhub account. empty if no account.
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
fn default_term_signal_labels() -> Vec<TerminationSignalLabel> {
|
||||
@@ -156,7 +156,6 @@ impl From<PartialDeploymentConfig> for DeploymentConfig {
|
||||
container_user: value.container_user.unwrap_or_default(),
|
||||
extra_args: value.extra_args.unwrap_or_default(),
|
||||
docker_account: value.docker_account.unwrap_or_default(),
|
||||
tags: value.tags.unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use partial_derive2::Partial;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
use super::{PermissionsMap, SystemCommand};
|
||||
|
||||
@@ -19,7 +19,7 @@ pub struct Repo {
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub name: String,
|
||||
@@ -40,6 +40,14 @@ pub struct Repo {
|
||||
#[builder(setter(skip))]
|
||||
pub updated_at: I64,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(setter(skip))]
|
||||
pub last_pulled_at: I64,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
pub config: RepoConfig,
|
||||
}
|
||||
|
||||
@@ -68,10 +76,6 @@ pub struct RepoConfig {
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub on_pull: SystemCommand,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
fn default_branch() -> String {
|
||||
@@ -87,7 +91,6 @@ impl From<PartialRepoConfig> for RepoConfig {
|
||||
github_account: value.github_account.unwrap_or_default(),
|
||||
on_clone: value.on_clone.unwrap_or_default(),
|
||||
on_pull: value.on_pull.unwrap_or_default(),
|
||||
tags: value.tags.unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use partial_derive2::Partial;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
use super::PermissionsMap;
|
||||
|
||||
@@ -23,7 +23,7 @@ pub struct Server {
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
#[builder(setter(skip))]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub name: String,
|
||||
@@ -44,6 +44,10 @@ pub struct Server {
|
||||
#[builder(setter(skip))]
|
||||
pub updated_at: I64,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
pub config: ServerConfig,
|
||||
}
|
||||
|
||||
@@ -95,10 +99,6 @@ pub struct ServerConfig {
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub to_notify: Vec<String>, // slack users to notify
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
fn default_enabled() -> bool {
|
||||
@@ -147,7 +147,6 @@ impl From<PartialServerConfig> for ServerConfig {
|
||||
mem_critical: value.mem_critical.unwrap_or(default_mem_critical()),
|
||||
disk_critical: value.disk_critical.unwrap_or(default_disk_critical()),
|
||||
to_notify: value.to_notify.unwrap_or_default(),
|
||||
tags: value.tags.unwrap_or_default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
|
||||
use strum_macros::{Display, EnumString};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{entities::Operation, monitor_timestamp, I64};
|
||||
use crate::{entities::Operation, monitor_timestamp, I64, MongoId};
|
||||
|
||||
use super::Version;
|
||||
|
||||
@@ -18,7 +18,7 @@ pub struct Update {
|
||||
skip_serializing_if = "String::is_empty",
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
pub target: ResourceTarget,
|
||||
pub operation: Operation,
|
||||
pub logs: Vec<Log>,
|
||||
|
||||
@@ -3,7 +3,7 @@ use mungos::MungosIndexed;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{i64_is_zero, I64};
|
||||
use crate::{i64_is_zero, I64, MongoId};
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default, MungosIndexed)]
|
||||
@@ -14,7 +14,7 @@ pub struct User {
|
||||
skip_serializing_if = "String::is_empty",
|
||||
with = "hex_string_as_object_id"
|
||||
)]
|
||||
pub id: String,
|
||||
pub id: MongoId,
|
||||
|
||||
#[unique_index]
|
||||
pub username: String,
|
||||
@@ -43,6 +43,9 @@ pub struct User {
|
||||
|
||||
pub google_id: Option<String>,
|
||||
|
||||
#[serde(default)]
|
||||
pub last_update_view: I64,
|
||||
|
||||
#[serde(default, skip_serializing_if = "i64_is_zero")]
|
||||
pub created_at: I64,
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ pub mod requests;
|
||||
|
||||
#[typeshare(serialized_as = "number")]
|
||||
pub type I64 = i64;
|
||||
#[typeshare(serialized_as = "{ $oid: string }")]
|
||||
pub type MongoId = String;
|
||||
#[typeshare(serialized_as = "any")]
|
||||
pub type MongoDocument = mungos::mongodb::bson::Document;
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
mod build;
|
||||
pub use build::*;
|
||||
mod deployment;
|
||||
pub use deployment::*;
|
||||
mod repo;
|
||||
pub use repo::*;
|
||||
mod server;
|
||||
|
||||
pub use build::*;
|
||||
pub use deployment::*;
|
||||
pub use repo::*;
|
||||
pub use server::*;
|
||||
|
||||
@@ -3,8 +3,11 @@ use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::{
|
||||
entities::build::{Build, BuildActionState},
|
||||
MongoDocument,
|
||||
entities::{
|
||||
build::{Build, BuildActionState},
|
||||
Version,
|
||||
},
|
||||
MongoDocument, I64,
|
||||
};
|
||||
|
||||
//
|
||||
@@ -20,11 +23,21 @@ pub struct GetBuild {
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Vec<Build>)]
|
||||
#[response(Vec<BuildListItem>)]
|
||||
pub struct ListBuilds {
|
||||
pub query: Option<MongoDocument>,
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
pub struct BuildListItem {
|
||||
pub id: String,
|
||||
pub name: String,
|
||||
pub last_built_at: I64,
|
||||
pub version: Version,
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
|
||||
@@ -23,11 +23,23 @@ pub struct GetDeployment {
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Vec<Deployment>)]
|
||||
#[response(Vec<DeploymentListItem>)]
|
||||
pub struct ListDeployments {
|
||||
pub query: Option<MongoDocument>,
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
pub struct DeploymentListItem {
|
||||
pub id: String,
|
||||
pub name: String,
|
||||
pub tags: Vec<String>,
|
||||
pub state: DockerContainerState,
|
||||
pub status: Option<String>,
|
||||
pub image: String,
|
||||
pub version: String,
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
use resolver_api::derive::Request;
|
||||
use serde::{Serialize, Deserialize};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
mod build;
|
||||
pub use build::*;
|
||||
mod builder;
|
||||
pub use builder::*;
|
||||
mod deployment;
|
||||
pub use deployment::*;
|
||||
mod repo;
|
||||
pub use repo::*;
|
||||
mod server;
|
||||
|
||||
pub use build::*;
|
||||
pub use builder::*;
|
||||
pub use deployment::*;
|
||||
pub use repo::*;
|
||||
pub use server::*;
|
||||
use typeshare::typeshare;
|
||||
|
||||
//
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use typeshare::typeshare;
|
||||
|
||||
use crate::{
|
||||
entities::repo::{Repo, RepoActionState},
|
||||
MongoDocument,
|
||||
MongoDocument, I64,
|
||||
};
|
||||
|
||||
//
|
||||
@@ -20,11 +20,20 @@ pub struct GetRepo {
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Vec<Repo>)]
|
||||
#[response(Vec<RepoListItem>)]
|
||||
pub struct ListRepos {
|
||||
pub query: Option<MongoDocument>,
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
pub struct RepoListItem {
|
||||
pub id: String,
|
||||
pub name: String,
|
||||
pub last_pulled_at: I64,
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
|
||||
@@ -31,11 +31,19 @@ pub struct GetServer {
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Vec<Server>)]
|
||||
#[response(Vec<ServerListItem>)]
|
||||
pub struct ListServers {
|
||||
pub query: Option<MongoDocument>,
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
pub struct ServerListItem {
|
||||
pub id: String,
|
||||
pub name: String,
|
||||
pub status: ServerStatus,
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
mod build;
|
||||
pub use build::*;
|
||||
mod builder;
|
||||
pub use builder::*;
|
||||
mod deployment;
|
||||
pub use deployment::*;
|
||||
mod repo;
|
||||
pub use repo::*;
|
||||
mod server;
|
||||
pub use server::*;
|
||||
mod permissions;
|
||||
pub use permissions::*;
|
||||
mod repo;
|
||||
mod secret;
|
||||
pub use secret::*;
|
||||
mod server;
|
||||
mod tags;
|
||||
mod user;
|
||||
|
||||
pub use build::*;
|
||||
pub use builder::*;
|
||||
pub use deployment::*;
|
||||
pub use permissions::*;
|
||||
pub use repo::*;
|
||||
pub use secret::*;
|
||||
pub use server::*;
|
||||
pub use tags::*;
|
||||
pub use user::*;
|
||||
|
||||
25
lib/types/src/requests/write/tags.rs
Normal file
25
lib/types/src/requests/write/tags.rs
Normal file
@@ -0,0 +1,25 @@
|
||||
use resolver_api::derive::Request;
|
||||
use serde::{Serialize, Deserialize};
|
||||
use typeshare::typeshare;
|
||||
|
||||
use crate::entities::update::ResourceTarget;
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(())]
|
||||
pub struct AddTags {
|
||||
pub target: ResourceTarget,
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(())]
|
||||
pub struct RemoveTags {
|
||||
pub target: ResourceTarget,
|
||||
pub tags: Vec<String>,
|
||||
}
|
||||
0
lib/types/src/requests/write/user.rs
Normal file
0
lib/types/src/requests/write/user.rs
Normal file
Reference in New Issue
Block a user