From 652add635f65d0ec60bab4a06ac1fcd5287846ef Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Fri, 16 Jun 2023 15:39:53 -0400 Subject: [PATCH] refactor: rename get auth user decorator (#2778) Co-authored-by: Alex --- .../immich/api-v1/album/album.controller.ts | 34 ++++++------ .../immich/api-v1/asset/asset.controller.ts | 52 +++++++++---------- .../immich/controllers/album.controller.ts | 16 +++--- .../immich/controllers/api-key.controller.ts | 12 ++--- .../immich/controllers/asset.controller.ts | 6 +-- .../src/immich/controllers/auth.controller.ts | 12 ++--- .../immich/controllers/oauth.controller.ts | 6 +-- .../immich/controllers/partner.controller.ts | 8 +-- .../immich/controllers/person.controller.ts | 13 +++-- .../immich/controllers/search.controller.ts | 6 +-- .../controllers/shared-link.controller.ts | 15 +++--- .../src/immich/controllers/tag.controller.ts | 18 +++---- .../src/immich/controllers/user.controller.ts | 14 ++--- .../immich/decorators/auth-user.decorator.ts | 2 +- 14 files changed, 105 insertions(+), 109 deletions(-) diff --git a/server/src/immich/api-v1/album/album.controller.ts b/server/src/immich/api-v1/album/album.controller.ts index 5d84a018f..e15a89e33 100644 --- a/server/src/immich/api-v1/album/album.controller.ts +++ b/server/src/immich/api-v1/album/album.controller.ts @@ -1,18 +1,18 @@ -import { Controller, Get, Post, Body, Param, Delete, Put, Query, Response } from '@nestjs/common'; -import { AlbumService } from './album.service'; -import { Authenticated, SharedLinkRoute } from '../../decorators/authenticated.decorator'; -import { AuthUserDto, GetAuthUser } from '../../decorators/auth-user.decorator'; -import { AddAssetsDto } from './dto/add-assets.dto'; -import { RemoveAssetsDto } from './dto/remove-assets.dto'; -import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { AlbumResponseDto } from '@app/domain'; -import { AddAssetsResponseDto } from './response-dto/add-assets-response.dto'; +import { Body, Controller, Delete, Get, Param, Post, Put, Query, Response } from '@nestjs/common'; +import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { Response as Res } from 'express'; -import { DownloadDto } from '../asset/dto/download-library.dto'; -import { CreateAlbumShareLinkDto as CreateAlbumSharedLinkDto } from './dto/create-album-shared-link.dto'; -import { UseValidation } from '../../decorators/use-validation.decorator'; -import { UUIDParamDto } from '../../controllers/dto/uuid-param.dto'; import { handleDownload } from '../../app.utils'; +import { UUIDParamDto } from '../../controllers/dto/uuid-param.dto'; +import { AuthUser, AuthUserDto } from '../../decorators/auth-user.decorator'; +import { Authenticated, SharedLinkRoute } from '../../decorators/authenticated.decorator'; +import { UseValidation } from '../../decorators/use-validation.decorator'; +import { DownloadDto } from '../asset/dto/download-library.dto'; +import { AlbumService } from './album.service'; +import { AddAssetsDto } from './dto/add-assets.dto'; +import { CreateAlbumShareLinkDto as CreateAlbumSharedLinkDto } from './dto/create-album-shared-link.dto'; +import { RemoveAssetsDto } from './dto/remove-assets.dto'; +import { AddAssetsResponseDto } from './response-dto/add-assets-response.dto'; @ApiTags('Album') @Controller('album') @@ -24,7 +24,7 @@ export class AlbumController { @SharedLinkRoute() @Put(':id/assets') addAssetsToAlbum( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: AddAssetsDto, ): Promise { @@ -35,13 +35,13 @@ export class AlbumController { @SharedLinkRoute() @Get(':id') - getAlbumInfo(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { + getAlbumInfo(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { return this.service.get(authUser, id); } @Delete(':id/assets') removeAssetFromAlbum( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body() dto: RemoveAssetsDto, @Param() { id }: UUIDParamDto, ): Promise { @@ -52,7 +52,7 @@ export class AlbumController { @Get(':id/download') @ApiOkResponse({ content: { 'application/zip': { schema: { type: 'string', format: 'binary' } } } }) downloadArchive( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Query() dto: DownloadDto, @Response({ passthrough: true }) res: Res, @@ -61,7 +61,7 @@ export class AlbumController { } @Post('create-shared-link') - createAlbumSharedLink(@GetAuthUser() authUser: AuthUserDto, @Body() dto: CreateAlbumSharedLinkDto) { + createAlbumSharedLink(@AuthUser() authUser: AuthUserDto, @Body() dto: CreateAlbumSharedLinkDto) { return this.service.createSharedLink(authUser, dto); } } diff --git a/server/src/immich/api-v1/asset/asset.controller.ts b/server/src/immich/api-v1/asset/asset.controller.ts index b678086af..e2dbb4969 100644 --- a/server/src/immich/api-v1/asset/asset.controller.ts +++ b/server/src/immich/api-v1/asset/asset.controller.ts @@ -22,7 +22,7 @@ import { import { Authenticated, SharedLinkRoute } from '../../decorators/authenticated.decorator'; import { AssetService } from './asset.service'; import { FileFieldsInterceptor } from '@nestjs/platform-express'; -import { AuthUserDto, GetAuthUser } from '../../decorators/auth-user.decorator'; +import { AuthUserDto, AuthUser } from '../../decorators/auth-user.decorator'; import { ServeFileDto } from './dto/serve-file.dto'; import { Response as Res } from 'express'; import { DeleteAssetDto } from './dto/delete-asset.dto'; @@ -92,7 +92,7 @@ export class AssetController { type: CreateAssetDto, }) async uploadFile( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @UploadedFiles(new ParseFilePipe({ validators: [new FileNotEmptyValidator(['assetData'])] })) files: UploadFiles, @Body(new ValidationPipe()) dto: CreateAssetDto, @Response({ passthrough: true }) res: Res, @@ -121,7 +121,7 @@ export class AssetController { @SharedLinkRoute() @Get('/download/:id') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) - downloadFile(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { + downloadFile(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { return this.assetService.downloadFile(authUser, id).then(asStreamableFile); } @@ -129,7 +129,7 @@ export class AssetController { @Post('/download-files') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) downloadFiles( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Response({ passthrough: true }) res: Res, @Body(new ValidationPipe()) dto: DownloadFilesDto, ) { @@ -143,7 +143,7 @@ export class AssetController { @Get('/download-library') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) downloadLibrary( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Query(new ValidationPipe({ transform: true })) dto: DownloadDto, @Response({ passthrough: true }) res: Res, ) { @@ -155,7 +155,7 @@ export class AssetController { @Header('Cache-Control', 'max-age=31536000') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) serveFile( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Headers() headers: Record, @Response({ passthrough: true }) res: Res, @Query(new ValidationPipe({ transform: true })) query: ServeFileDto, @@ -169,7 +169,7 @@ export class AssetController { @Header('Cache-Control', 'max-age=31536000') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) getAssetThumbnail( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Headers() headers: Record, @Response({ passthrough: true }) res: Res, @Param() { id }: UUIDParamDto, @@ -179,23 +179,23 @@ export class AssetController { } @Get('/curated-objects') - getCuratedObjects(@GetAuthUser() authUser: AuthUserDto): Promise { + getCuratedObjects(@AuthUser() authUser: AuthUserDto): Promise { return this.assetService.getCuratedObject(authUser); } @Get('/curated-locations') - getCuratedLocations(@GetAuthUser() authUser: AuthUserDto): Promise { + getCuratedLocations(@AuthUser() authUser: AuthUserDto): Promise { return this.assetService.getCuratedLocation(authUser); } @Get('/search-terms') - getAssetSearchTerms(@GetAuthUser() authUser: AuthUserDto): Promise { + getAssetSearchTerms(@AuthUser() authUser: AuthUserDto): Promise { return this.assetService.getAssetSearchTerm(authUser); } @Post('/search') searchAsset( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: SearchAssetDto, ): Promise { return this.assetService.searchAsset(authUser, dto); @@ -203,19 +203,19 @@ export class AssetController { @Post('/count-by-time-bucket') getAssetCountByTimeBucket( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: GetAssetCountByTimeBucketDto, ): Promise { return this.assetService.getAssetCountByTimeBucket(authUser, dto); } @Get('/count-by-user-id') - getAssetCountByUserId(@GetAuthUser() authUser: AuthUserDto): Promise { + getAssetCountByUserId(@AuthUser() authUser: AuthUserDto): Promise { return this.assetService.getAssetCountByUserId(authUser); } @Get('/stat/archive') - getArchivedAssetCountByUserId(@GetAuthUser() authUser: AuthUserDto): Promise { + getArchivedAssetCountByUserId(@AuthUser() authUser: AuthUserDto): Promise { return this.assetService.getArchivedAssetCountByUserId(authUser); } /** @@ -229,7 +229,7 @@ export class AssetController { schema: { type: 'string' }, }) getAllAssets( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Query(new ValidationPipe({ transform: true })) dto: AssetSearchDto, ): Promise { return this.assetService.getAllAssets(authUser, dto); @@ -237,7 +237,7 @@ export class AssetController { @Post('/time-bucket') getAssetByTimeBucket( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: GetAssetByTimeBucketDto, ): Promise { return this.assetService.getAssetByTimeBucket(authUser, dto); @@ -247,7 +247,7 @@ export class AssetController { * Get all asset of a device that are in the database, ID only. */ @Get('/:deviceId') - getUserAssetsByDeviceId(@GetAuthUser() authUser: AuthUserDto, @Param() { deviceId }: DeviceIdDto) { + getUserAssetsByDeviceId(@AuthUser() authUser: AuthUserDto, @Param() { deviceId }: DeviceIdDto) { return this.assetService.getUserAssetsByDeviceId(authUser, deviceId); } @@ -256,7 +256,7 @@ export class AssetController { */ @SharedLinkRoute() @Get('/assetById/:id') - getAssetById(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getAssetById(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.assetService.getAssetById(authUser, id); } @@ -265,7 +265,7 @@ export class AssetController { */ @Put('/:id') updateAsset( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body(ValidationPipe) dto: UpdateAssetDto, ): Promise { @@ -274,7 +274,7 @@ export class AssetController { @Delete('/') deleteAsset( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: DeleteAssetDto, ): Promise { return this.assetService.deleteAll(authUser, dto); @@ -287,7 +287,7 @@ export class AssetController { @Post('/check') @HttpCode(200) checkDuplicateAsset( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: CheckDuplicateAssetDto, ): Promise { return this.assetService.checkDuplicatedAsset(authUser, dto); @@ -299,7 +299,7 @@ export class AssetController { @Post('/exist') @HttpCode(200) checkExistingAssets( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: CheckExistingAssetsDto, ): Promise { return this.assetService.checkExistingAssets(authUser, dto); @@ -311,7 +311,7 @@ export class AssetController { @Post('/bulk-upload-check') @HttpCode(200) bulkUploadCheck( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: AssetBulkUploadCheckDto, ): Promise { return this.assetService.bulkUploadCheck(authUser, dto); @@ -319,7 +319,7 @@ export class AssetController { @Post('/shared-link') createAssetsSharedLink( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: CreateAssetsShareLinkDto, ): Promise { return this.assetService.createAssetsSharedLink(authUser, dto); @@ -328,7 +328,7 @@ export class AssetController { @SharedLinkRoute() @Patch('/shared-link/add') addAssetsToSharedLink( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: AddAssetsDto, ): Promise { return this.assetService.addAssetsToSharedLink(authUser, dto); @@ -337,7 +337,7 @@ export class AssetController { @SharedLinkRoute() @Patch('/shared-link/remove') removeAssetsFromSharedLink( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body(ValidationPipe) dto: RemoveAssetsDto, ): Promise { return this.assetService.removeAssetsFromSharedLink(authUser, dto); diff --git a/server/src/immich/controllers/album.controller.ts b/server/src/immich/controllers/album.controller.ts index 416275712..37c975263 100644 --- a/server/src/immich/controllers/album.controller.ts +++ b/server/src/immich/controllers/album.controller.ts @@ -10,7 +10,7 @@ import { GetAlbumsDto } from '@app/domain/album/dto/get-albums.dto'; import { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { ParseMeUUIDPipe } from '../api-v1/validation/parse-me-uuid-pipe'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -23,38 +23,38 @@ export class AlbumController { constructor(private service: AlbumService) {} @Get('count') - getAlbumCount(@GetAuthUser() authUser: AuthUserDto): Promise { + getAlbumCount(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getCount(authUser); } @Get() - getAllAlbums(@GetAuthUser() authUser: AuthUserDto, @Query() query: GetAlbumsDto) { + getAllAlbums(@AuthUser() authUser: AuthUserDto, @Query() query: GetAlbumsDto) { return this.service.getAll(authUser, query); } @Post() - createAlbum(@GetAuthUser() authUser: AuthUserDto, @Body() dto: CreateAlbumDto) { + createAlbum(@AuthUser() authUser: AuthUserDto, @Body() dto: CreateAlbumDto) { return this.service.create(authUser, dto); } @Patch(':id') - updateAlbumInfo(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: UpdateAlbumDto) { + updateAlbumInfo(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: UpdateAlbumDto) { return this.service.update(authUser, id, dto); } @Delete(':id') - deleteAlbum(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { + deleteAlbum(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { return this.service.delete(authUser, id); } @Put(':id/users') - addUsersToAlbum(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: AddUsersDto) { + addUsersToAlbum(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: AddUsersDto) { return this.service.addUsers(authUser, id, dto); } @Delete(':id/user/:userId') removeUserFromAlbum( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Param('userId', new ParseMeUUIDPipe({ version: '4' })) userId: string, ) { diff --git a/server/src/immich/controllers/api-key.controller.ts b/server/src/immich/controllers/api-key.controller.ts index e025b248f..8597d0f7b 100644 --- a/server/src/immich/controllers/api-key.controller.ts +++ b/server/src/immich/controllers/api-key.controller.ts @@ -8,7 +8,7 @@ import { } from '@app/domain'; import { Body, Controller, Delete, Get, Param, Post, Put } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -21,23 +21,23 @@ export class APIKeyController { constructor(private service: APIKeyService) {} @Post() - createKey(@GetAuthUser() authUser: AuthUserDto, @Body() dto: APIKeyCreateDto): Promise { + createKey(@AuthUser() authUser: AuthUserDto, @Body() dto: APIKeyCreateDto): Promise { return this.service.create(authUser, dto); } @Get() - getKeys(@GetAuthUser() authUser: AuthUserDto): Promise { + getKeys(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getAll(authUser); } @Get(':id') - getKey(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getKey(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.getById(authUser, id); } @Put(':id') updateKey( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: APIKeyUpdateDto, ): Promise { @@ -45,7 +45,7 @@ export class APIKeyController { } @Delete(':id') - deleteKey(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + deleteKey(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.delete(authUser, id); } } diff --git a/server/src/immich/controllers/asset.controller.ts b/server/src/immich/controllers/asset.controller.ts index 069474c92..253e20e37 100644 --- a/server/src/immich/controllers/asset.controller.ts +++ b/server/src/immich/controllers/asset.controller.ts @@ -2,7 +2,7 @@ import { AssetService, AuthUserDto, MapMarkerResponseDto, MemoryLaneDto } from ' import { MapMarkerDto } from '@app/domain/asset/dto/map-marker.dto'; import { Controller, Get, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { MemoryLaneResponseDto } from '@app/domain/asset/response-dto/memory-lane-response.dto'; @@ -15,12 +15,12 @@ export class AssetController { constructor(private service: AssetService) {} @Get('map-marker') - getMapMarkers(@GetAuthUser() authUser: AuthUserDto, @Query() options: MapMarkerDto): Promise { + getMapMarkers(@AuthUser() authUser: AuthUserDto, @Query() options: MapMarkerDto): Promise { return this.service.getMapMarkers(authUser, options); } @Get('memory-lane') - getMemoryLane(@GetAuthUser() authUser: AuthUserDto, @Query() dto: MemoryLaneDto): Promise { + getMemoryLane(@AuthUser() authUser: AuthUserDto, @Query() dto: MemoryLaneDto): Promise { return this.service.getMemoryLane(authUser, dto); } } diff --git a/server/src/immich/controllers/auth.controller.ts b/server/src/immich/controllers/auth.controller.ts index f952c8996..cd0e23739 100644 --- a/server/src/immich/controllers/auth.controller.ts +++ b/server/src/immich/controllers/auth.controller.ts @@ -18,7 +18,7 @@ import { import { Body, Controller, Delete, Get, Param, Post, Req, Res } from '@nestjs/common'; import { ApiBadRequestResponse, ApiTags } from '@nestjs/swagger'; import { Request, Response } from 'express'; -import { GetAuthUser, GetLoginDetails } from '../decorators/auth-user.decorator'; +import { AuthUser, GetLoginDetails } from '../decorators/auth-user.decorator'; import { Authenticated, PublicRoute } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -50,17 +50,17 @@ export class AuthController { } @Get('devices') - getAuthDevices(@GetAuthUser() authUser: AuthUserDto): Promise { + getAuthDevices(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getDevices(authUser); } @Delete('devices') - logoutAuthDevices(@GetAuthUser() authUser: AuthUserDto): Promise { + logoutAuthDevices(@AuthUser() authUser: AuthUserDto): Promise { return this.service.logoutDevices(authUser); } @Delete('devices/:id') - logoutAuthDevice(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + logoutAuthDevice(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.logoutDevice(authUser, id); } @@ -70,7 +70,7 @@ export class AuthController { } @Post('change-password') - changePassword(@GetAuthUser() authUser: AuthUserDto, @Body() dto: ChangePasswordDto): Promise { + changePassword(@AuthUser() authUser: AuthUserDto, @Body() dto: ChangePasswordDto): Promise { return this.service.changePassword(authUser, dto); } @@ -78,7 +78,7 @@ export class AuthController { logout( @Req() req: Request, @Res({ passthrough: true }) res: Response, - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, ): Promise { const authType: AuthType = req.cookies[IMMICH_AUTH_TYPE_COOKIE]; diff --git a/server/src/immich/controllers/oauth.controller.ts b/server/src/immich/controllers/oauth.controller.ts index b85b419ef..cb2440a09 100644 --- a/server/src/immich/controllers/oauth.controller.ts +++ b/server/src/immich/controllers/oauth.controller.ts @@ -11,7 +11,7 @@ import { import { Body, Controller, Get, HttpStatus, Post, Redirect, Req, Res } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { Request, Response } from 'express'; -import { GetAuthUser, GetLoginDetails } from '../decorators/auth-user.decorator'; +import { AuthUser, GetLoginDetails } from '../decorators/auth-user.decorator'; import { Authenticated, PublicRoute } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; @@ -51,12 +51,12 @@ export class OAuthController { } @Post('link') - link(@GetAuthUser() authUser: AuthUserDto, @Body() dto: OAuthCallbackDto): Promise { + link(@AuthUser() authUser: AuthUserDto, @Body() dto: OAuthCallbackDto): Promise { return this.service.link(authUser, dto); } @Post('unlink') - unlink(@GetAuthUser() authUser: AuthUserDto): Promise { + unlink(@AuthUser() authUser: AuthUserDto): Promise { return this.service.unlink(authUser); } } diff --git a/server/src/immich/controllers/partner.controller.ts b/server/src/immich/controllers/partner.controller.ts index b2f9639b9..49677f2da 100644 --- a/server/src/immich/controllers/partner.controller.ts +++ b/server/src/immich/controllers/partner.controller.ts @@ -1,7 +1,7 @@ import { PartnerDirection, PartnerService, UserResponseDto } from '@app/domain'; import { Controller, Delete, Get, Param, Post, Query } from '@nestjs/common'; import { ApiQuery, ApiTags } from '@nestjs/swagger'; -import { AuthUserDto, GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUserDto, AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -16,19 +16,19 @@ export class PartnerController { @Get() @ApiQuery({ name: 'direction', type: 'string', enum: PartnerDirection, required: true }) getPartners( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Query('direction') direction: PartnerDirection, ): Promise { return this.service.getAll(authUser, direction); } @Post(':id') - createPartner(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + createPartner(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.create(authUser, id); } @Delete(':id') - removePartner(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + removePartner(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.remove(authUser, id); } } diff --git a/server/src/immich/controllers/person.controller.ts b/server/src/immich/controllers/person.controller.ts index a2a597ca4..26cd2e62c 100644 --- a/server/src/immich/controllers/person.controller.ts +++ b/server/src/immich/controllers/person.controller.ts @@ -8,8 +8,7 @@ import { } from '@app/domain'; import { Body, Controller, Get, Param, Put, StreamableFile } from '@nestjs/common'; import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; - +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -26,18 +25,18 @@ export class PersonController { constructor(private service: PersonService) {} @Get() - getAllPeople(@GetAuthUser() authUser: AuthUserDto): Promise { + getAllPeople(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getAll(authUser); } @Get(':id') - getPerson(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getPerson(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.getById(authUser, id); } @Put(':id') updatePerson( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: PersonUpdateDto, ): Promise { @@ -46,12 +45,12 @@ export class PersonController { @Get(':id/thumbnail') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) - getPersonThumbnail(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { + getPersonThumbnail(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto) { return this.service.getThumbnail(authUser, id).then(asStreamableFile); } @Get(':id/assets') - getPersonAssets(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getPersonAssets(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.getAssets(authUser, id); } } diff --git a/server/src/immich/controllers/search.controller.ts b/server/src/immich/controllers/search.controller.ts index 0fb3b79fd..4c6062131 100644 --- a/server/src/immich/controllers/search.controller.ts +++ b/server/src/immich/controllers/search.controller.ts @@ -8,7 +8,7 @@ import { } from '@app/domain'; import { Controller, Get, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; @@ -20,7 +20,7 @@ export class SearchController { constructor(private service: SearchService) {} @Get() - search(@GetAuthUser() authUser: AuthUserDto, @Query() dto: SearchDto): Promise { + search(@AuthUser() authUser: AuthUserDto, @Query() dto: SearchDto): Promise { return this.service.search(authUser, dto); } @@ -30,7 +30,7 @@ export class SearchController { } @Get('explore') - getExploreData(@GetAuthUser() authUser: AuthUserDto): Promise { + getExploreData(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getExploreData(authUser) as Promise; } } diff --git a/server/src/immich/controllers/shared-link.controller.ts b/server/src/immich/controllers/shared-link.controller.ts index f5f1a4b33..1ab8f505f 100644 --- a/server/src/immich/controllers/shared-link.controller.ts +++ b/server/src/immich/controllers/shared-link.controller.ts @@ -1,7 +1,7 @@ import { AuthUserDto, EditSharedLinkDto, SharedLinkResponseDto, SharedLinkService } from '@app/domain'; import { Body, Controller, Delete, Get, Param, Patch } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated, SharedLinkRoute } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -14,27 +14,24 @@ export class SharedLinkController { constructor(private readonly service: SharedLinkService) {} @Get() - getAllSharedLinks(@GetAuthUser() authUser: AuthUserDto): Promise { + getAllSharedLinks(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getAll(authUser); } @SharedLinkRoute() @Get('me') - getMySharedLink(@GetAuthUser() authUser: AuthUserDto): Promise { + getMySharedLink(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getMine(authUser); } @Get(':id') - getSharedLinkById( - @GetAuthUser() authUser: AuthUserDto, - @Param() { id }: UUIDParamDto, - ): Promise { + getSharedLinkById(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.get(authUser, id); } @Patch(':id') updateSharedLink( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: EditSharedLinkDto, ): Promise { @@ -42,7 +39,7 @@ export class SharedLinkController { } @Delete(':id') - removeSharedLink(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + removeSharedLink(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.remove(authUser, id); } } diff --git a/server/src/immich/controllers/tag.controller.ts b/server/src/immich/controllers/tag.controller.ts index 45b5233e2..d4e7a8d28 100644 --- a/server/src/immich/controllers/tag.controller.ts +++ b/server/src/immich/controllers/tag.controller.ts @@ -9,7 +9,7 @@ import { } from '@app/domain'; import { Body, Controller, Delete, Get, Param, Patch, Post, Put } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { AuthUserDto, GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUserDto, AuthUser } from '../decorators/auth-user.decorator'; import { Authenticated } from '../decorators/authenticated.decorator'; import { UseValidation } from '../decorators/use-validation.decorator'; import { UUIDParamDto } from './dto/uuid-param.dto'; @@ -22,23 +22,23 @@ export class TagController { constructor(private service: TagService) {} @Post() - createTag(@GetAuthUser() authUser: AuthUserDto, @Body() dto: CreateTagDto): Promise { + createTag(@AuthUser() authUser: AuthUserDto, @Body() dto: CreateTagDto): Promise { return this.service.create(authUser, dto); } @Get() - getAllTags(@GetAuthUser() authUser: AuthUserDto): Promise { + getAllTags(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getAll(authUser); } @Get(':id') - getTagById(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getTagById(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.getById(authUser, id); } @Patch(':id') updateTag( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: UpdateTagDto, ): Promise { @@ -46,18 +46,18 @@ export class TagController { } @Delete(':id') - deleteTag(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + deleteTag(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.remove(authUser, id); } @Get(':id/assets') - getTagAssets(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + getTagAssets(@AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { return this.service.getAssets(authUser, id); } @Put(':id/assets') tagAssets( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto, @Body() dto: AssetIdsDto, ): Promise { @@ -66,7 +66,7 @@ export class TagController { @Delete(':id/assets') untagAssets( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @Body() dto: AssetIdsDto, @Param() { id }: UUIDParamDto, ): Promise { diff --git a/server/src/immich/controllers/user.controller.ts b/server/src/immich/controllers/user.controller.ts index ad280eeaf..41e9c0641 100644 --- a/server/src/immich/controllers/user.controller.ts +++ b/server/src/immich/controllers/user.controller.ts @@ -15,7 +15,7 @@ import { } from '@nestjs/common'; import { UserService } from '@app/domain'; import { AdminRoute, Authenticated, PublicRoute } from '../decorators/authenticated.decorator'; -import { AuthUserDto, GetAuthUser } from '../decorators/auth-user.decorator'; +import { AuthUserDto, AuthUser } from '../decorators/auth-user.decorator'; import { CreateUserDto } from '@app/domain'; import { UpdateUserDto } from '@app/domain'; import { FileInterceptor } from '@nestjs/platform-express'; @@ -38,7 +38,7 @@ export class UserController { constructor(private service: UserService) {} @Get() - getAllUsers(@GetAuthUser() authUser: AuthUserDto, @Query('isAll') isAll: boolean): Promise { + getAllUsers(@AuthUser() authUser: AuthUserDto, @Query('isAll') isAll: boolean): Promise { return this.service.getAllUsers(authUser, isAll); } @@ -48,7 +48,7 @@ export class UserController { } @Get('me') - getMyUserInfo(@GetAuthUser() authUser: AuthUserDto): Promise { + getMyUserInfo(@AuthUser() authUser: AuthUserDto): Promise { return this.service.getUserInfo(authUser); } @@ -66,18 +66,18 @@ export class UserController { @AdminRoute() @Delete('/:userId') - deleteUser(@GetAuthUser() authUser: AuthUserDto, @Param() { userId }: UserIdDto): Promise { + deleteUser(@AuthUser() authUser: AuthUserDto, @Param() { userId }: UserIdDto): Promise { return this.service.deleteUser(authUser, userId); } @AdminRoute() @Post('/:userId/restore') - restoreUser(@GetAuthUser() authUser: AuthUserDto, @Param() { userId }: UserIdDto): Promise { + restoreUser(@AuthUser() authUser: AuthUserDto, @Param() { userId }: UserIdDto): Promise { return this.service.restoreUser(authUser, userId); } @Put() - updateUser(@GetAuthUser() authUser: AuthUserDto, @Body() updateUserDto: UpdateUserDto): Promise { + updateUser(@AuthUser() authUser: AuthUserDto, @Body() updateUserDto: UpdateUserDto): Promise { return this.service.updateUser(authUser, updateUserDto); } @@ -89,7 +89,7 @@ export class UserController { }) @Post('/profile-image') createProfileImage( - @GetAuthUser() authUser: AuthUserDto, + @AuthUser() authUser: AuthUserDto, @UploadedFile() fileInfo: Express.Multer.File, ): Promise { return this.service.createProfileImage(authUser, fileInfo); diff --git a/server/src/immich/decorators/auth-user.decorator.ts b/server/src/immich/decorators/auth-user.decorator.ts index 610a8536e..adda34dd5 100644 --- a/server/src/immich/decorators/auth-user.decorator.ts +++ b/server/src/immich/decorators/auth-user.decorator.ts @@ -8,7 +8,7 @@ export interface AuthRequest extends Request { user?: AuthUserDto; } -export const GetAuthUser = createParamDecorator((data, ctx: ExecutionContext): AuthUserDto => { +export const AuthUser = createParamDecorator((data, ctx: ExecutionContext): AuthUserDto => { return ctx.switchToHttp().getRequest<{ user: AuthUserDto }>().user; });