crab_rocket_role 0.1.0

Role package for the crab rocket project
Documentation
use diesel::prelude::*;
use rocket::serde::{Deserialize, Serialize};
use utoipa::ToSchema;

#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, Default)]
#[serde(crate = "rocket::serde")]
#[derive(Queryable, Selectable, Insertable)]
#[diesel(table_name = crab_rocket_schema::schema::role_table)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct Role {
    role_id: i32,
    role_name: String,
    description: Option<String>,
    permissions: Option<String>,
    created_at: Option<chrono::NaiveDateTime>,
    updated_at: Option<chrono::NaiveDateTime>,
}

impl Role {
    pub fn new(
        role_id: i32,
        role_name: String,
        description: Option<String>,
        permissions: Option<String>,
        created_at: Option<chrono::NaiveDateTime>,
        updated_at: Option<chrono::NaiveDateTime>,
    ) -> Self {
        Self {
            role_id,
            role_name,
            description,
            permissions,
            created_at,
            updated_at,
        }
    }

    pub fn role_id(&self) -> i32 {
        self.role_id
    }

    pub fn role_name(&self) -> &str {
        &self.role_name
    }

    pub fn description(&self) -> &Option<String> {
        &self.description
    }

    pub fn permissions(&self) -> &Option<String> {
        &self.permissions
    }

    pub fn created_at(&self) -> Option<chrono::NaiveDateTime> {
        self.created_at
    }

    pub fn updated_at(&self) -> Option<chrono::NaiveDateTime> {
        self.updated_at
    }

    pub fn set_role_id(&mut self, role_id: i32) {
        self.role_id = role_id;
    }

    pub fn set_role_name(&mut self, role_name: String) {
        self.role_name = role_name;
    }

    pub fn set_description(&mut self, description: Option<String>) {
        self.description = description;
    }

    pub fn set_permissions(&mut self, permissions: Option<String>) {
        self.permissions = permissions;
    }

    pub fn set_created_at(&mut self, created_at: Option<chrono::NaiveDateTime>) {
        self.created_at = created_at;
    }

    pub fn set_updated_at(&mut self, updated_at: Option<chrono::NaiveDateTime>) {
        self.updated_at = updated_at;
    }
}

#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
#[serde(crate = "rocket::serde")]
#[derive(Queryable, Selectable, Insertable)]
#[diesel(table_name = crab_rocket_schema::schema::role_table)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct NewRole {
    role_name: String,
    description: Option<String>,
    permissions: Option<String>,
}

impl NewRole {
    pub fn new(
        role_name: String,
        description: Option<String>,
        permissions: Option<String>,
    ) -> Self {
        Self {
            role_name,
            description,
            permissions,
        }
    }

    pub fn role_name(&self) -> &str {
        &self.role_name
    }

    pub fn description(&self) -> &Option<String> {
        &self.description
    }

    pub fn permissions(&self) -> &Option<String> {
        &self.permissions
    }

    pub fn set_role_name(&mut self, role_name: String) {
        self.role_name = role_name;
    }

    pub fn set_description(&mut self, description: Option<String>) {
        self.description = description;
    }

    pub fn set_permissions(&mut self, permissions: Option<String>) {
        self.permissions = permissions;
    }
}

#[derive(Debug, Clone, Serialize, Deserialize, ToSchema, Default)]
#[serde(crate = "rocket::serde")]
#[derive(Queryable, Selectable, Insertable)]
#[diesel(table_name = crab_rocket_schema::schema::role_table)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct PatchRole {
    role_name: String,
    description: Option<String>,
    permissions: Option<String>,
    created_at: Option<chrono::NaiveDateTime>,
    updated_at: Option<chrono::NaiveDateTime>,
}

impl PatchRole {
    pub fn new(
        role_name: String,
        description: Option<String>,
        permissions: Option<String>,
        created_at: Option<chrono::NaiveDateTime>,
        updated_at: Option<chrono::NaiveDateTime>,
    ) -> Self {
        Self {
            role_name,
            description,
            permissions,
            created_at,
            updated_at,
        }
    }

    pub fn role_name(&self) -> &str {
        &self.role_name
    }

    pub fn description(&self) -> &Option<String> {
        &self.description
    }

    pub fn permissions(&self) -> &Option<String> {
        &self.permissions
    }

    pub fn created_at(&self) -> Option<chrono::NaiveDateTime> {
        self.created_at
    }

    pub fn updated_at(&self) -> Option<chrono::NaiveDateTime> {
        self.updated_at
    }

    pub fn set_role_name(&mut self, role_name: String) {
        self.role_name = role_name;
    }

    pub fn set_description(&mut self, description: Option<String>) {
        self.description = description;
    }

    pub fn set_permissions(&mut self, permissions: Option<String>) {
        self.permissions = permissions;
    }

    pub fn set_created_at(&mut self, created_at: Option<chrono::NaiveDateTime>) {
        self.created_at = created_at;
    }

    pub fn set_updated_at(&mut self, updated_at: Option<chrono::NaiveDateTime>) {
        self.updated_at = updated_at;
    }
}