schemas_v1_api_notifications - OmniCloudOrg/OmniOrchestrator GitHub Wiki

notifications (src/schemas/v1/api)

Path: src/schemas/v1/api/notifications.rs

Module Documentation

Notification management module for handling CRUD operations on notifications.

This module provides functionality to create, read, update, and delete notifications in the system. It includes endpoints for managing both user notifications and role-based notifications.

Table of Contents

Public Items

struct CreateUserNotificationRequest

Definition

pub struct CreateUserNotificationRequest {
    pub message: String,
    pub notification_type: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub org_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub app_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub importance: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub action_url: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub action_label: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub expires_at: Option<DateTime<Utc>>,
}

struct CreateRoleNotificationRequest

Definition

pub struct CreateRoleNotificationRequest {
    pub role_id: i64,
    pub message: String,
    pub notification_type: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub org_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub app_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub importance: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub action_url: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub action_label: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub expires_at: Option<DateTime<Utc>>,
}

struct AcknowledgeNotificationRequest

Definition

pub struct AcknowledgeNotificationRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub notification_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub role_notification_id: Option<i64>,
}

async fn list_user_notifications

Definition

pub async fn list_user_notifications(
    platform_id: i64,
    user_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    include_read: Option<bool>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get a paginated list of notifications for a user

async fn count_unread_user_notifications

Definition

pub async fn count_unread_user_notifications(
    platform_id: i64,
    user_id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Count unread notifications for a user (for badges)

async fn get_user_notification_by_id

Definition

pub async fn get_user_notification_by_id(
    platform_id: i64,
    id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get a specific notification by ID

async fn create_user_notification

Definition

pub async fn create_user_notification(
    platform_id: i64,
    notification_data: Json<CreateUserNotificationRequest>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Create a new notification for a user

async fn mark_user_notification_as_read

Definition

pub async fn mark_user_notification_as_read(
    platform_id: i64,
    id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Mark a notification as read

async fn mark_all_user_notifications_as_read

Definition

pub async fn mark_all_user_notifications_as_read(
    platform_id: i64,
    user_id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Mark all notifications for a user as read

async fn delete_user_notification

Definition

pub async fn delete_user_notification(
    platform_id: i64,
    id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Delete a notification

async fn delete_read_user_notifications

Definition

pub async fn delete_read_user_notifications(
    platform_id: i64,
    user_id: i64,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Delete all read notifications for a user

async fn list_role_notifications

Definition

pub async fn list_role_notifications(
    platform_id: i64,
    role_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get a paginated list of role notifications

async fn create_role_notification

Definition

pub async fn create_role_notification(
    platform_id: i64,
    notification_data: Json<CreateRoleNotificationRequest>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Create a new notification for a role

async fn acknowledge_notification

Definition

pub async fn acknowledge_notification(
    platform_id: i64,
    ack_data: Json<AcknowledgeNotificationRequest>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Acknowledge a notification

async fn get_all_user_notifications_with_count

Definition

pub async fn get_all_user_notifications_with_count(
    platform_id: i64,
    user_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    user: User, // For authentication
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get all notifications for a user including role notifications

⚠️ **GitHub.com Fallback** ⚠️