Add service for sales_persond
This commit is contained in:
parent
20828fb4a1
commit
ad88a1c983
9 changed files with 792 additions and 2 deletions
|
|
@ -6,6 +6,7 @@ use uuid::Uuid;
|
|||
|
||||
pub mod clock;
|
||||
pub mod permission;
|
||||
pub mod sales_person;
|
||||
pub mod slot;
|
||||
pub mod user_service;
|
||||
pub mod uuid_service;
|
||||
|
|
|
|||
58
service/src/sales_person.rs
Normal file
58
service/src/sales_person.rs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
use std::sync::Arc;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use mockall::automock;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::ServiceError;
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub struct SalesPerson {
|
||||
pub id: Uuid,
|
||||
pub name: Arc<str>,
|
||||
pub inactive: bool,
|
||||
pub deleted: Option<time::PrimitiveDateTime>,
|
||||
pub version: Uuid,
|
||||
}
|
||||
impl From<&dao::sales_person::SalesPersonEntity> for SalesPerson {
|
||||
fn from(sales_person: &dao::sales_person::SalesPersonEntity) -> Self {
|
||||
Self {
|
||||
id: sales_person.id,
|
||||
name: sales_person.name.clone(),
|
||||
inactive: sales_person.inactive,
|
||||
deleted: sales_person.deleted,
|
||||
version: sales_person.version,
|
||||
}
|
||||
}
|
||||
}
|
||||
impl From<&SalesPerson> for dao::sales_person::SalesPersonEntity {
|
||||
fn from(sales_person: &SalesPerson) -> Self {
|
||||
Self {
|
||||
id: sales_person.id,
|
||||
name: sales_person.name.clone(),
|
||||
inactive: sales_person.inactive,
|
||||
deleted: sales_person.deleted,
|
||||
version: sales_person.version,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[automock(type Context=();)]
|
||||
#[async_trait]
|
||||
pub trait SalesPersonService {
|
||||
type Context: Clone + Send + Sync + 'static;
|
||||
|
||||
async fn get_all(&self, context: Self::Context) -> Result<Arc<[SalesPerson]>, ServiceError>;
|
||||
async fn get(&self, id: Uuid, context: Self::Context) -> Result<SalesPerson, ServiceError>;
|
||||
async fn create(
|
||||
&self,
|
||||
item: &SalesPerson,
|
||||
context: Self::Context,
|
||||
) -> Result<SalesPerson, ServiceError>;
|
||||
async fn update(
|
||||
&self,
|
||||
item: &SalesPerson,
|
||||
context: Self::Context,
|
||||
) -> Result<SalesPerson, ServiceError>;
|
||||
async fn delete(&self, id: Uuid, context: Self::Context) -> Result<(), ServiceError>;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue