feat(web): email notification preference settings (#9934)

* feat(web): email notification preference settings

* Update

* remove failed api generation file

* fix handle album invite return value

* Update web/src/lib/components/user-settings-page/notifications-settings.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* wording

* test

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
This commit is contained in:
Alex 2024-06-03 16:00:20 -05:00 committed by GitHub
parent 15474e81b2
commit b3ee394fdc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 478 additions and 4 deletions

View file

@ -16,6 +16,17 @@ class MemoryUpdate {
enabled?: boolean;
}
class EmailNotificationsUpdate {
@ValidateBoolean({ optional: true })
enabled?: boolean;
@ValidateBoolean({ optional: true })
albumInvite?: boolean;
@ValidateBoolean({ optional: true })
albumUpdate?: boolean;
}
export class UserPreferencesUpdateDto {
@Optional()
@ValidateNested()
@ -26,6 +37,11 @@ export class UserPreferencesUpdateDto {
@ValidateNested()
@Type(() => MemoryUpdate)
memories?: MemoryUpdate;
@Optional()
@ValidateNested()
@Type(() => EmailNotificationsUpdate)
emailNotifications?: EmailNotificationsUpdate;
}
class AvatarResponse {
@ -37,9 +53,16 @@ class MemoryResponse {
enabled!: boolean;
}
class EmailNotificationsResponse {
enabled!: boolean;
albumInvite!: boolean;
albumUpdate!: boolean;
}
export class UserPreferencesResponseDto implements UserPreferences {
memories!: MemoryResponse;
avatar!: AvatarResponse;
emailNotifications!: EmailNotificationsResponse;
}
export const mapPreferences = (preferences: UserPreferences): UserPreferencesResponseDto => {