feat(notif): allow users to enable/disable specific agents (#1172)
* refactor(ui): add tabs to user notification settings * feat(notif): allow users to enable/disable specific agents * fix(ui): only enforce required fields when agent is enabled * fix(ui): hide unavailable notification agents * feat(notif): mention admin users for admin Discord notifications * fix(ui): modify styling of PGP key textareas to suit expected input * fix(notif): mention all admins when there are multiple and fix rebase error * fix: add missing form values, and fix Yup validation * refactor: reduce repeated logic/code in email notif agent * refactor: move 'Notification Types' label into NotificationTypeSelector component * fix(email): correct inconsistencies in email template formatting * refactor: use bitfields for storing user-enabled notif agent types * feat: improve notification agent logging * fix(ui): mark string fields as nullable so empty values are not type errors * fix: add validation for PGP-related inputs * fix: correctly fetch user in user settings & log mentioned IDs for Discord notifs * fix(ui): fix mobile nav dropdown text & add hover effect to button-style tabs * fix(notif): process admin email notifications asynchronously * fix(logging): log name of notification type instead of its enum value * fix: mark required fields and pass all user settings values to API * fix(frontend): call mutate after changing email/Discord/Telegram global notif settings * refactor: get global notif settings from relevant API endpoints instead of adding to public settings * fix(notif): fall back to email notifications being enabled (default) if user settings do not exist * fix(notif): do not set notifyUser for MEDIA_PENDING or MEDIA_AUTO_APPROVED * fix: expose notif enabled settings in user notif endpoints & remove global enable notif setting * fix(notif): remove unnecessary allowed_mentions object from Discord payload * fix(notif): use form values for email test notification * fix: make suggested changes and regenerate DB migration * fix: loosen validation of PGP keys * fix: fix user profile settings routes * fix: remove route guard from profile pages
This commit is contained in:
@@ -92,17 +92,12 @@ components:
|
||||
UserSettings:
|
||||
type: object
|
||||
properties:
|
||||
enableNotifications:
|
||||
type: boolean
|
||||
default: true
|
||||
discordId:
|
||||
type: string
|
||||
telegramChatId:
|
||||
region:
|
||||
type: string
|
||||
language:
|
||||
type: string
|
||||
telegramSendSilently:
|
||||
type: boolean
|
||||
required:
|
||||
- enableNotifications
|
||||
MainSettings:
|
||||
type: object
|
||||
properties:
|
||||
@@ -1201,12 +1196,6 @@ components:
|
||||
type: string
|
||||
priority:
|
||||
type: number
|
||||
NotificationSettings:
|
||||
type: object
|
||||
properties:
|
||||
enabled:
|
||||
type: boolean
|
||||
example: true
|
||||
NotificationEmailSettings:
|
||||
type: object
|
||||
properties:
|
||||
@@ -1559,20 +1548,30 @@ components:
|
||||
UserSettingsNotifications:
|
||||
type: object
|
||||
properties:
|
||||
enableNotifications:
|
||||
notificationAgents:
|
||||
type: number
|
||||
example: 0
|
||||
emailEnabled:
|
||||
type: boolean
|
||||
pgpKey:
|
||||
type: string
|
||||
nullable: true
|
||||
discordEnabled:
|
||||
type: boolean
|
||||
default: true
|
||||
discordId:
|
||||
type: string
|
||||
nullable: true
|
||||
telegramEnabled:
|
||||
type: boolean
|
||||
telegramBotUsername:
|
||||
type: string
|
||||
nullable: true
|
||||
telegramChatId:
|
||||
type: string
|
||||
nullable: true
|
||||
telegramSendSilently:
|
||||
type: boolean
|
||||
nullable: true
|
||||
required:
|
||||
- enableNotifications
|
||||
securitySchemes:
|
||||
cookieAuth:
|
||||
type: apiKey
|
||||
@@ -2306,37 +2305,6 @@ paths:
|
||||
timestamp:
|
||||
type: string
|
||||
example: 2020-12-15T16:20:00.069Z
|
||||
/settings/notifications:
|
||||
get:
|
||||
summary: Return notification settings
|
||||
description: Returns current notification settings in a JSON object.
|
||||
tags:
|
||||
- settings
|
||||
responses:
|
||||
'200':
|
||||
description: Returned settings
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NotificationSettings'
|
||||
post:
|
||||
summary: Update notification settings
|
||||
description: Updates notification settings with the provided values.
|
||||
tags:
|
||||
- settings
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NotificationSettings'
|
||||
responses:
|
||||
'200':
|
||||
description: 'Values were sucessfully updated'
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/NotificationSettings'
|
||||
/settings/notifications/email:
|
||||
get:
|
||||
summary: Get email notification settings
|
||||
|
||||
Reference in New Issue
Block a user