shifty-backend/dao/src/lib.rs
2024-06-23 18:12:54 +02:00

46 lines
1.1 KiB
Rust

use std::sync::Arc;
use async_trait::async_trait;
use mockall::automock;
use thiserror::Error;
pub mod booking;
pub mod extra_hours;
pub mod permission;
pub mod sales_person;
pub mod shiftplan_report;
pub mod slot;
pub mod working_hours;
pub use permission::MockPermissionDao;
pub use permission::PermissionDao;
pub use permission::PrivilegeEntity;
pub use permission::RoleEntity;
pub use permission::UserEntity;
#[derive(Error, Debug)]
pub enum DaoError {
#[error("Database query error: {0}")]
DatabaseQueryError(#[from] Box<dyn std::error::Error + Send + Sync>),
#[error("Uuid error: {0}")]
UuidError(#[from] uuid::Error),
#[error("Invalid day of week number: {0}")]
InvalidDayOfWeek(u8),
#[error("Date/Time parse error: {0}")]
DateTimeParseError(#[from] time::error::Parse),
#[error("Date/Time format error: {0}")]
DateTimeFormatError(#[from] time::error::Format),
#[error("Enum value not found: {0}")]
EnumValueNotFound(Arc<str>),
}
#[automock]
#[async_trait]
pub trait HelloDao {
async fn get_hello(&self) -> Result<Arc<str>, DaoError>;
}