a1d4r / practicum-notifications

Service for notifications
0 stars 0 forks source link

API для создания уведомлений #6

Open a1d4r opened 3 months ago

a1d4r commented 3 months ago

Реализовать API на FastAPI.

Endpoint'ы

Endpoint для отправки уведомления планировщиком (celery beat)

POST /notifications/send

{  
    "notification_content_id": "uuid" // ID на содержание уведомления
}

Логика:

Формат сообщения:

{  
    "notification_id": "85a38bf6-a3f5-4380-bb73-2239ac115823" // ID уведомления
}  

Endpoint для отправки уведомлений другими сервисами

POST /notifications

{  
    // должен быть указан либо user_id, либо role_id    
    "user_id": "85a38bf6-a3f5-4380-bb73-2239ac115823", // ID пользователя    
    "user_group_id": "uuid",  // ID группы пользователей     
    "event_type": "user.registered",  // Тип события  
    "template_variable": { 
        // Переменные для шаблона       
        "registration_time": "2024-08-06T23:11:47Z",       
        "confirmation_link": "https://auth.practix.com/confirm/?..."    
    },
    "planned_at": "2024-08-10T10:00:00Z" // если не указано, то уведомление нужно отправить сразу
}  

Логика: