From 488dc4efbdcb64fd84d4cf67f8b145160313a1c4 Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Mon, 21 Apr 2025 10:49:26 -0400 Subject: [PATCH] refactor: notification-admin controller (#17748) --- mobile/openapi/README.md | Bin 33703 -> 33755 bytes mobile/openapi/lib/api.dart | Bin 12387 -> 12393 bytes ..._api.dart => notifications_admin_api.dart} | Bin 3990 -> 4054 bytes open-api/immich-openapi-specs.json | 12 ++++++------ open-api/typescript-sdk/src/fetch-client.ts | 8 ++++---- server/src/controllers/index.ts | 4 ++-- ...er.ts => notification-admin.controller.ts} | 10 +++++----- .../notification-settings.svelte | 4 ++-- .../template-settings.svelte | 4 ++-- 9 files changed, 21 insertions(+), 21 deletions(-) rename mobile/openapi/lib/api/{notifications_api.dart => notifications_admin_api.dart} (75%) rename server/src/controllers/{notification.controller.ts => notification-admin.controller.ts} (80%) diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 0ae07e9efdf36bc2d7240e5f530324d85a4fb928..fef299b5afb984ef6071f25183597be08bdb1b2d 100644 GIT binary patch delta 154 zcmZ49&UCw-X+xMQOG<8L-sDhKMOH^J>%XcvM5sqqjx`Z1v`SS5$~vm5q5u+dEXdSS zs8NX4(kf2PO9@FWE^*CG%*=tCAPZHbmz$ytQc(g_kqS})H&6h~(g#WCf@LN*sEce) IR&$930P8zAVE_OC delta 85 zcmccJ&a}LpX+xOm~Gx>q4vRFZ;mO_m}w3b$JYFbl7vmJxL@?_v<3(18 z*gB>zh}dRx=H*OK!F#Mp5Y}b~wj)eXJem delta 84 zcmV-a0IUDjAC@1mHUSiHX&`$FARta}bZKU3V_|e@Z*FswQ~{Ke?g7w~!vc!4Qv;>~ qlg|P)lMoFTlSu{_vt(`/notifications/templates/${encodeURIComponent(name)}`, oazapfts.json({ + }>(`/notifications/admin/templates/${encodeURIComponent(name)}`, oazapfts.json({ ...opts, method: "POST", body: templateDto }))); } -export function sendTestEmail({ systemConfigSmtpDto }: { +export function sendTestEmailAdmin({ systemConfigSmtpDto }: { systemConfigSmtpDto: SystemConfigSmtpDto; }, opts?: Oazapfts.RequestOpts) { return oazapfts.ok(oazapfts.fetchJson<{ status: 200; data: TestEmailResponseDto; - }>("/notifications/test-email", oazapfts.json({ + }>("/notifications/admin/test-email", oazapfts.json({ ...opts, method: "POST", body: systemConfigSmtpDto diff --git a/server/src/controllers/index.ts b/server/src/controllers/index.ts index c9d63f8bc..0da0aac8b 100644 --- a/server/src/controllers/index.ts +++ b/server/src/controllers/index.ts @@ -13,7 +13,7 @@ import { JobController } from 'src/controllers/job.controller'; import { LibraryController } from 'src/controllers/library.controller'; import { MapController } from 'src/controllers/map.controller'; import { MemoryController } from 'src/controllers/memory.controller'; -import { NotificationController } from 'src/controllers/notification.controller'; +import { NotificationAdminController } from 'src/controllers/notification-admin.controller'; import { OAuthController } from 'src/controllers/oauth.controller'; import { PartnerController } from 'src/controllers/partner.controller'; import { PersonController } from 'src/controllers/person.controller'; @@ -47,7 +47,7 @@ export const controllers = [ LibraryController, MapController, MemoryController, - NotificationController, + NotificationAdminController, OAuthController, PartnerController, PersonController, diff --git a/server/src/controllers/notification.controller.ts b/server/src/controllers/notification-admin.controller.ts similarity index 80% rename from server/src/controllers/notification.controller.ts rename to server/src/controllers/notification-admin.controller.ts index 39946a9fc..f3ce4cdac 100644 --- a/server/src/controllers/notification.controller.ts +++ b/server/src/controllers/notification-admin.controller.ts @@ -7,22 +7,22 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard'; import { EmailTemplate } from 'src/repositories/notification.repository'; import { NotificationService } from 'src/services/notification.service'; -@ApiTags('Notifications') -@Controller('notifications') -export class NotificationController { +@ApiTags('Notifications (Admin)') +@Controller('notifications/admin') +export class NotificationAdminController { constructor(private service: NotificationService) {} @Post('test-email') @HttpCode(HttpStatus.OK) @Authenticated({ admin: true }) - sendTestEmail(@Auth() auth: AuthDto, @Body() dto: SystemConfigSmtpDto): Promise { + sendTestEmailAdmin(@Auth() auth: AuthDto, @Body() dto: SystemConfigSmtpDto): Promise { return this.service.sendTestEmail(auth.user.id, dto); } @Post('templates/:name') @HttpCode(HttpStatus.OK) @Authenticated({ admin: true }) - getNotificationTemplate( + getNotificationTemplateAdmin( @Auth() auth: AuthDto, @Param('name') name: EmailTemplate, @Body() dto: TemplateDto, diff --git a/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte b/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte index a2b6305f7..24e672607 100644 --- a/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte +++ b/web/src/lib/components/admin-page/settings/notification-settings/notification-settings.svelte @@ -12,7 +12,7 @@ import { SettingInputFieldType } from '$lib/constants'; import { user } from '$lib/stores/user.store'; import { handleError } from '$lib/utils/handle-error'; - import { sendTestEmail, type SystemConfigDto } from '@immich/sdk'; + import { sendTestEmailAdmin, type SystemConfigDto } from '@immich/sdk'; import { Button } from '@immich/ui'; import { isEqual } from 'lodash-es'; import { t } from 'svelte-i18n'; @@ -40,7 +40,7 @@ isSending = true; try { - await sendTestEmail({ + await sendTestEmailAdmin({ systemConfigSmtpDto: { enabled: config.notifications.smtp.enabled, transport: { diff --git a/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte index b418aebb2..06d819693 100644 --- a/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte +++ b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte @@ -6,7 +6,7 @@ import SettingAccordion from '$lib/components/shared-components/settings/setting-accordion.svelte'; import SettingTextarea from '$lib/components/shared-components/settings/setting-textarea.svelte'; import { handleError } from '$lib/utils/handle-error'; - import { type SystemConfigDto, type SystemConfigTemplateEmailsDto, getNotificationTemplate } from '@immich/sdk'; + import { type SystemConfigDto, type SystemConfigTemplateEmailsDto, getNotificationTemplateAdmin } from '@immich/sdk'; import { Button } from '@immich/ui'; import { mdiEyeOutline } from '@mdi/js'; import { t } from 'svelte-i18n'; @@ -25,7 +25,7 @@ const getTemplate = async (name: string, template: string) => { try { loadingPreview = true; - const result = await getNotificationTemplate({ name, templateDto: { template } }); + const result = await getNotificationTemplateAdmin({ name, templateDto: { template } }); htmlPreview = result.html; } catch (error) { handleError(error, 'Could not load template.');