From a9fb1d435ad355dbbdc5ec0a413643712e0f968c Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Thu, 1 Jun 2023 22:19:25 -0400 Subject: [PATCH] refactor(server): use UUID dto in asset controller (#2641) * refactor: assetId => id * chore: open api * chore: remove unused dto * fix(web): assetId => id * fix: web test --- mobile/openapi/README.md | 10 +- mobile/openapi/doc/AssetApi.md | 50 +++---- mobile/openapi/lib/api/asset_api.dart | 76 +++++----- mobile/openapi/test/asset_api_test.dart | 10 +- .../src/api-v1/asset/asset.controller.ts | 43 +++--- .../src/api-v1/asset/dto/asset-id.dto.ts | 9 -- server/immich-openapi-specs.json | 20 +-- web/src/api/open-api/api.ts | 140 +++++++++--------- .../album-page/__tests__/album-card.spec.ts | 2 +- .../components/album-page/album-card.svelte | 2 +- .../asset-viewer/asset-viewer.svelte | 6 +- .../asset-viewer/detail-panel.svelte | 4 +- .../asset-viewer/photo-viewer.svelte | 2 +- .../photos-page/actions/archive-action.svelte | 2 +- .../actions/favorite-action.svelte | 2 +- .../sharedlinks-page/shared-link-card.svelte | 2 +- 16 files changed, 184 insertions(+), 196 deletions(-) delete mode 100644 server/apps/immich/src/api-v1/asset/dto/asset-id.dto.ts diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index e98d49f03..49755beac 100644 --- a/mobile/openapi/README.md +++ b/mobile/openapi/README.md @@ -95,25 +95,25 @@ Class | Method | HTTP request | Description *AssetApi* | [**checkExistingAssets**](doc//AssetApi.md#checkexistingassets) | **POST** /asset/exist | *AssetApi* | [**createAssetsSharedLink**](doc//AssetApi.md#createassetssharedlink) | **POST** /asset/shared-link | *AssetApi* | [**deleteAsset**](doc//AssetApi.md#deleteasset) | **DELETE** /asset | -*AssetApi* | [**downloadFile**](doc//AssetApi.md#downloadfile) | **GET** /asset/download/{assetId} | +*AssetApi* | [**downloadFile**](doc//AssetApi.md#downloadfile) | **GET** /asset/download/{id} | *AssetApi* | [**downloadFiles**](doc//AssetApi.md#downloadfiles) | **POST** /asset/download-files | *AssetApi* | [**downloadLibrary**](doc//AssetApi.md#downloadlibrary) | **GET** /asset/download-library | *AssetApi* | [**getAllAssets**](doc//AssetApi.md#getallassets) | **GET** /asset | *AssetApi* | [**getArchivedAssetCountByUserId**](doc//AssetApi.md#getarchivedassetcountbyuserid) | **GET** /asset/stat/archive | -*AssetApi* | [**getAssetById**](doc//AssetApi.md#getassetbyid) | **GET** /asset/assetById/{assetId} | +*AssetApi* | [**getAssetById**](doc//AssetApi.md#getassetbyid) | **GET** /asset/assetById/{id} | *AssetApi* | [**getAssetByTimeBucket**](doc//AssetApi.md#getassetbytimebucket) | **POST** /asset/time-bucket | *AssetApi* | [**getAssetCountByTimeBucket**](doc//AssetApi.md#getassetcountbytimebucket) | **POST** /asset/count-by-time-bucket | *AssetApi* | [**getAssetCountByUserId**](doc//AssetApi.md#getassetcountbyuserid) | **GET** /asset/count-by-user-id | *AssetApi* | [**getAssetSearchTerms**](doc//AssetApi.md#getassetsearchterms) | **GET** /asset/search-terms | -*AssetApi* | [**getAssetThumbnail**](doc//AssetApi.md#getassetthumbnail) | **GET** /asset/thumbnail/{assetId} | +*AssetApi* | [**getAssetThumbnail**](doc//AssetApi.md#getassetthumbnail) | **GET** /asset/thumbnail/{id} | *AssetApi* | [**getCuratedLocations**](doc//AssetApi.md#getcuratedlocations) | **GET** /asset/curated-locations | *AssetApi* | [**getCuratedObjects**](doc//AssetApi.md#getcuratedobjects) | **GET** /asset/curated-objects | *AssetApi* | [**getMapMarkers**](doc//AssetApi.md#getmapmarkers) | **GET** /asset/map-marker | *AssetApi* | [**getUserAssetsByDeviceId**](doc//AssetApi.md#getuserassetsbydeviceid) | **GET** /asset/{deviceId} | *AssetApi* | [**removeAssetsFromSharedLink**](doc//AssetApi.md#removeassetsfromsharedlink) | **PATCH** /asset/shared-link/remove | *AssetApi* | [**searchAsset**](doc//AssetApi.md#searchasset) | **POST** /asset/search | -*AssetApi* | [**serveFile**](doc//AssetApi.md#servefile) | **GET** /asset/file/{assetId} | -*AssetApi* | [**updateAsset**](doc//AssetApi.md#updateasset) | **PUT** /asset/{assetId} | +*AssetApi* | [**serveFile**](doc//AssetApi.md#servefile) | **GET** /asset/file/{id} | +*AssetApi* | [**updateAsset**](doc//AssetApi.md#updateasset) | **PUT** /asset/{id} | *AssetApi* | [**uploadFile**](doc//AssetApi.md#uploadfile) | **POST** /asset/upload | *AuthenticationApi* | [**adminSignUp**](doc//AuthenticationApi.md#adminsignup) | **POST** /auth/admin-sign-up | *AuthenticationApi* | [**changePassword**](doc//AuthenticationApi.md#changepassword) | **POST** /auth/change-password | diff --git a/mobile/openapi/doc/AssetApi.md b/mobile/openapi/doc/AssetApi.md index 9a1c07340..7ddea756c 100644 --- a/mobile/openapi/doc/AssetApi.md +++ b/mobile/openapi/doc/AssetApi.md @@ -15,25 +15,25 @@ Method | HTTP request | Description [**checkExistingAssets**](AssetApi.md#checkexistingassets) | **POST** /asset/exist | [**createAssetsSharedLink**](AssetApi.md#createassetssharedlink) | **POST** /asset/shared-link | [**deleteAsset**](AssetApi.md#deleteasset) | **DELETE** /asset | -[**downloadFile**](AssetApi.md#downloadfile) | **GET** /asset/download/{assetId} | +[**downloadFile**](AssetApi.md#downloadfile) | **GET** /asset/download/{id} | [**downloadFiles**](AssetApi.md#downloadfiles) | **POST** /asset/download-files | [**downloadLibrary**](AssetApi.md#downloadlibrary) | **GET** /asset/download-library | [**getAllAssets**](AssetApi.md#getallassets) | **GET** /asset | [**getArchivedAssetCountByUserId**](AssetApi.md#getarchivedassetcountbyuserid) | **GET** /asset/stat/archive | -[**getAssetById**](AssetApi.md#getassetbyid) | **GET** /asset/assetById/{assetId} | +[**getAssetById**](AssetApi.md#getassetbyid) | **GET** /asset/assetById/{id} | [**getAssetByTimeBucket**](AssetApi.md#getassetbytimebucket) | **POST** /asset/time-bucket | [**getAssetCountByTimeBucket**](AssetApi.md#getassetcountbytimebucket) | **POST** /asset/count-by-time-bucket | [**getAssetCountByUserId**](AssetApi.md#getassetcountbyuserid) | **GET** /asset/count-by-user-id | [**getAssetSearchTerms**](AssetApi.md#getassetsearchterms) | **GET** /asset/search-terms | -[**getAssetThumbnail**](AssetApi.md#getassetthumbnail) | **GET** /asset/thumbnail/{assetId} | +[**getAssetThumbnail**](AssetApi.md#getassetthumbnail) | **GET** /asset/thumbnail/{id} | [**getCuratedLocations**](AssetApi.md#getcuratedlocations) | **GET** /asset/curated-locations | [**getCuratedObjects**](AssetApi.md#getcuratedobjects) | **GET** /asset/curated-objects | [**getMapMarkers**](AssetApi.md#getmapmarkers) | **GET** /asset/map-marker | [**getUserAssetsByDeviceId**](AssetApi.md#getuserassetsbydeviceid) | **GET** /asset/{deviceId} | [**removeAssetsFromSharedLink**](AssetApi.md#removeassetsfromsharedlink) | **PATCH** /asset/shared-link/remove | [**searchAsset**](AssetApi.md#searchasset) | **POST** /asset/search | -[**serveFile**](AssetApi.md#servefile) | **GET** /asset/file/{assetId} | -[**updateAsset**](AssetApi.md#updateasset) | **PUT** /asset/{assetId} | +[**serveFile**](AssetApi.md#servefile) | **GET** /asset/file/{id} | +[**updateAsset**](AssetApi.md#updateasset) | **PUT** /asset/{id} | [**uploadFile**](AssetApi.md#uploadfile) | **POST** /asset/upload | @@ -378,7 +378,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **downloadFile** -> MultipartFile downloadFile(assetId, key) +> MultipartFile downloadFile(id, key) @@ -401,11 +401,11 @@ import 'package:openapi/api.dart'; //defaultApiClient.getAuthentication('bearer').setAccessToken(yourTokenGeneratorFunction); final api_instance = AssetApi(); -final assetId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | +final id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | final key = key_example; // String | try { - final result = api_instance.downloadFile(assetId, key); + final result = api_instance.downloadFile(id, key); print(result); } catch (e) { print('Exception when calling AssetApi->downloadFile: $e\n'); @@ -416,7 +416,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **assetId** | **String**| | + **id** | **String**| | **key** | **String**| | [optional] ### Return type @@ -669,7 +669,7 @@ This endpoint does not need any parameter. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **getAssetById** -> AssetResponseDto getAssetById(assetId, key) +> AssetResponseDto getAssetById(id, key) @@ -694,11 +694,11 @@ import 'package:openapi/api.dart'; //defaultApiClient.getAuthentication('bearer').setAccessToken(yourTokenGeneratorFunction); final api_instance = AssetApi(); -final assetId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | +final id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | final key = key_example; // String | try { - final result = api_instance.getAssetById(assetId, key); + final result = api_instance.getAssetById(id, key); print(result); } catch (e) { print('Exception when calling AssetApi->getAssetById: $e\n'); @@ -709,7 +709,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **assetId** | **String**| | + **id** | **String**| | **key** | **String**| | [optional] ### Return type @@ -940,7 +940,7 @@ This endpoint does not need any parameter. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **getAssetThumbnail** -> MultipartFile getAssetThumbnail(assetId, format, key) +> MultipartFile getAssetThumbnail(id, format, key) @@ -963,12 +963,12 @@ import 'package:openapi/api.dart'; //defaultApiClient.getAuthentication('bearer').setAccessToken(yourTokenGeneratorFunction); final api_instance = AssetApi(); -final assetId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | +final id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | final format = ; // ThumbnailFormat | final key = key_example; // String | try { - final result = api_instance.getAssetThumbnail(assetId, format, key); + final result = api_instance.getAssetThumbnail(id, format, key); print(result); } catch (e) { print('Exception when calling AssetApi->getAssetThumbnail: $e\n'); @@ -979,7 +979,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **assetId** | **String**| | + **id** | **String**| | **format** | [**ThumbnailFormat**](.md)| | [optional] **key** | **String**| | [optional] @@ -1329,7 +1329,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **serveFile** -> MultipartFile serveFile(assetId, isThumb, isWeb, key) +> MultipartFile serveFile(id, isThumb, isWeb, key) @@ -1352,13 +1352,13 @@ import 'package:openapi/api.dart'; //defaultApiClient.getAuthentication('bearer').setAccessToken(yourTokenGeneratorFunction); final api_instance = AssetApi(); -final assetId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | +final id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | final isThumb = true; // bool | final isWeb = true; // bool | final key = key_example; // String | try { - final result = api_instance.serveFile(assetId, isThumb, isWeb, key); + final result = api_instance.serveFile(id, isThumb, isWeb, key); print(result); } catch (e) { print('Exception when calling AssetApi->serveFile: $e\n'); @@ -1369,7 +1369,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **assetId** | **String**| | + **id** | **String**| | **isThumb** | **bool**| | [optional] **isWeb** | **bool**| | [optional] **key** | **String**| | [optional] @@ -1390,7 +1390,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **updateAsset** -> AssetResponseDto updateAsset(assetId, updateAssetDto) +> AssetResponseDto updateAsset(id, updateAssetDto) @@ -1415,11 +1415,11 @@ import 'package:openapi/api.dart'; //defaultApiClient.getAuthentication('bearer').setAccessToken(yourTokenGeneratorFunction); final api_instance = AssetApi(); -final assetId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | +final id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | final updateAssetDto = UpdateAssetDto(); // UpdateAssetDto | try { - final result = api_instance.updateAsset(assetId, updateAssetDto); + final result = api_instance.updateAsset(id, updateAssetDto); print(result); } catch (e) { print('Exception when calling AssetApi->updateAsset: $e\n'); @@ -1430,7 +1430,7 @@ try { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **assetId** | **String**| | + **id** | **String**| | **updateAssetDto** | [**UpdateAssetDto**](UpdateAssetDto.md)| | ### Return type diff --git a/mobile/openapi/lib/api/asset_api.dart b/mobile/openapi/lib/api/asset_api.dart index e27d4e455..ff272d4c2 100644 --- a/mobile/openapi/lib/api/asset_api.dart +++ b/mobile/openapi/lib/api/asset_api.dart @@ -332,16 +332,16 @@ class AssetApi { return null; } - /// Performs an HTTP 'GET /asset/download/{assetId}' operation and returns the [Response]. + /// Performs an HTTP 'GET /asset/download/{id}' operation and returns the [Response]. /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [String] key: - Future downloadFileWithHttpInfo(String assetId, { String? key, }) async { + Future downloadFileWithHttpInfo(String id, { String? key, }) async { // ignore: prefer_const_declarations - final path = r'/asset/download/{assetId}' - .replaceAll('{assetId}', assetId); + final path = r'/asset/download/{id}' + .replaceAll('{id}', id); // ignore: prefer_final_locals Object? postBody; @@ -370,11 +370,11 @@ class AssetApi { /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [String] key: - Future downloadFile(String assetId, { String? key, }) async { - final response = await downloadFileWithHttpInfo(assetId, key: key, ); + Future downloadFile(String id, { String? key, }) async { + final response = await downloadFileWithHttpInfo(id, key: key, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } @@ -650,13 +650,13 @@ class AssetApi { /// /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [String] key: - Future getAssetByIdWithHttpInfo(String assetId, { String? key, }) async { + Future getAssetByIdWithHttpInfo(String id, { String? key, }) async { // ignore: prefer_const_declarations - final path = r'/asset/assetById/{assetId}' - .replaceAll('{assetId}', assetId); + final path = r'/asset/assetById/{id}' + .replaceAll('{id}', id); // ignore: prefer_final_locals Object? postBody; @@ -687,11 +687,11 @@ class AssetApi { /// /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [String] key: - Future getAssetById(String assetId, { String? key, }) async { - final response = await getAssetByIdWithHttpInfo(assetId, key: key, ); + Future getAssetById(String id, { String? key, }) async { + final response = await getAssetByIdWithHttpInfo(id, key: key, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } @@ -887,18 +887,18 @@ class AssetApi { return null; } - /// Performs an HTTP 'GET /asset/thumbnail/{assetId}' operation and returns the [Response]. + /// Performs an HTTP 'GET /asset/thumbnail/{id}' operation and returns the [Response]. /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [ThumbnailFormat] format: /// /// * [String] key: - Future getAssetThumbnailWithHttpInfo(String assetId, { ThumbnailFormat? format, String? key, }) async { + Future getAssetThumbnailWithHttpInfo(String id, { ThumbnailFormat? format, String? key, }) async { // ignore: prefer_const_declarations - final path = r'/asset/thumbnail/{assetId}' - .replaceAll('{assetId}', assetId); + final path = r'/asset/thumbnail/{id}' + .replaceAll('{id}', id); // ignore: prefer_final_locals Object? postBody; @@ -930,13 +930,13 @@ class AssetApi { /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [ThumbnailFormat] format: /// /// * [String] key: - Future getAssetThumbnail(String assetId, { ThumbnailFormat? format, String? key, }) async { - final response = await getAssetThumbnailWithHttpInfo(assetId, format: format, key: key, ); + Future getAssetThumbnail(String id, { ThumbnailFormat? format, String? key, }) async { + final response = await getAssetThumbnailWithHttpInfo(id, format: format, key: key, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } @@ -1267,20 +1267,20 @@ class AssetApi { return null; } - /// Performs an HTTP 'GET /asset/file/{assetId}' operation and returns the [Response]. + /// Performs an HTTP 'GET /asset/file/{id}' operation and returns the [Response]. /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [bool] isThumb: /// /// * [bool] isWeb: /// /// * [String] key: - Future serveFileWithHttpInfo(String assetId, { bool? isThumb, bool? isWeb, String? key, }) async { + Future serveFileWithHttpInfo(String id, { bool? isThumb, bool? isWeb, String? key, }) async { // ignore: prefer_const_declarations - final path = r'/asset/file/{assetId}' - .replaceAll('{assetId}', assetId); + final path = r'/asset/file/{id}' + .replaceAll('{id}', id); // ignore: prefer_final_locals Object? postBody; @@ -1315,15 +1315,15 @@ class AssetApi { /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [bool] isThumb: /// /// * [bool] isWeb: /// /// * [String] key: - Future serveFile(String assetId, { bool? isThumb, bool? isWeb, String? key, }) async { - final response = await serveFileWithHttpInfo(assetId, isThumb: isThumb, isWeb: isWeb, key: key, ); + Future serveFile(String id, { bool? isThumb, bool? isWeb, String? key, }) async { + final response = await serveFileWithHttpInfo(id, isThumb: isThumb, isWeb: isWeb, key: key, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } @@ -1343,13 +1343,13 @@ class AssetApi { /// /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [UpdateAssetDto] updateAssetDto (required): - Future updateAssetWithHttpInfo(String assetId, UpdateAssetDto updateAssetDto,) async { + Future updateAssetWithHttpInfo(String id, UpdateAssetDto updateAssetDto,) async { // ignore: prefer_const_declarations - final path = r'/asset/{assetId}' - .replaceAll('{assetId}', assetId); + final path = r'/asset/{id}' + .replaceAll('{id}', id); // ignore: prefer_final_locals Object? postBody = updateAssetDto; @@ -1376,11 +1376,11 @@ class AssetApi { /// /// Parameters: /// - /// * [String] assetId (required): + /// * [String] id (required): /// /// * [UpdateAssetDto] updateAssetDto (required): - Future updateAsset(String assetId, UpdateAssetDto updateAssetDto,) async { - final response = await updateAssetWithHttpInfo(assetId, updateAssetDto,); + Future updateAsset(String id, UpdateAssetDto updateAssetDto,) async { + final response = await updateAssetWithHttpInfo(id, updateAssetDto,); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } diff --git a/mobile/openapi/test/asset_api_test.dart b/mobile/openapi/test/asset_api_test.dart index e5d50815c..79c74cc8e 100644 --- a/mobile/openapi/test/asset_api_test.dart +++ b/mobile/openapi/test/asset_api_test.dart @@ -53,7 +53,7 @@ void main() { // TODO }); - //Future downloadFile(String assetId, { String key }) async + //Future downloadFile(String id, { String key }) async test('test downloadFile', () async { // TODO }); @@ -84,7 +84,7 @@ void main() { // Get a single asset's information // - //Future getAssetById(String assetId, { String key }) async + //Future getAssetById(String id, { String key }) async test('test getAssetById', () async { // TODO }); @@ -109,7 +109,7 @@ void main() { // TODO }); - //Future getAssetThumbnail(String assetId, { ThumbnailFormat format, String key }) async + //Future getAssetThumbnail(String id, { ThumbnailFormat format, String key }) async test('test getAssetThumbnail', () async { // TODO }); @@ -146,14 +146,14 @@ void main() { // TODO }); - //Future serveFile(String assetId, { bool isThumb, bool isWeb, String key }) async + //Future serveFile(String id, { bool isThumb, bool isWeb, String key }) async test('test serveFile', () async { // TODO }); // Update an asset // - //Future updateAsset(String assetId, UpdateAssetDto updateAssetDto) async + //Future updateAsset(String id, UpdateAssetDto updateAssetDto) async test('test updateAsset', () async { // TODO }); diff --git a/server/apps/immich/src/api-v1/asset/asset.controller.ts b/server/apps/immich/src/api-v1/asset/asset.controller.ts index 82d9ea8ba..496b567ea 100644 --- a/server/apps/immich/src/api-v1/asset/asset.controller.ts +++ b/server/apps/immich/src/api-v1/asset/asset.controller.ts @@ -54,7 +54,7 @@ import FileNotEmptyValidator from '../validation/file-not-empty-validator'; import { RemoveAssetsDto } from '../album/dto/remove-assets.dto'; import { AssetBulkUploadCheckDto } from './dto/asset-check.dto'; import { AssetBulkUploadCheckResponseDto } from './response-dto/asset-check-response.dto'; -import { AssetIdDto } from './dto/asset-id.dto'; +import { UUIDParamDto } from '../../controllers/dto/uuid-param.dto'; import { DeviceIdDto } from './dto/device-id.dto'; import { handleDownload } from '../../app.utils'; @@ -114,14 +114,14 @@ export class AssetController { } @SharedLinkRoute() - @Get('/download/:assetId') + @Get('/download/:id') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) async downloadFile( @GetAuthUser() authUser: AuthUserDto, @Response({ passthrough: true }) res: Res, - @Param() { assetId }: AssetIdDto, + @Param() { id }: UUIDParamDto, ) { - return this.assetService.downloadFile(authUser, assetId).then(asStreamableFile); + return this.assetService.downloadFile(authUser, id).then(asStreamableFile); } @SharedLinkRoute() @@ -153,7 +153,7 @@ export class AssetController { } @SharedLinkRoute() - @Get('/file/:assetId') + @Get('/file/:id') @Header('Cache-Control', 'max-age=31536000') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) async serveFile( @@ -161,25 +161,25 @@ export class AssetController { @Headers() headers: Record, @Response({ passthrough: true }) res: Res, @Query(new ValidationPipe({ transform: true })) query: ServeFileDto, - @Param() { assetId }: AssetIdDto, + @Param() { id }: UUIDParamDto, ) { - await this.assetService.checkAssetsAccess(authUser, [assetId]); - return this.assetService.serveFile(authUser, assetId, query, res, headers); + await this.assetService.checkAssetsAccess(authUser, [id]); + return this.assetService.serveFile(authUser, id, query, res, headers); } @SharedLinkRoute() - @Get('/thumbnail/:assetId') + @Get('/thumbnail/:id') @Header('Cache-Control', 'max-age=31536000') @ApiOkResponse({ content: { 'application/octet-stream': { schema: { type: 'string', format: 'binary' } } } }) async getAssetThumbnail( @GetAuthUser() authUser: AuthUserDto, @Headers() headers: Record, @Response({ passthrough: true }) res: Res, - @Param() { assetId }: AssetIdDto, + @Param() { id }: UUIDParamDto, @Query(new ValidationPipe({ transform: true })) query: GetAssetThumbnailDto, ) { - await this.assetService.checkAssetsAccess(authUser, [assetId]); - return this.assetService.getAssetThumbnail(assetId, query, res, headers); + await this.assetService.checkAssetsAccess(authUser, [id]); + return this.assetService.getAssetThumbnail(id, query, res, headers); } @Get('/curated-objects') @@ -259,26 +259,23 @@ export class AssetController { * Get a single asset's information */ @SharedLinkRoute() - @Get('/assetById/:assetId') - async getAssetById( - @GetAuthUser() authUser: AuthUserDto, - @Param() { assetId }: AssetIdDto, - ): Promise { - await this.assetService.checkAssetsAccess(authUser, [assetId]); - return await this.assetService.getAssetById(authUser, assetId); + @Get('/assetById/:id') + async getAssetById(@GetAuthUser() authUser: AuthUserDto, @Param() { id }: UUIDParamDto): Promise { + await this.assetService.checkAssetsAccess(authUser, [id]); + return await this.assetService.getAssetById(authUser, id); } /** * Update an asset */ - @Put('/:assetId') + @Put('/:id') async updateAsset( @GetAuthUser() authUser: AuthUserDto, - @Param() { assetId }: AssetIdDto, + @Param() { id }: UUIDParamDto, @Body(ValidationPipe) dto: UpdateAssetDto, ): Promise { - await this.assetService.checkAssetsAccess(authUser, [assetId], true); - return await this.assetService.updateAsset(authUser, assetId, dto); + await this.assetService.checkAssetsAccess(authUser, [id], true); + return await this.assetService.updateAsset(authUser, id, dto); } @Delete('/') diff --git a/server/apps/immich/src/api-v1/asset/dto/asset-id.dto.ts b/server/apps/immich/src/api-v1/asset/dto/asset-id.dto.ts deleted file mode 100644 index 540487838..000000000 --- a/server/apps/immich/src/api-v1/asset/dto/asset-id.dto.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ApiProperty } from '@nestjs/swagger'; -import { IsNotEmpty, IsUUID } from 'class-validator'; - -export class AssetIdDto { - @IsNotEmpty() - @IsUUID('4') - @ApiProperty({ format: 'uuid' }) - assetId!: string; -} diff --git a/server/immich-openapi-specs.json b/server/immich-openapi-specs.json index 9faac4bc5..36a4dad1d 100644 --- a/server/immich-openapi-specs.json +++ b/server/immich-openapi-specs.json @@ -2801,12 +2801,12 @@ ] } }, - "/asset/download/{assetId}": { + "/asset/download/{id}": { "get": { "operationId": "downloadFile", "parameters": [ { - "name": "assetId", + "name": "id", "required": true, "in": "path", "schema": { @@ -2966,7 +2966,7 @@ ] } }, - "/asset/file/{assetId}": { + "/asset/file/{id}": { "get": { "operationId": "serveFile", "parameters": [ @@ -2989,7 +2989,7 @@ } }, { - "name": "assetId", + "name": "id", "required": true, "in": "path", "schema": { @@ -3035,12 +3035,12 @@ ] } }, - "/asset/thumbnail/{assetId}": { + "/asset/thumbnail/{id}": { "get": { "operationId": "getAssetThumbnail", "parameters": [ { - "name": "assetId", + "name": "id", "required": true, "in": "path", "schema": { @@ -3563,13 +3563,13 @@ ] } }, - "/asset/assetById/{assetId}": { + "/asset/assetById/{id}": { "get": { "operationId": "getAssetById", "description": "Get a single asset's information", "parameters": [ { - "name": "assetId", + "name": "id", "required": true, "in": "path", "schema": { @@ -3614,13 +3614,13 @@ ] } }, - "/asset/{assetId}": { + "/asset/{id}": { "put": { "operationId": "updateAsset", "description": "Update an asset", "parameters": [ { - "name": "assetId", + "name": "id", "required": true, "in": "path", "schema": { diff --git a/web/src/api/open-api/api.ts b/web/src/api/open-api/api.ts index b1aeb20cd..b777df42c 100644 --- a/web/src/api/open-api/api.ts +++ b/web/src/api/open-api/api.ts @@ -4847,16 +4847,16 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - downloadFile: async (assetId: string, key?: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'assetId' is not null or undefined - assertParamExists('downloadFile', 'assetId', assetId) - const localVarPath = `/asset/download/{assetId}` - .replace(`{${"assetId"}}`, encodeURIComponent(String(assetId))); + downloadFile: async (id: string, key?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('downloadFile', 'id', id) + const localVarPath = `/asset/download/{id}` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -5097,16 +5097,16 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration }, /** * Get a single asset\'s information - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getAssetById: async (assetId: string, key?: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'assetId' is not null or undefined - assertParamExists('getAssetById', 'assetId', assetId) - const localVarPath = `/asset/assetById/{assetId}` - .replace(`{${"assetId"}}`, encodeURIComponent(String(assetId))); + getAssetById: async (id: string, key?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('getAssetById', 'id', id) + const localVarPath = `/asset/assetById/{id}` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -5308,17 +5308,17 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {string} assetId + * @param {string} id * @param {ThumbnailFormat} [format] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getAssetThumbnail: async (assetId: string, format?: ThumbnailFormat, key?: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'assetId' is not null or undefined - assertParamExists('getAssetThumbnail', 'assetId', assetId) - const localVarPath = `/asset/thumbnail/{assetId}` - .replace(`{${"assetId"}}`, encodeURIComponent(String(assetId))); + getAssetThumbnail: async (id: string, format?: ThumbnailFormat, key?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('getAssetThumbnail', 'id', id) + const localVarPath = `/asset/thumbnail/{id}` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -5628,18 +5628,18 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {string} assetId + * @param {string} id * @param {boolean} [isThumb] * @param {boolean} [isWeb] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - serveFile: async (assetId: string, isThumb?: boolean, isWeb?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'assetId' is not null or undefined - assertParamExists('serveFile', 'assetId', assetId) - const localVarPath = `/asset/file/{assetId}` - .replace(`{${"assetId"}}`, encodeURIComponent(String(assetId))); + serveFile: async (id: string, isThumb?: boolean, isWeb?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('serveFile', 'id', id) + const localVarPath = `/asset/file/{id}` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -5685,18 +5685,18 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration }, /** * Update an asset - * @param {string} assetId + * @param {string} id * @param {UpdateAssetDto} updateAssetDto * @param {*} [options] Override http request option. * @throws {RequiredError} */ - updateAsset: async (assetId: string, updateAssetDto: UpdateAssetDto, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'assetId' is not null or undefined - assertParamExists('updateAsset', 'assetId', assetId) + updateAsset: async (id: string, updateAssetDto: UpdateAssetDto, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('updateAsset', 'id', id) // verify required parameter 'updateAssetDto' is not null or undefined assertParamExists('updateAsset', 'updateAssetDto', updateAssetDto) - const localVarPath = `/asset/{assetId}` - .replace(`{${"assetId"}}`, encodeURIComponent(String(assetId))); + const localVarPath = `/asset/{id}` + .replace(`{${"id"}}`, encodeURIComponent(String(id))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -5933,13 +5933,13 @@ export const AssetApiFp = function(configuration?: Configuration) { }, /** * - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async downloadFile(assetId: string, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.downloadFile(assetId, key, options); + async downloadFile(id: string, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.downloadFile(id, key, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -5990,13 +5990,13 @@ export const AssetApiFp = function(configuration?: Configuration) { }, /** * Get a single asset\'s information - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getAssetById(assetId: string, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetById(assetId, key, options); + async getAssetById(id: string, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetById(id, key, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -6039,14 +6039,14 @@ export const AssetApiFp = function(configuration?: Configuration) { }, /** * - * @param {string} assetId + * @param {string} id * @param {ThumbnailFormat} [format] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getAssetThumbnail(assetId: string, format?: ThumbnailFormat, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetThumbnail(assetId, format, key, options); + async getAssetThumbnail(id: string, format?: ThumbnailFormat, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetThumbnail(id, format, key, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -6112,26 +6112,26 @@ export const AssetApiFp = function(configuration?: Configuration) { }, /** * - * @param {string} assetId + * @param {string} id * @param {boolean} [isThumb] * @param {boolean} [isWeb] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async serveFile(assetId: string, isThumb?: boolean, isWeb?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.serveFile(assetId, isThumb, isWeb, key, options); + async serveFile(id: string, isThumb?: boolean, isWeb?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.serveFile(id, isThumb, isWeb, key, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** * Update an asset - * @param {string} assetId + * @param {string} id * @param {UpdateAssetDto} updateAssetDto * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async updateAsset(assetId: string, updateAssetDto: UpdateAssetDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateAsset(assetId, updateAssetDto, options); + async updateAsset(id: string, updateAssetDto: UpdateAssetDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateAsset(id, updateAssetDto, options); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -6225,13 +6225,13 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath }, /** * - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - downloadFile(assetId: string, key?: string, options?: any): AxiosPromise { - return localVarFp.downloadFile(assetId, key, options).then((request) => request(axios, basePath)); + downloadFile(id: string, key?: string, options?: any): AxiosPromise { + return localVarFp.downloadFile(id, key, options).then((request) => request(axios, basePath)); }, /** * @@ -6277,13 +6277,13 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath }, /** * Get a single asset\'s information - * @param {string} assetId + * @param {string} id * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getAssetById(assetId: string, key?: string, options?: any): AxiosPromise { - return localVarFp.getAssetById(assetId, key, options).then((request) => request(axios, basePath)); + getAssetById(id: string, key?: string, options?: any): AxiosPromise { + return localVarFp.getAssetById(id, key, options).then((request) => request(axios, basePath)); }, /** * @@ -6321,14 +6321,14 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath }, /** * - * @param {string} assetId + * @param {string} id * @param {ThumbnailFormat} [format] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getAssetThumbnail(assetId: string, format?: ThumbnailFormat, key?: string, options?: any): AxiosPromise { - return localVarFp.getAssetThumbnail(assetId, format, key, options).then((request) => request(axios, basePath)); + getAssetThumbnail(id: string, format?: ThumbnailFormat, key?: string, options?: any): AxiosPromise { + return localVarFp.getAssetThumbnail(id, format, key, options).then((request) => request(axios, basePath)); }, /** * @@ -6387,25 +6387,25 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath }, /** * - * @param {string} assetId + * @param {string} id * @param {boolean} [isThumb] * @param {boolean} [isWeb] * @param {string} [key] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - serveFile(assetId: string, isThumb?: boolean, isWeb?: boolean, key?: string, options?: any): AxiosPromise { - return localVarFp.serveFile(assetId, isThumb, isWeb, key, options).then((request) => request(axios, basePath)); + serveFile(id: string, isThumb?: boolean, isWeb?: boolean, key?: string, options?: any): AxiosPromise { + return localVarFp.serveFile(id, isThumb, isWeb, key, options).then((request) => request(axios, basePath)); }, /** * Update an asset - * @param {string} assetId + * @param {string} id * @param {UpdateAssetDto} updateAssetDto * @param {*} [options] Override http request option. * @throws {RequiredError} */ - updateAsset(assetId: string, updateAssetDto: UpdateAssetDto, options?: any): AxiosPromise { - return localVarFp.updateAsset(assetId, updateAssetDto, options).then((request) => request(axios, basePath)); + updateAsset(id: string, updateAssetDto: UpdateAssetDto, options?: any): AxiosPromise { + return localVarFp.updateAsset(id, updateAssetDto, options).then((request) => request(axios, basePath)); }, /** * @@ -6541,7 +6541,7 @@ export interface AssetApiDownloadFileRequest { * @type {string} * @memberof AssetApiDownloadFile */ - readonly assetId: string + readonly id: string /** * @@ -6653,7 +6653,7 @@ export interface AssetApiGetAssetByIdRequest { * @type {string} * @memberof AssetApiGetAssetById */ - readonly assetId: string + readonly id: string /** * @@ -6702,7 +6702,7 @@ export interface AssetApiGetAssetThumbnailRequest { * @type {string} * @memberof AssetApiGetAssetThumbnail */ - readonly assetId: string + readonly id: string /** * @@ -6807,7 +6807,7 @@ export interface AssetApiServeFileRequest { * @type {string} * @memberof AssetApiServeFile */ - readonly assetId: string + readonly id: string /** * @@ -6842,7 +6842,7 @@ export interface AssetApiUpdateAssetRequest { * @type {string} * @memberof AssetApiUpdateAsset */ - readonly assetId: string + readonly id: string /** * @@ -7038,7 +7038,7 @@ export class AssetApi extends BaseAPI { * @memberof AssetApi */ public downloadFile(requestParameters: AssetApiDownloadFileRequest, options?: AxiosRequestConfig) { - return AssetApiFp(this.configuration).downloadFile(requestParameters.assetId, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); + return AssetApiFp(this.configuration).downloadFile(requestParameters.id, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); } /** @@ -7092,7 +7092,7 @@ export class AssetApi extends BaseAPI { * @memberof AssetApi */ public getAssetById(requestParameters: AssetApiGetAssetByIdRequest, options?: AxiosRequestConfig) { - return AssetApiFp(this.configuration).getAssetById(requestParameters.assetId, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); + return AssetApiFp(this.configuration).getAssetById(requestParameters.id, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); } /** @@ -7145,7 +7145,7 @@ export class AssetApi extends BaseAPI { * @memberof AssetApi */ public getAssetThumbnail(requestParameters: AssetApiGetAssetThumbnailRequest, options?: AxiosRequestConfig) { - return AssetApiFp(this.configuration).getAssetThumbnail(requestParameters.assetId, requestParameters.format, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); + return AssetApiFp(this.configuration).getAssetThumbnail(requestParameters.id, requestParameters.format, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); } /** @@ -7220,7 +7220,7 @@ export class AssetApi extends BaseAPI { * @memberof AssetApi */ public serveFile(requestParameters: AssetApiServeFileRequest, options?: AxiosRequestConfig) { - return AssetApiFp(this.configuration).serveFile(requestParameters.assetId, requestParameters.isThumb, requestParameters.isWeb, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); + return AssetApiFp(this.configuration).serveFile(requestParameters.id, requestParameters.isThumb, requestParameters.isWeb, requestParameters.key, options).then((request) => request(this.axios, this.basePath)); } /** @@ -7231,7 +7231,7 @@ export class AssetApi extends BaseAPI { * @memberof AssetApi */ public updateAsset(requestParameters: AssetApiUpdateAssetRequest, options?: AxiosRequestConfig) { - return AssetApiFp(this.configuration).updateAsset(requestParameters.assetId, requestParameters.updateAssetDto, options).then((request) => request(this.axios, this.basePath)); + return AssetApiFp(this.configuration).updateAsset(requestParameters.id, requestParameters.updateAssetDto, options).then((request) => request(this.axios, this.basePath)); } /** diff --git a/web/src/lib/components/album-page/__tests__/album-card.spec.ts b/web/src/lib/components/album-page/__tests__/album-card.spec.ts index f4b6227e9..1270e2f1b 100644 --- a/web/src/lib/components/album-page/__tests__/album-card.spec.ts +++ b/web/src/lib/components/album-page/__tests__/album-card.spec.ts @@ -87,7 +87,7 @@ describe('AlbumCard component', () => { expect(apiMock.assetApi.getAssetThumbnail).toHaveBeenCalledTimes(1); expect(apiMock.assetApi.getAssetThumbnail).toHaveBeenCalledWith( { - assetId: 'thumbnailIdOne', + id: 'thumbnailIdOne', format: ThumbnailFormat.Jpeg }, { responseType: 'blob' } diff --git a/web/src/lib/components/album-page/album-card.svelte b/web/src/lib/components/album-page/album-card.svelte index 0fc24ce34..8249810ca 100644 --- a/web/src/lib/components/album-page/album-card.svelte +++ b/web/src/lib/components/album-page/album-card.svelte @@ -37,7 +37,7 @@ const { data } = await api.assetApi.getAssetThumbnail( { - assetId: thubmnailId, + id: thubmnailId, format: ThumbnailFormat.Jpeg }, { diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index 7cdf6683d..2d153a315 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -138,7 +138,7 @@ $downloadAssets[imageFileName] = 0; const { data, status } = await api.assetApi.downloadFile( - { assetId, key }, + { id: assetId, key }, { responseType: 'blob', onDownloadProgress: (progressEvent) => { @@ -216,7 +216,7 @@ const toggleFavorite = async () => { const { data } = await api.assetApi.updateAsset({ - assetId: asset.id, + id: asset.id, updateAssetDto: { isFavorite: !asset.isFavorite } @@ -269,7 +269,7 @@ const toggleArchive = async () => { try { const { data } = await api.assetApi.updateAsset({ - assetId: asset.id, + id: asset.id, updateAssetDto: { isArchived: !asset.isArchived } diff --git a/web/src/lib/components/asset-viewer/detail-panel.svelte b/web/src/lib/components/asset-viewer/detail-panel.svelte index 6656fcf6b..c2257fb2e 100644 --- a/web/src/lib/components/asset-viewer/detail-panel.svelte +++ b/web/src/lib/components/asset-viewer/detail-panel.svelte @@ -22,7 +22,7 @@ $: { // Get latest description from server if (asset.id) { - api.assetApi.getAssetById({ assetId: asset.id }).then((res) => { + api.assetApi.getAssetById({ id: asset.id }).then((res) => { people = res.data?.people || []; textarea.value = res.data?.exifInfo?.description || ''; }); @@ -66,7 +66,7 @@ dispatch('description-focus-out'); try { await api.assetApi.updateAsset({ - assetId: asset.id, + id: asset.id, updateAssetDto: { description: description } diff --git a/web/src/lib/components/asset-viewer/photo-viewer.svelte b/web/src/lib/components/asset-viewer/photo-viewer.svelte index 7422c1047..a9cb7f0e6 100644 --- a/web/src/lib/components/asset-viewer/photo-viewer.svelte +++ b/web/src/lib/components/asset-viewer/photo-viewer.svelte @@ -29,7 +29,7 @@ const loadAssetData = async () => { try { const { data } = await api.assetApi.serveFile( - { assetId: asset.id, isThumb: false, isWeb: true, key: publicSharedKey }, + { id: asset.id, isThumb: false, isWeb: true, key: publicSharedKey }, { responseType: 'blob' } diff --git a/web/src/lib/components/photos-page/actions/archive-action.svelte b/web/src/lib/components/photos-page/actions/archive-action.svelte index 7c5e5f598..9f485f6cc 100644 --- a/web/src/lib/components/photos-page/actions/archive-action.svelte +++ b/web/src/lib/components/photos-page/actions/archive-action.svelte @@ -28,7 +28,7 @@ for (const asset of getAssets()) { if (asset.isArchived !== isArchived) { - api.assetApi.updateAsset({ assetId: asset.id, updateAssetDto: { isArchived } }); + api.assetApi.updateAsset({ id: asset.id, updateAssetDto: { isArchived } }); onAssetArchive(asset, isArchived); cnt = cnt + 1; diff --git a/web/src/lib/components/photos-page/actions/favorite-action.svelte b/web/src/lib/components/photos-page/actions/favorite-action.svelte index e7e768ebe..7ce532444 100644 --- a/web/src/lib/components/photos-page/actions/favorite-action.svelte +++ b/web/src/lib/components/photos-page/actions/favorite-action.svelte @@ -28,7 +28,7 @@ let cnt = 0; for (const asset of getAssets()) { if (asset.isFavorite !== isFavorite) { - api.assetApi.updateAsset({ assetId: asset.id, updateAssetDto: { isFavorite } }); + api.assetApi.updateAsset({ id: asset.id, updateAssetDto: { isFavorite } }); onAssetFavorite(asset, isFavorite); cnt = cnt + 1; } diff --git a/web/src/lib/components/sharedlinks-page/shared-link-card.svelte b/web/src/lib/components/sharedlinks-page/shared-link-card.svelte index 6c1f7a7dc..fc9ab4806 100644 --- a/web/src/lib/components/sharedlinks-page/shared-link-card.svelte +++ b/web/src/lib/components/sharedlinks-page/shared-link-card.svelte @@ -30,7 +30,7 @@ assetId = link.assets[0].id; } - const { data } = await api.assetApi.getAssetById({ assetId }); + const { data } = await api.assetApi.getAssetById({ id: assetId }); return data; };