use mogh_resolver::Resolve;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::user_group::UserGroup;
use super::KomodoWriteRequest;
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/CreateUserGroup",
description = "**Admin only.** Create a user group.",
request_body(content = CreateUserGroup),
responses(
(status = 200, description = "The new user group", body = UserGroup),
),
)]
pub fn create_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct CreateUserGroup {
pub name: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/RenameUserGroup",
description = "**Admin only.** Rename a user group.",
request_body(content = RenameUserGroup),
responses(
(status = 200, description = "The renamed user group", body = UserGroup),
),
)]
pub fn rename_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct RenameUserGroup {
pub id: String,
pub name: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/DeleteUserGroup",
description = "**Admin only.** Delete a user group.",
request_body(content = DeleteUserGroup),
responses(
(status = 200, description = "The deleted user group", body = UserGroup),
),
)]
pub fn delete_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct DeleteUserGroup {
pub id: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/AddUserToUserGroup",
description = "**Admin only.** Add a user to a user group.",
request_body(content = AddUserToUserGroup),
responses(
(status = 200, description = "The updated user group", body = UserGroup),
),
)]
pub fn add_user_to_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct AddUserToUserGroup {
pub user_group: String,
pub user: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/RemoveUserFromUserGroup",
description = "**Admin only.** Remove a user from a user group.",
request_body(content = RemoveUserFromUserGroup),
responses(
(status = 200, description = "The updated user group", body = UserGroup),
),
)]
pub fn remove_user_from_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct RemoveUserFromUserGroup {
pub user_group: String,
pub user: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/SetUsersInUserGroup",
description = "**Admin only.** Set users in a user group.",
request_body(content = SetUsersInUserGroup),
responses(
(status = 200, description = "The updated user group", body = UserGroup),
),
)]
pub fn set_users_in_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct SetUsersInUserGroup {
pub user_group: String,
pub users: Vec<String>,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/SetEveryoneUserGroup",
description = "**Admin only.** Set everyone property of user group.",
request_body(content = SetEveryoneUserGroup),
responses(
(status = 200, description = "The updated user group", body = UserGroup),
),
)]
pub fn set_everyone_user_group() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(UserGroup)]
#[error(mogh_error::Error)]
pub struct SetEveryoneUserGroup {
pub user_group: String,
pub everyone: bool,
}