瀏覽代碼

fix(web): empty album is not auto deleted (#2283)

* fix(web): empty album is not auto deleted

* regenerate api

* fix test
Alex 2 年之前
父節點
當前提交
975d23ee5c
共有 42 個文件被更改,包括 108 次插入824 次删除
  1. 0 10
      mobile/openapi/doc/APIKeyApi.md
  2. 0 24
      mobile/openapi/doc/AlbumApi.md
  3. 0 34
      mobile/openapi/doc/AssetApi.md
  4. 0 10
      mobile/openapi/doc/AuthenticationApi.md
  5. 0 2
      mobile/openapi/doc/DeviceInfoApi.md
  6. 0 4
      mobile/openapi/doc/JobApi.md
  7. 0 10
      mobile/openapi/doc/OAuthApi.md
  8. 0 6
      mobile/openapi/doc/SearchApi.md
  9. 0 8
      mobile/openapi/doc/ServerInfoApi.md
  10. 0 10
      mobile/openapi/doc/ShareApi.md
  11. 0 8
      mobile/openapi/doc/SystemConfigApi.md
  12. 0 10
      mobile/openapi/doc/TagApi.md
  13. 0 20
      mobile/openapi/doc/UserApi.md
  14. 12 70
      mobile/openapi/lib/api/album_api.dart
  15. 5 28
      mobile/openapi/lib/api/api_key_api.dart
  16. 17 92
      mobile/openapi/lib/api/asset_api.dart
  17. 5 26
      mobile/openapi/lib/api/authentication_api.dart
  18. 1 6
      mobile/openapi/lib/api/device_info_api.dart
  19. 2 10
      mobile/openapi/lib/api/job_api.dart
  20. 5 26
      mobile/openapi/lib/api/o_auth_api.dart
  21. 3 14
      mobile/openapi/lib/api/search_api.dart
  22. 4 16
      mobile/openapi/lib/api/server_info_api.dart
  23. 5 28
      mobile/openapi/lib/api/share_api.dart
  24. 4 18
      mobile/openapi/lib/api/system_config_api.dart
  25. 5 28
      mobile/openapi/lib/api/tag_api.dart
  26. 10 58
      mobile/openapi/lib/api/user_api.dart
  27. 0 24
      mobile/openapi/test/album_api_test.dart
  28. 0 10
      mobile/openapi/test/api_key_api_test.dart
  29. 0 34
      mobile/openapi/test/asset_api_test.dart
  30. 0 10
      mobile/openapi/test/authentication_api_test.dart
  31. 0 2
      mobile/openapi/test/device_info_api_test.dart
  32. 0 4
      mobile/openapi/test/job_api_test.dart
  33. 0 10
      mobile/openapi/test/o_auth_api_test.dart
  34. 0 6
      mobile/openapi/test/search_api_test.dart
  35. 0 8
      mobile/openapi/test/server_info_api_test.dart
  36. 0 10
      mobile/openapi/test/share_api_test.dart
  37. 0 8
      mobile/openapi/test/system_config_api_test.dart
  38. 0 10
      mobile/openapi/test/tag_api_test.dart
  39. 0 20
      mobile/openapi/test/user_api_test.dart
  40. 0 78
      server/immich-openapi-specs.json
  41. 28 9
      web/src/routes/(user)/albums/+page.svelte
  42. 2 5
      web/src/routes/(user)/albums/albums.bloc.ts

+ 0 - 10
mobile/openapi/doc/APIKeyApi.md

@@ -21,8 +21,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -74,8 +72,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -126,8 +122,6 @@ void (empty response body)
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -179,8 +173,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -228,8 +220,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 24
mobile/openapi/doc/AlbumApi.md

@@ -28,8 +28,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -85,8 +83,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -140,8 +136,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -193,8 +187,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -246,8 +238,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -298,8 +288,6 @@ void (empty response body)
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -357,8 +345,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -406,8 +392,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -461,8 +445,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -516,8 +498,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -571,8 +551,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -625,8 +603,6 @@ void (empty response body)
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 34
mobile/openapi/doc/AssetApi.md

@@ -40,8 +40,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -203,8 +201,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -256,8 +252,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -309,8 +303,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -364,8 +356,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -535,8 +525,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -639,8 +627,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -692,8 +678,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -745,8 +729,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -794,8 +776,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -843,8 +823,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -900,8 +878,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -949,8 +925,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -1051,8 +1025,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -1106,8 +1078,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -1159,8 +1129,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -1273,8 +1241,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 10
mobile/openapi/doc/AuthenticationApi.md

@@ -21,8 +21,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -64,8 +62,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -117,8 +113,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -160,8 +154,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -209,8 +201,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 2
mobile/openapi/doc/DeviceInfoApi.md

@@ -17,8 +17,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 4
mobile/openapi/doc/JobApi.md

@@ -18,8 +18,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -67,8 +65,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 10
mobile/openapi/doc/OAuthApi.md

@@ -21,8 +21,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -64,8 +62,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -107,8 +103,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -160,8 +154,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -198,8 +190,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 6
mobile/openapi/doc/SearchApi.md

@@ -19,8 +19,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -68,8 +66,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -117,8 +113,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 8
mobile/openapi/doc/ServerInfoApi.md

@@ -20,8 +20,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -69,8 +67,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -108,8 +104,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -157,8 +151,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 10
mobile/openapi/doc/ShareApi.md

@@ -21,8 +21,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -76,8 +74,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -125,8 +121,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -178,8 +172,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -231,8 +223,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 8
mobile/openapi/doc/SystemConfigApi.md

@@ -20,8 +20,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -69,8 +67,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -118,8 +114,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -167,8 +161,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 10
mobile/openapi/doc/TagApi.md

@@ -21,8 +21,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -74,8 +72,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -126,8 +122,6 @@ void (empty response body)
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -175,8 +169,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -228,8 +220,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 0 - 20
mobile/openapi/doc/UserApi.md

@@ -26,8 +26,6 @@ Method | HTTP request | Description
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -79,8 +77,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -132,8 +128,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -185,8 +179,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -238,8 +230,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -287,8 +277,6 @@ This endpoint does not need any parameter.
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -340,8 +328,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -393,8 +379,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -436,8 +420,6 @@ No authorization required
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';
@@ -489,8 +471,6 @@ Name | Type | Description  | Notes
 
 
 
 
 
 
-
-
 ### Example
 ### Example
 ```dart
 ```dart
 import 'package:openapi/api.dart';
 import 'package:openapi/api.dart';

+ 12 - 70
mobile/openapi/lib/api/album_api.dart

@@ -16,10 +16,7 @@ class AlbumApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /album/{albumId}/assets' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -57,8 +54,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -81,10 +76,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /album/{albumId}/users' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -116,8 +108,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -138,10 +128,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /album' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAlbumDto] createAlbumDto (required):
   /// * [CreateAlbumDto] createAlbumDto (required):
@@ -170,8 +157,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAlbumDto] createAlbumDto (required):
   /// * [CreateAlbumDto] createAlbumDto (required):
@@ -190,10 +175,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /album/create-shared-link' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAlbumShareLinkDto] createAlbumShareLinkDto (required):
   /// * [CreateAlbumShareLinkDto] createAlbumShareLinkDto (required):
@@ -222,8 +204,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAlbumShareLinkDto] createAlbumShareLinkDto (required):
   /// * [CreateAlbumShareLinkDto] createAlbumShareLinkDto (required):
@@ -242,10 +222,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /album/{albumId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -275,8 +252,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -287,10 +262,7 @@ class AlbumApi {
     }
     }
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /album/{albumId}/download' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -336,8 +308,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -362,9 +332,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /album/count-by-user-id' operation and returns the [Response].
   Future<Response> getAlbumCountByUserIdWithHttpInfo() async {
   Future<Response> getAlbumCountByUserIdWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/album/count-by-user-id';
     final path = r'/album/count-by-user-id';
@@ -390,7 +358,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<AlbumCountResponseDto?> getAlbumCountByUserId() async {
   Future<AlbumCountResponseDto?> getAlbumCountByUserId() async {
     final response = await getAlbumCountByUserIdWithHttpInfo();
     final response = await getAlbumCountByUserIdWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -406,10 +373,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /album/{albumId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -445,8 +409,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -467,10 +429,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /album' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] shared:
   /// * [bool] shared:
@@ -509,8 +468,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] shared:
   /// * [bool] shared:
@@ -535,10 +492,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /album/{albumId}/assets' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -570,8 +524,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -592,10 +544,7 @@ class AlbumApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /album/{albumId}/user/{userId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -628,8 +577,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -642,10 +589,7 @@ class AlbumApi {
     }
     }
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PATCH /album/{albumId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):
@@ -677,8 +621,6 @@ class AlbumApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] albumId (required):
   /// * [String] albumId (required):

+ 5 - 28
mobile/openapi/lib/api/api_key_api.dart

@@ -16,10 +16,7 @@ class APIKeyApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /api-key' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
   /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
@@ -48,8 +45,6 @@ class APIKeyApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
   /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
@@ -68,10 +63,7 @@ class APIKeyApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /api-key/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -101,8 +93,6 @@ class APIKeyApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -113,10 +103,7 @@ class APIKeyApi {
     }
     }
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /api-key/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -146,8 +133,6 @@ class APIKeyApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -166,9 +151,7 @@ class APIKeyApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /api-key' operation and returns the [Response].
   Future<Response> getKeysWithHttpInfo() async {
   Future<Response> getKeysWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/api-key';
     final path = r'/api-key';
@@ -194,7 +177,6 @@ class APIKeyApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<APIKeyResponseDto>?> getKeys() async {
   Future<List<APIKeyResponseDto>?> getKeys() async {
     final response = await getKeysWithHttpInfo();
     final response = await getKeysWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -213,10 +195,7 @@ class APIKeyApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /api-key/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -248,8 +227,6 @@ class APIKeyApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):

+ 17 - 92
mobile/openapi/lib/api/asset_api.dart

@@ -16,10 +16,7 @@ class AssetApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PATCH /asset/shared-link/add' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [AddAssetsDto] addAssetsDto (required):
   /// * [AddAssetsDto] addAssetsDto (required):
@@ -54,8 +51,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [AddAssetsDto] addAssetsDto (required):
   /// * [AddAssetsDto] addAssetsDto (required):
@@ -188,10 +183,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/shared-link' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAssetsShareLinkDto] createAssetsShareLinkDto (required):
   /// * [CreateAssetsShareLinkDto] createAssetsShareLinkDto (required):
@@ -220,8 +212,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateAssetsShareLinkDto] createAssetsShareLinkDto (required):
   /// * [CreateAssetsShareLinkDto] createAssetsShareLinkDto (required):
@@ -240,10 +230,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /asset' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [DeleteAssetDto] deleteAssetDto (required):
   /// * [DeleteAssetDto] deleteAssetDto (required):
@@ -272,8 +259,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [DeleteAssetDto] deleteAssetDto (required):
   /// * [DeleteAssetDto] deleteAssetDto (required):
@@ -295,10 +280,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /asset/download/{assetId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -334,8 +316,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -356,10 +336,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/download-files' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [DownloadFilesDto] downloadFilesDto (required):
   /// * [DownloadFilesDto] downloadFilesDto (required):
@@ -394,8 +371,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [DownloadFilesDto] downloadFilesDto (required):
   /// * [DownloadFilesDto] downloadFilesDto (required):
@@ -569,9 +544,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /asset/stat/archive' operation and returns the [Response].
   Future<Response> getArchivedAssetCountByUserIdWithHttpInfo() async {
   Future<Response> getArchivedAssetCountByUserIdWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/asset/stat/archive';
     final path = r'/asset/stat/archive';
@@ -597,7 +570,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<AssetCountByUserIdResponseDto?> getArchivedAssetCountByUserId() async {
   Future<AssetCountByUserIdResponseDto?> getArchivedAssetCountByUserId() async {
     final response = await getArchivedAssetCountByUserIdWithHttpInfo();
     final response = await getArchivedAssetCountByUserIdWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -674,10 +646,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/time-bucket' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [GetAssetByTimeBucketDto] getAssetByTimeBucketDto (required):
   /// * [GetAssetByTimeBucketDto] getAssetByTimeBucketDto (required):
@@ -706,8 +675,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [GetAssetByTimeBucketDto] getAssetByTimeBucketDto (required):
   /// * [GetAssetByTimeBucketDto] getAssetByTimeBucketDto (required):
@@ -729,10 +696,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/count-by-time-bucket' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [GetAssetCountByTimeBucketDto] getAssetCountByTimeBucketDto (required):
   /// * [GetAssetCountByTimeBucketDto] getAssetCountByTimeBucketDto (required):
@@ -761,8 +725,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [GetAssetCountByTimeBucketDto] getAssetCountByTimeBucketDto (required):
   /// * [GetAssetCountByTimeBucketDto] getAssetCountByTimeBucketDto (required):
@@ -781,9 +743,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /asset/count-by-user-id' operation and returns the [Response].
   Future<Response> getAssetCountByUserIdWithHttpInfo() async {
   Future<Response> getAssetCountByUserIdWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/asset/count-by-user-id';
     final path = r'/asset/count-by-user-id';
@@ -809,7 +769,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<AssetCountByUserIdResponseDto?> getAssetCountByUserId() async {
   Future<AssetCountByUserIdResponseDto?> getAssetCountByUserId() async {
     final response = await getAssetCountByUserIdWithHttpInfo();
     final response = await getAssetCountByUserIdWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -825,9 +784,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /asset/search-terms' operation and returns the [Response].
   Future<Response> getAssetSearchTermsWithHttpInfo() async {
   Future<Response> getAssetSearchTermsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/asset/search-terms';
     final path = r'/asset/search-terms';
@@ -853,7 +810,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<String>?> getAssetSearchTerms() async {
   Future<List<String>?> getAssetSearchTerms() async {
     final response = await getAssetSearchTermsWithHttpInfo();
     final response = await getAssetSearchTermsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -872,10 +828,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /asset/thumbnail/{assetId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -916,8 +869,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -940,9 +891,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /asset/curated-locations' operation and returns the [Response].
   Future<Response> getCuratedLocationsWithHttpInfo() async {
   Future<Response> getCuratedLocationsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/asset/curated-locations';
     final path = r'/asset/curated-locations';
@@ -968,7 +917,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<CuratedLocationsResponseDto>?> getCuratedLocations() async {
   Future<List<CuratedLocationsResponseDto>?> getCuratedLocations() async {
     final response = await getCuratedLocationsWithHttpInfo();
     final response = await getCuratedLocationsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -987,9 +935,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /asset/curated-objects' operation and returns the [Response].
   Future<Response> getCuratedObjectsWithHttpInfo() async {
   Future<Response> getCuratedObjectsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/asset/curated-objects';
     final path = r'/asset/curated-objects';
@@ -1015,7 +961,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<CuratedObjectsResponseDto>?> getCuratedObjects() async {
   Future<List<CuratedObjectsResponseDto>?> getCuratedObjects() async {
     final response = await getCuratedObjectsWithHttpInfo();
     final response = await getCuratedObjectsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -1090,10 +1035,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PATCH /asset/shared-link/remove' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [RemoveAssetsDto] removeAssetsDto (required):
   /// * [RemoveAssetsDto] removeAssetsDto (required):
@@ -1128,8 +1070,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [RemoveAssetsDto] removeAssetsDto (required):
   /// * [RemoveAssetsDto] removeAssetsDto (required):
@@ -1150,10 +1090,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/search' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SearchAssetDto] searchAssetDto (required):
   /// * [SearchAssetDto] searchAssetDto (required):
@@ -1182,8 +1119,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SearchAssetDto] searchAssetDto (required):
   /// * [SearchAssetDto] searchAssetDto (required):
@@ -1205,10 +1140,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /asset/file/{assetId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -1254,8 +1186,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] assetId (required):
   /// * [String] assetId (required):
@@ -1337,10 +1267,7 @@ class AssetApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /asset/upload' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [AssetTypeEnum] assetType (required):
   /// * [AssetTypeEnum] assetType (required):
@@ -1452,8 +1379,6 @@ class AssetApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [AssetTypeEnum] assetType (required):
   /// * [AssetTypeEnum] assetType (required):

+ 5 - 26
mobile/openapi/lib/api/authentication_api.dart

@@ -16,10 +16,7 @@ class AuthenticationApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /auth/admin-sign-up' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SignUpDto] signUpDto (required):
   /// * [SignUpDto] signUpDto (required):
@@ -48,8 +45,6 @@ class AuthenticationApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SignUpDto] signUpDto (required):
   /// * [SignUpDto] signUpDto (required):
@@ -68,10 +63,7 @@ class AuthenticationApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /auth/change-password' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [ChangePasswordDto] changePasswordDto (required):
   /// * [ChangePasswordDto] changePasswordDto (required):
@@ -100,8 +92,6 @@ class AuthenticationApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [ChangePasswordDto] changePasswordDto (required):
   /// * [ChangePasswordDto] changePasswordDto (required):
@@ -120,10 +110,7 @@ class AuthenticationApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /auth/login' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [LoginCredentialDto] loginCredentialDto (required):
   /// * [LoginCredentialDto] loginCredentialDto (required):
@@ -152,8 +139,6 @@ class AuthenticationApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [LoginCredentialDto] loginCredentialDto (required):
   /// * [LoginCredentialDto] loginCredentialDto (required):
@@ -172,9 +157,7 @@ class AuthenticationApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'POST /auth/logout' operation and returns the [Response].
   Future<Response> logoutWithHttpInfo() async {
   Future<Response> logoutWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/auth/logout';
     final path = r'/auth/logout';
@@ -200,7 +183,6 @@ class AuthenticationApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<LogoutResponseDto?> logout() async {
   Future<LogoutResponseDto?> logout() async {
     final response = await logoutWithHttpInfo();
     final response = await logoutWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -216,9 +198,7 @@ class AuthenticationApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'POST /auth/validateToken' operation and returns the [Response].
   Future<Response> validateAccessTokenWithHttpInfo() async {
   Future<Response> validateAccessTokenWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/auth/validateToken';
     final path = r'/auth/validateToken';
@@ -244,7 +224,6 @@ class AuthenticationApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<ValidateAccessTokenResponseDto?> validateAccessToken() async {
   Future<ValidateAccessTokenResponseDto?> validateAccessToken() async {
     final response = await validateAccessTokenWithHttpInfo();
     final response = await validateAccessTokenWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {

+ 1 - 6
mobile/openapi/lib/api/device_info_api.dart

@@ -16,10 +16,7 @@ class DeviceInfoApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /device-info' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):
   /// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):
@@ -48,8 +45,6 @@ class DeviceInfoApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):
   /// * [UpsertDeviceInfoDto] upsertDeviceInfoDto (required):

+ 2 - 10
mobile/openapi/lib/api/job_api.dart

@@ -16,9 +16,7 @@ class JobApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /jobs' operation and returns the [Response].
   Future<Response> getAllJobsStatusWithHttpInfo() async {
   Future<Response> getAllJobsStatusWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/jobs';
     final path = r'/jobs';
@@ -44,7 +42,6 @@ class JobApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<AllJobStatusResponseDto?> getAllJobsStatus() async {
   Future<AllJobStatusResponseDto?> getAllJobsStatus() async {
     final response = await getAllJobsStatusWithHttpInfo();
     final response = await getAllJobsStatusWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -60,10 +57,7 @@ class JobApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /jobs/{jobId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [JobName] jobId (required):
   /// * [JobName] jobId (required):
@@ -95,8 +89,6 @@ class JobApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [JobName] jobId (required):
   /// * [JobName] jobId (required):

+ 5 - 26
mobile/openapi/lib/api/o_auth_api.dart

@@ -16,10 +16,7 @@ class OAuthApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /oauth/callback' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
@@ -48,8 +45,6 @@ class OAuthApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
@@ -68,10 +63,7 @@ class OAuthApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /oauth/config' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthConfigDto] oAuthConfigDto (required):
   /// * [OAuthConfigDto] oAuthConfigDto (required):
@@ -100,8 +92,6 @@ class OAuthApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthConfigDto] oAuthConfigDto (required):
   /// * [OAuthConfigDto] oAuthConfigDto (required):
@@ -120,10 +110,7 @@ class OAuthApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /oauth/link' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
@@ -152,8 +139,6 @@ class OAuthApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
   /// * [OAuthCallbackDto] oAuthCallbackDto (required):
@@ -172,9 +157,7 @@ class OAuthApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /oauth/mobile-redirect' operation and returns the [Response].
   Future<Response> mobileRedirectWithHttpInfo() async {
   Future<Response> mobileRedirectWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/oauth/mobile-redirect';
     final path = r'/oauth/mobile-redirect';
@@ -200,7 +183,6 @@ class OAuthApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<void> mobileRedirect() async {
   Future<void> mobileRedirect() async {
     final response = await mobileRedirectWithHttpInfo();
     final response = await mobileRedirectWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -208,9 +190,7 @@ class OAuthApi {
     }
     }
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'POST /oauth/unlink' operation and returns the [Response].
   Future<Response> unlinkWithHttpInfo() async {
   Future<Response> unlinkWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/oauth/unlink';
     final path = r'/oauth/unlink';
@@ -236,7 +216,6 @@ class OAuthApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<UserResponseDto?> unlink() async {
   Future<UserResponseDto?> unlink() async {
     final response = await unlinkWithHttpInfo();
     final response = await unlinkWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {

+ 3 - 14
mobile/openapi/lib/api/search_api.dart

@@ -16,9 +16,7 @@ class SearchApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /search/explore' operation and returns the [Response].
   Future<Response> getExploreDataWithHttpInfo() async {
   Future<Response> getExploreDataWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/search/explore';
     final path = r'/search/explore';
@@ -44,7 +42,6 @@ class SearchApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<SearchExploreResponseDto>?> getExploreData() async {
   Future<List<SearchExploreResponseDto>?> getExploreData() async {
     final response = await getExploreDataWithHttpInfo();
     final response = await getExploreDataWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -63,9 +60,7 @@ class SearchApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /search/config' operation and returns the [Response].
   Future<Response> getSearchConfigWithHttpInfo() async {
   Future<Response> getSearchConfigWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/search/config';
     final path = r'/search/config';
@@ -91,7 +86,6 @@ class SearchApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<SearchConfigResponseDto?> getSearchConfig() async {
   Future<SearchConfigResponseDto?> getSearchConfig() async {
     final response = await getSearchConfigWithHttpInfo();
     final response = await getSearchConfigWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -107,10 +101,7 @@ class SearchApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /search' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] q:
   /// * [String] q:
@@ -213,8 +204,6 @@ class SearchApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] q:
   /// * [String] q:

+ 4 - 16
mobile/openapi/lib/api/server_info_api.dart

@@ -16,9 +16,7 @@ class ServerInfoApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /server-info' operation and returns the [Response].
   Future<Response> getServerInfoWithHttpInfo() async {
   Future<Response> getServerInfoWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/server-info';
     final path = r'/server-info';
@@ -44,7 +42,6 @@ class ServerInfoApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<ServerInfoResponseDto?> getServerInfo() async {
   Future<ServerInfoResponseDto?> getServerInfo() async {
     final response = await getServerInfoWithHttpInfo();
     final response = await getServerInfoWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -60,9 +57,7 @@ class ServerInfoApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /server-info/version' operation and returns the [Response].
   Future<Response> getServerVersionWithHttpInfo() async {
   Future<Response> getServerVersionWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/server-info/version';
     final path = r'/server-info/version';
@@ -88,7 +83,6 @@ class ServerInfoApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<ServerVersionReponseDto?> getServerVersion() async {
   Future<ServerVersionReponseDto?> getServerVersion() async {
     final response = await getServerVersionWithHttpInfo();
     final response = await getServerVersionWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -104,9 +98,7 @@ class ServerInfoApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /server-info/stats' operation and returns the [Response].
   Future<Response> getStatsWithHttpInfo() async {
   Future<Response> getStatsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/server-info/stats';
     final path = r'/server-info/stats';
@@ -132,7 +124,6 @@ class ServerInfoApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<ServerStatsResponseDto?> getStats() async {
   Future<ServerStatsResponseDto?> getStats() async {
     final response = await getStatsWithHttpInfo();
     final response = await getStatsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -148,9 +139,7 @@ class ServerInfoApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /server-info/ping' operation and returns the [Response].
   Future<Response> pingServerWithHttpInfo() async {
   Future<Response> pingServerWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/server-info/ping';
     final path = r'/server-info/ping';
@@ -176,7 +165,6 @@ class ServerInfoApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<ServerPingResponse?> pingServer() async {
   Future<ServerPingResponse?> pingServer() async {
     final response = await pingServerWithHttpInfo();
     final response = await pingServerWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {

+ 5 - 28
mobile/openapi/lib/api/share_api.dart

@@ -16,10 +16,7 @@ class ShareApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PATCH /share/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -51,8 +48,6 @@ class ShareApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -73,9 +68,7 @@ class ShareApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /share' operation and returns the [Response].
   Future<Response> getAllSharedLinksWithHttpInfo() async {
   Future<Response> getAllSharedLinksWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/share';
     final path = r'/share';
@@ -101,7 +94,6 @@ class ShareApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<SharedLinkResponseDto>?> getAllSharedLinks() async {
   Future<List<SharedLinkResponseDto>?> getAllSharedLinks() async {
     final response = await getAllSharedLinksWithHttpInfo();
     final response = await getAllSharedLinksWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -120,10 +112,7 @@ class ShareApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /share/me' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] key:
   /// * [String] key:
@@ -156,8 +145,6 @@ class ShareApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] key:
   /// * [String] key:
@@ -176,10 +163,7 @@ class ShareApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /share/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -209,8 +193,6 @@ class ShareApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -229,10 +211,7 @@ class ShareApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /share/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -262,8 +241,6 @@ class ShareApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):

+ 4 - 18
mobile/openapi/lib/api/system_config_api.dart

@@ -16,9 +16,7 @@ class SystemConfigApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /system-config' operation and returns the [Response].
   Future<Response> getConfigWithHttpInfo() async {
   Future<Response> getConfigWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/system-config';
     final path = r'/system-config';
@@ -44,7 +42,6 @@ class SystemConfigApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<SystemConfigDto?> getConfig() async {
   Future<SystemConfigDto?> getConfig() async {
     final response = await getConfigWithHttpInfo();
     final response = await getConfigWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -60,9 +57,7 @@ class SystemConfigApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /system-config/defaults' operation and returns the [Response].
   Future<Response> getDefaultsWithHttpInfo() async {
   Future<Response> getDefaultsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/system-config/defaults';
     final path = r'/system-config/defaults';
@@ -88,7 +83,6 @@ class SystemConfigApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<SystemConfigDto?> getDefaults() async {
   Future<SystemConfigDto?> getDefaults() async {
     final response = await getDefaultsWithHttpInfo();
     final response = await getDefaultsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -104,9 +98,7 @@ class SystemConfigApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /system-config/storage-template-options' operation and returns the [Response].
   Future<Response> getStorageTemplateOptionsWithHttpInfo() async {
   Future<Response> getStorageTemplateOptionsWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/system-config/storage-template-options';
     final path = r'/system-config/storage-template-options';
@@ -132,7 +124,6 @@ class SystemConfigApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<SystemConfigTemplateStorageOptionDto?> getStorageTemplateOptions() async {
   Future<SystemConfigTemplateStorageOptionDto?> getStorageTemplateOptions() async {
     final response = await getStorageTemplateOptionsWithHttpInfo();
     final response = await getStorageTemplateOptionsWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -148,10 +139,7 @@ class SystemConfigApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /system-config' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SystemConfigDto] systemConfigDto (required):
   /// * [SystemConfigDto] systemConfigDto (required):
@@ -180,8 +168,6 @@ class SystemConfigApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [SystemConfigDto] systemConfigDto (required):
   /// * [SystemConfigDto] systemConfigDto (required):

+ 5 - 28
mobile/openapi/lib/api/tag_api.dart

@@ -16,10 +16,7 @@ class TagApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /tag' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateTagDto] createTagDto (required):
   /// * [CreateTagDto] createTagDto (required):
@@ -48,8 +45,6 @@ class TagApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateTagDto] createTagDto (required):
   /// * [CreateTagDto] createTagDto (required):
@@ -68,10 +63,7 @@ class TagApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /tag/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -101,8 +93,6 @@ class TagApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -113,9 +103,7 @@ class TagApi {
     }
     }
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /tag' operation and returns the [Response].
   Future<Response> findAllWithHttpInfo() async {
   Future<Response> findAllWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/tag';
     final path = r'/tag';
@@ -141,7 +129,6 @@ class TagApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<List<TagResponseDto>?> findAll() async {
   Future<List<TagResponseDto>?> findAll() async {
     final response = await findAllWithHttpInfo();
     final response = await findAllWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -160,10 +147,7 @@ class TagApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /tag/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -193,8 +177,6 @@ class TagApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -213,10 +195,7 @@ class TagApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PATCH /tag/{id}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):
@@ -248,8 +227,6 @@ class TagApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] id (required):
   /// * [String] id (required):

+ 10 - 58
mobile/openapi/lib/api/user_api.dart

@@ -16,10 +16,7 @@ class UserApi {
 
 
   final ApiClient apiClient;
   final ApiClient apiClient;
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /user/profile-image' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [MultipartFile] file (required):
   /// * [MultipartFile] file (required):
@@ -58,8 +55,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [MultipartFile] file (required):
   /// * [MultipartFile] file (required):
@@ -78,10 +73,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /user' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateUserDto] createUserDto (required):
   /// * [CreateUserDto] createUserDto (required):
@@ -110,8 +102,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [CreateUserDto] createUserDto (required):
   /// * [CreateUserDto] createUserDto (required):
@@ -130,10 +120,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'DELETE /user/{userId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -163,8 +150,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -183,10 +168,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /user' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] isAll (required):
   /// * [bool] isAll (required):
@@ -217,8 +199,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] isAll (required):
   /// * [bool] isAll (required):
@@ -240,9 +220,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
+  /// Performs an HTTP 'GET /user/me' operation and returns the [Response].
   Future<Response> getMyUserInfoWithHttpInfo() async {
   Future<Response> getMyUserInfoWithHttpInfo() async {
     // ignore: prefer_const_declarations
     // ignore: prefer_const_declarations
     final path = r'/user/me';
     final path = r'/user/me';
@@ -268,7 +246,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
   Future<UserResponseDto?> getMyUserInfo() async {
   Future<UserResponseDto?> getMyUserInfo() async {
     final response = await getMyUserInfoWithHttpInfo();
     final response = await getMyUserInfoWithHttpInfo();
     if (response.statusCode >= HttpStatus.badRequest) {
     if (response.statusCode >= HttpStatus.badRequest) {
@@ -284,10 +261,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /user/profile-image/{userId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -317,8 +291,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -337,10 +309,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /user/info/{userId}' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -370,8 +339,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -390,10 +357,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'GET /user/count' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] admin:
   /// * [bool] admin:
@@ -426,8 +390,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [bool] admin:
   /// * [bool] admin:
@@ -446,10 +408,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'POST /user/{userId}/restore' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -479,8 +438,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [String] userId (required):
   /// * [String] userId (required):
@@ -499,10 +456,7 @@ class UserApi {
     return null;
     return null;
   }
   }
 
 
-  /// 
-  ///
-  /// Note: This method returns the HTTP [Response].
-  ///
+  /// Performs an HTTP 'PUT /user' operation and returns the [Response].
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [UpdateUserDto] updateUserDto (required):
   /// * [UpdateUserDto] updateUserDto (required):
@@ -531,8 +485,6 @@ class UserApi {
     );
     );
   }
   }
 
 
-  /// 
-  ///
   /// Parameters:
   /// Parameters:
   ///
   ///
   /// * [UpdateUserDto] updateUserDto (required):
   /// * [UpdateUserDto] updateUserDto (required):

+ 0 - 24
mobile/openapi/test/album_api_test.dart

@@ -17,85 +17,61 @@ void main() {
   // final instance = AlbumApi();
   // final instance = AlbumApi();
 
 
   group('tests for AlbumApi', () {
   group('tests for AlbumApi', () {
-    // 
-    //
     //Future<AddAssetsResponseDto> addAssetsToAlbum(String albumId, AddAssetsDto addAssetsDto, { String key }) async
     //Future<AddAssetsResponseDto> addAssetsToAlbum(String albumId, AddAssetsDto addAssetsDto, { String key }) async
     test('test addAssetsToAlbum', () async {
     test('test addAssetsToAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumResponseDto> addUsersToAlbum(String albumId, AddUsersDto addUsersDto) async
     //Future<AlbumResponseDto> addUsersToAlbum(String albumId, AddUsersDto addUsersDto) async
     test('test addUsersToAlbum', () async {
     test('test addUsersToAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumResponseDto> createAlbum(CreateAlbumDto createAlbumDto) async
     //Future<AlbumResponseDto> createAlbum(CreateAlbumDto createAlbumDto) async
     test('test createAlbum', () async {
     test('test createAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SharedLinkResponseDto> createAlbumSharedLink(CreateAlbumShareLinkDto createAlbumShareLinkDto) async
     //Future<SharedLinkResponseDto> createAlbumSharedLink(CreateAlbumShareLinkDto createAlbumShareLinkDto) async
     test('test createAlbumSharedLink', () async {
     test('test createAlbumSharedLink', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future deleteAlbum(String albumId) async
     //Future deleteAlbum(String albumId) async
     test('test deleteAlbum', () async {
     test('test deleteAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<MultipartFile> downloadArchive(String albumId, { String name, num skip, String key }) async
     //Future<MultipartFile> downloadArchive(String albumId, { String name, num skip, String key }) async
     test('test downloadArchive', () async {
     test('test downloadArchive', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumCountResponseDto> getAlbumCountByUserId() async
     //Future<AlbumCountResponseDto> getAlbumCountByUserId() async
     test('test getAlbumCountByUserId', () async {
     test('test getAlbumCountByUserId', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumResponseDto> getAlbumInfo(String albumId, { String key }) async
     //Future<AlbumResponseDto> getAlbumInfo(String albumId, { String key }) async
     test('test getAlbumInfo', () async {
     test('test getAlbumInfo', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<AlbumResponseDto>> getAllAlbums({ bool shared, String assetId }) async
     //Future<List<AlbumResponseDto>> getAllAlbums({ bool shared, String assetId }) async
     test('test getAllAlbums', () async {
     test('test getAllAlbums', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumResponseDto> removeAssetFromAlbum(String albumId, RemoveAssetsDto removeAssetsDto) async
     //Future<AlbumResponseDto> removeAssetFromAlbum(String albumId, RemoveAssetsDto removeAssetsDto) async
     test('test removeAssetFromAlbum', () async {
     test('test removeAssetFromAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future removeUserFromAlbum(String albumId, String userId) async
     //Future removeUserFromAlbum(String albumId, String userId) async
     test('test removeUserFromAlbum', () async {
     test('test removeUserFromAlbum', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AlbumResponseDto> updateAlbumInfo(String albumId, UpdateAlbumDto updateAlbumDto) async
     //Future<AlbumResponseDto> updateAlbumInfo(String albumId, UpdateAlbumDto updateAlbumDto) async
     test('test updateAlbumInfo', () async {
     test('test updateAlbumInfo', () async {
       // TODO
       // TODO

+ 0 - 10
mobile/openapi/test/api_key_api_test.dart

@@ -17,36 +17,26 @@ void main() {
   // final instance = APIKeyApi();
   // final instance = APIKeyApi();
 
 
   group('tests for APIKeyApi', () {
   group('tests for APIKeyApi', () {
-    // 
-    //
     //Future<APIKeyCreateResponseDto> createKey(APIKeyCreateDto aPIKeyCreateDto) async
     //Future<APIKeyCreateResponseDto> createKey(APIKeyCreateDto aPIKeyCreateDto) async
     test('test createKey', () async {
     test('test createKey', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future deleteKey(String id) async
     //Future deleteKey(String id) async
     test('test deleteKey', () async {
     test('test deleteKey', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<APIKeyResponseDto> getKey(String id) async
     //Future<APIKeyResponseDto> getKey(String id) async
     test('test getKey', () async {
     test('test getKey', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<APIKeyResponseDto>> getKeys() async
     //Future<List<APIKeyResponseDto>> getKeys() async
     test('test getKeys', () async {
     test('test getKeys', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<APIKeyResponseDto> updateKey(String id, APIKeyUpdateDto aPIKeyUpdateDto) async
     //Future<APIKeyResponseDto> updateKey(String id, APIKeyUpdateDto aPIKeyUpdateDto) async
     test('test updateKey', () async {
     test('test updateKey', () async {
       // TODO
       // TODO

+ 0 - 34
mobile/openapi/test/asset_api_test.dart

@@ -17,8 +17,6 @@ void main() {
   // final instance = AssetApi();
   // final instance = AssetApi();
 
 
   group('tests for AssetApi', () {
   group('tests for AssetApi', () {
-    // 
-    //
     //Future<SharedLinkResponseDto> addAssetsToSharedLink(AddAssetsDto addAssetsDto, { String key }) async
     //Future<SharedLinkResponseDto> addAssetsToSharedLink(AddAssetsDto addAssetsDto, { String key }) async
     test('test addAssetsToSharedLink', () async {
     test('test addAssetsToSharedLink', () async {
       // TODO
       // TODO
@@ -38,29 +36,21 @@ void main() {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SharedLinkResponseDto> createAssetsSharedLink(CreateAssetsShareLinkDto createAssetsShareLinkDto) async
     //Future<SharedLinkResponseDto> createAssetsSharedLink(CreateAssetsShareLinkDto createAssetsShareLinkDto) async
     test('test createAssetsSharedLink', () async {
     test('test createAssetsSharedLink', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<DeleteAssetResponseDto>> deleteAsset(DeleteAssetDto deleteAssetDto) async
     //Future<List<DeleteAssetResponseDto>> deleteAsset(DeleteAssetDto deleteAssetDto) async
     test('test deleteAsset', () async {
     test('test deleteAsset', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<MultipartFile> downloadFile(String assetId, { String key }) async
     //Future<MultipartFile> downloadFile(String assetId, { String key }) async
     test('test downloadFile', () async {
     test('test downloadFile', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<MultipartFile> downloadFiles(DownloadFilesDto downloadFilesDto, { String key }) async
     //Future<MultipartFile> downloadFiles(DownloadFilesDto downloadFilesDto, { String key }) async
     test('test downloadFiles', () async {
     test('test downloadFiles', () async {
       // TODO
       // TODO
@@ -80,8 +70,6 @@ void main() {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AssetCountByUserIdResponseDto> getArchivedAssetCountByUserId() async
     //Future<AssetCountByUserIdResponseDto> getArchivedAssetCountByUserId() async
     test('test getArchivedAssetCountByUserId', () async {
     test('test getArchivedAssetCountByUserId', () async {
       // TODO
       // TODO
@@ -94,50 +82,36 @@ void main() {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<AssetResponseDto>> getAssetByTimeBucket(GetAssetByTimeBucketDto getAssetByTimeBucketDto) async
     //Future<List<AssetResponseDto>> getAssetByTimeBucket(GetAssetByTimeBucketDto getAssetByTimeBucketDto) async
     test('test getAssetByTimeBucket', () async {
     test('test getAssetByTimeBucket', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AssetCountByTimeBucketResponseDto> getAssetCountByTimeBucket(GetAssetCountByTimeBucketDto getAssetCountByTimeBucketDto) async
     //Future<AssetCountByTimeBucketResponseDto> getAssetCountByTimeBucket(GetAssetCountByTimeBucketDto getAssetCountByTimeBucketDto) async
     test('test getAssetCountByTimeBucket', () async {
     test('test getAssetCountByTimeBucket', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AssetCountByUserIdResponseDto> getAssetCountByUserId() async
     //Future<AssetCountByUserIdResponseDto> getAssetCountByUserId() async
     test('test getAssetCountByUserId', () async {
     test('test getAssetCountByUserId', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<String>> getAssetSearchTerms() async
     //Future<List<String>> getAssetSearchTerms() async
     test('test getAssetSearchTerms', () async {
     test('test getAssetSearchTerms', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<MultipartFile> getAssetThumbnail(String assetId, { ThumbnailFormat format, String key }) async
     //Future<MultipartFile> getAssetThumbnail(String assetId, { ThumbnailFormat format, String key }) async
     test('test getAssetThumbnail', () async {
     test('test getAssetThumbnail', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<CuratedLocationsResponseDto>> getCuratedLocations() async
     //Future<List<CuratedLocationsResponseDto>> getCuratedLocations() async
     test('test getCuratedLocations', () async {
     test('test getCuratedLocations', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<CuratedObjectsResponseDto>> getCuratedObjects() async
     //Future<List<CuratedObjectsResponseDto>> getCuratedObjects() async
     test('test getCuratedObjects', () async {
     test('test getCuratedObjects', () async {
       // TODO
       // TODO
@@ -150,22 +124,16 @@ void main() {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SharedLinkResponseDto> removeAssetsFromSharedLink(RemoveAssetsDto removeAssetsDto, { String key }) async
     //Future<SharedLinkResponseDto> removeAssetsFromSharedLink(RemoveAssetsDto removeAssetsDto, { String key }) async
     test('test removeAssetsFromSharedLink', () async {
     test('test removeAssetsFromSharedLink', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<AssetResponseDto>> searchAsset(SearchAssetDto searchAssetDto) async
     //Future<List<AssetResponseDto>> searchAsset(SearchAssetDto searchAssetDto) async
     test('test searchAsset', () async {
     test('test searchAsset', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<MultipartFile> serveFile(String assetId, { bool isThumb, bool isWeb, String key }) async
     //Future<MultipartFile> serveFile(String assetId, { bool isThumb, bool isWeb, String key }) async
     test('test serveFile', () async {
     test('test serveFile', () async {
       // TODO
       // TODO
@@ -178,8 +146,6 @@ void main() {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<AssetFileUploadResponseDto> uploadFile(AssetTypeEnum assetType, MultipartFile assetData, String deviceAssetId, String deviceId, String fileCreatedAt, String fileModifiedAt, bool isFavorite, String fileExtension, { String key, MultipartFile livePhotoData, bool isArchived, bool isVisible, String duration }) async
     //Future<AssetFileUploadResponseDto> uploadFile(AssetTypeEnum assetType, MultipartFile assetData, String deviceAssetId, String deviceId, String fileCreatedAt, String fileModifiedAt, bool isFavorite, String fileExtension, { String key, MultipartFile livePhotoData, bool isArchived, bool isVisible, String duration }) async
     test('test uploadFile', () async {
     test('test uploadFile', () async {
       // TODO
       // TODO

+ 0 - 10
mobile/openapi/test/authentication_api_test.dart

@@ -17,36 +17,26 @@ void main() {
   // final instance = AuthenticationApi();
   // final instance = AuthenticationApi();
 
 
   group('tests for AuthenticationApi', () {
   group('tests for AuthenticationApi', () {
-    // 
-    //
     //Future<AdminSignupResponseDto> adminSignUp(SignUpDto signUpDto) async
     //Future<AdminSignupResponseDto> adminSignUp(SignUpDto signUpDto) async
     test('test adminSignUp', () async {
     test('test adminSignUp', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> changePassword(ChangePasswordDto changePasswordDto) async
     //Future<UserResponseDto> changePassword(ChangePasswordDto changePasswordDto) async
     test('test changePassword', () async {
     test('test changePassword', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<LoginResponseDto> login(LoginCredentialDto loginCredentialDto) async
     //Future<LoginResponseDto> login(LoginCredentialDto loginCredentialDto) async
     test('test login', () async {
     test('test login', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<LogoutResponseDto> logout() async
     //Future<LogoutResponseDto> logout() async
     test('test logout', () async {
     test('test logout', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<ValidateAccessTokenResponseDto> validateAccessToken() async
     //Future<ValidateAccessTokenResponseDto> validateAccessToken() async
     test('test validateAccessToken', () async {
     test('test validateAccessToken', () async {
       // TODO
       // TODO

+ 0 - 2
mobile/openapi/test/device_info_api_test.dart

@@ -17,8 +17,6 @@ void main() {
   // final instance = DeviceInfoApi();
   // final instance = DeviceInfoApi();
 
 
   group('tests for DeviceInfoApi', () {
   group('tests for DeviceInfoApi', () {
-    // 
-    //
     //Future<DeviceInfoResponseDto> upsertDeviceInfo(UpsertDeviceInfoDto upsertDeviceInfoDto) async
     //Future<DeviceInfoResponseDto> upsertDeviceInfo(UpsertDeviceInfoDto upsertDeviceInfoDto) async
     test('test upsertDeviceInfo', () async {
     test('test upsertDeviceInfo', () async {
       // TODO
       // TODO

+ 0 - 4
mobile/openapi/test/job_api_test.dart

@@ -17,15 +17,11 @@ void main() {
   // final instance = JobApi();
   // final instance = JobApi();
 
 
   group('tests for JobApi', () {
   group('tests for JobApi', () {
-    // 
-    //
     //Future<AllJobStatusResponseDto> getAllJobsStatus() async
     //Future<AllJobStatusResponseDto> getAllJobsStatus() async
     test('test getAllJobsStatus', () async {
     test('test getAllJobsStatus', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<JobStatusDto> sendJobCommand(JobName jobId, JobCommandDto jobCommandDto) async
     //Future<JobStatusDto> sendJobCommand(JobName jobId, JobCommandDto jobCommandDto) async
     test('test sendJobCommand', () async {
     test('test sendJobCommand', () async {
       // TODO
       // TODO

+ 0 - 10
mobile/openapi/test/o_auth_api_test.dart

@@ -17,36 +17,26 @@ void main() {
   // final instance = OAuthApi();
   // final instance = OAuthApi();
 
 
   group('tests for OAuthApi', () {
   group('tests for OAuthApi', () {
-    // 
-    //
     //Future<LoginResponseDto> callback(OAuthCallbackDto oAuthCallbackDto) async
     //Future<LoginResponseDto> callback(OAuthCallbackDto oAuthCallbackDto) async
     test('test callback', () async {
     test('test callback', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<OAuthConfigResponseDto> generateConfig(OAuthConfigDto oAuthConfigDto) async
     //Future<OAuthConfigResponseDto> generateConfig(OAuthConfigDto oAuthConfigDto) async
     test('test generateConfig', () async {
     test('test generateConfig', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> link(OAuthCallbackDto oAuthCallbackDto) async
     //Future<UserResponseDto> link(OAuthCallbackDto oAuthCallbackDto) async
     test('test link', () async {
     test('test link', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future mobileRedirect() async
     //Future mobileRedirect() async
     test('test mobileRedirect', () async {
     test('test mobileRedirect', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> unlink() async
     //Future<UserResponseDto> unlink() async
     test('test unlink', () async {
     test('test unlink', () async {
       // TODO
       // TODO

+ 0 - 6
mobile/openapi/test/search_api_test.dart

@@ -17,22 +17,16 @@ void main() {
   // final instance = SearchApi();
   // final instance = SearchApi();
 
 
   group('tests for SearchApi', () {
   group('tests for SearchApi', () {
-    // 
-    //
     //Future<List<SearchExploreResponseDto>> getExploreData() async
     //Future<List<SearchExploreResponseDto>> getExploreData() async
     test('test getExploreData', () async {
     test('test getExploreData', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SearchConfigResponseDto> getSearchConfig() async
     //Future<SearchConfigResponseDto> getSearchConfig() async
     test('test getSearchConfig', () async {
     test('test getSearchConfig', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SearchResponseDto> search({ String q, String query, bool clip, String type, bool isFavorite, bool isArchived, String exifInfoPeriodCity, String exifInfoPeriodState, String exifInfoPeriodCountry, String exifInfoPeriodMake, String exifInfoPeriodModel, List<String> smartInfoPeriodObjects, List<String> smartInfoPeriodTags, bool recent, bool motion }) async
     //Future<SearchResponseDto> search({ String q, String query, bool clip, String type, bool isFavorite, bool isArchived, String exifInfoPeriodCity, String exifInfoPeriodState, String exifInfoPeriodCountry, String exifInfoPeriodMake, String exifInfoPeriodModel, List<String> smartInfoPeriodObjects, List<String> smartInfoPeriodTags, bool recent, bool motion }) async
     test('test search', () async {
     test('test search', () async {
       // TODO
       // TODO

+ 0 - 8
mobile/openapi/test/server_info_api_test.dart

@@ -17,29 +17,21 @@ void main() {
   // final instance = ServerInfoApi();
   // final instance = ServerInfoApi();
 
 
   group('tests for ServerInfoApi', () {
   group('tests for ServerInfoApi', () {
-    // 
-    //
     //Future<ServerInfoResponseDto> getServerInfo() async
     //Future<ServerInfoResponseDto> getServerInfo() async
     test('test getServerInfo', () async {
     test('test getServerInfo', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<ServerVersionReponseDto> getServerVersion() async
     //Future<ServerVersionReponseDto> getServerVersion() async
     test('test getServerVersion', () async {
     test('test getServerVersion', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<ServerStatsResponseDto> getStats() async
     //Future<ServerStatsResponseDto> getStats() async
     test('test getStats', () async {
     test('test getStats', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<ServerPingResponse> pingServer() async
     //Future<ServerPingResponse> pingServer() async
     test('test pingServer', () async {
     test('test pingServer', () async {
       // TODO
       // TODO

+ 0 - 10
mobile/openapi/test/share_api_test.dart

@@ -17,36 +17,26 @@ void main() {
   // final instance = ShareApi();
   // final instance = ShareApi();
 
 
   group('tests for ShareApi', () {
   group('tests for ShareApi', () {
-    // 
-    //
     //Future<SharedLinkResponseDto> editSharedLink(String id, EditSharedLinkDto editSharedLinkDto) async
     //Future<SharedLinkResponseDto> editSharedLink(String id, EditSharedLinkDto editSharedLinkDto) async
     test('test editSharedLink', () async {
     test('test editSharedLink', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<SharedLinkResponseDto>> getAllSharedLinks() async
     //Future<List<SharedLinkResponseDto>> getAllSharedLinks() async
     test('test getAllSharedLinks', () async {
     test('test getAllSharedLinks', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SharedLinkResponseDto> getMySharedLink({ String key }) async
     //Future<SharedLinkResponseDto> getMySharedLink({ String key }) async
     test('test getMySharedLink', () async {
     test('test getMySharedLink', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SharedLinkResponseDto> getSharedLinkById(String id) async
     //Future<SharedLinkResponseDto> getSharedLinkById(String id) async
     test('test getSharedLinkById', () async {
     test('test getSharedLinkById', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future removeSharedLink(String id) async
     //Future removeSharedLink(String id) async
     test('test removeSharedLink', () async {
     test('test removeSharedLink', () async {
       // TODO
       // TODO

+ 0 - 8
mobile/openapi/test/system_config_api_test.dart

@@ -17,29 +17,21 @@ void main() {
   // final instance = SystemConfigApi();
   // final instance = SystemConfigApi();
 
 
   group('tests for SystemConfigApi', () {
   group('tests for SystemConfigApi', () {
-    // 
-    //
     //Future<SystemConfigDto> getConfig() async
     //Future<SystemConfigDto> getConfig() async
     test('test getConfig', () async {
     test('test getConfig', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SystemConfigDto> getDefaults() async
     //Future<SystemConfigDto> getDefaults() async
     test('test getDefaults', () async {
     test('test getDefaults', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SystemConfigTemplateStorageOptionDto> getStorageTemplateOptions() async
     //Future<SystemConfigTemplateStorageOptionDto> getStorageTemplateOptions() async
     test('test getStorageTemplateOptions', () async {
     test('test getStorageTemplateOptions', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<SystemConfigDto> updateConfig(SystemConfigDto systemConfigDto) async
     //Future<SystemConfigDto> updateConfig(SystemConfigDto systemConfigDto) async
     test('test updateConfig', () async {
     test('test updateConfig', () async {
       // TODO
       // TODO

+ 0 - 10
mobile/openapi/test/tag_api_test.dart

@@ -17,36 +17,26 @@ void main() {
   // final instance = TagApi();
   // final instance = TagApi();
 
 
   group('tests for TagApi', () {
   group('tests for TagApi', () {
-    // 
-    //
     //Future<TagResponseDto> create(CreateTagDto createTagDto) async
     //Future<TagResponseDto> create(CreateTagDto createTagDto) async
     test('test create', () async {
     test('test create', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future delete(String id) async
     //Future delete(String id) async
     test('test delete', () async {
     test('test delete', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<TagResponseDto>> findAll() async
     //Future<List<TagResponseDto>> findAll() async
     test('test findAll', () async {
     test('test findAll', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<TagResponseDto> findOne(String id) async
     //Future<TagResponseDto> findOne(String id) async
     test('test findOne', () async {
     test('test findOne', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<TagResponseDto> update(String id, UpdateTagDto updateTagDto) async
     //Future<TagResponseDto> update(String id, UpdateTagDto updateTagDto) async
     test('test update', () async {
     test('test update', () async {
       // TODO
       // TODO

+ 0 - 20
mobile/openapi/test/user_api_test.dart

@@ -17,71 +17,51 @@ void main() {
   // final instance = UserApi();
   // final instance = UserApi();
 
 
   group('tests for UserApi', () {
   group('tests for UserApi', () {
-    // 
-    //
     //Future<CreateProfileImageResponseDto> createProfileImage(MultipartFile file) async
     //Future<CreateProfileImageResponseDto> createProfileImage(MultipartFile file) async
     test('test createProfileImage', () async {
     test('test createProfileImage', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> createUser(CreateUserDto createUserDto) async
     //Future<UserResponseDto> createUser(CreateUserDto createUserDto) async
     test('test createUser', () async {
     test('test createUser', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> deleteUser(String userId) async
     //Future<UserResponseDto> deleteUser(String userId) async
     test('test deleteUser', () async {
     test('test deleteUser', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<List<UserResponseDto>> getAllUsers(bool isAll) async
     //Future<List<UserResponseDto>> getAllUsers(bool isAll) async
     test('test getAllUsers', () async {
     test('test getAllUsers', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> getMyUserInfo() async
     //Future<UserResponseDto> getMyUserInfo() async
     test('test getMyUserInfo', () async {
     test('test getMyUserInfo', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<Object> getProfileImage(String userId) async
     //Future<Object> getProfileImage(String userId) async
     test('test getProfileImage', () async {
     test('test getProfileImage', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> getUserById(String userId) async
     //Future<UserResponseDto> getUserById(String userId) async
     test('test getUserById', () async {
     test('test getUserById', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserCountResponseDto> getUserCount({ bool admin }) async
     //Future<UserCountResponseDto> getUserCount({ bool admin }) async
     test('test getUserCount', () async {
     test('test getUserCount', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> restoreUser(String userId) async
     //Future<UserResponseDto> restoreUser(String userId) async
     test('test restoreUser', () async {
     test('test restoreUser', () async {
       // TODO
       // TODO
     });
     });
 
 
-    // 
-    //
     //Future<UserResponseDto> updateUser(UpdateUserDto updateUserDto) async
     //Future<UserResponseDto> updateUser(UpdateUserDto updateUserDto) async
     test('test updateUser', () async {
     test('test updateUser', () async {
       // TODO
       // TODO

+ 0 - 78
server/immich-openapi-specs.json

@@ -4,7 +4,6 @@
     "/album": {
     "/album": {
       "get": {
       "get": {
         "operationId": "getAllAlbums",
         "operationId": "getAllAlbums",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "shared",
             "name": "shared",
@@ -54,7 +53,6 @@
       },
       },
       "post": {
       "post": {
         "operationId": "createAlbum",
         "operationId": "createAlbum",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -94,7 +92,6 @@
     "/api-key": {
     "/api-key": {
       "post": {
       "post": {
         "operationId": "createKey",
         "operationId": "createKey",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -132,7 +129,6 @@
       },
       },
       "get": {
       "get": {
         "operationId": "getKeys",
         "operationId": "getKeys",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -165,7 +161,6 @@
     "/api-key/{id}": {
     "/api-key/{id}": {
       "get": {
       "get": {
         "operationId": "getKey",
         "operationId": "getKey",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -203,7 +198,6 @@
       },
       },
       "put": {
       "put": {
         "operationId": "updateKey",
         "operationId": "updateKey",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -251,7 +245,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "deleteKey",
         "operationId": "deleteKey",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -284,7 +277,6 @@
     "/auth/login": {
     "/auth/login": {
       "post": {
       "post": {
         "operationId": "login",
         "operationId": "login",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -316,7 +308,6 @@
     "/auth/admin-sign-up": {
     "/auth/admin-sign-up": {
       "post": {
       "post": {
         "operationId": "adminSignUp",
         "operationId": "adminSignUp",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -351,7 +342,6 @@
     "/auth/validateToken": {
     "/auth/validateToken": {
       "post": {
       "post": {
         "operationId": "validateAccessToken",
         "operationId": "validateAccessToken",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "201": {
           "201": {
@@ -381,7 +371,6 @@
     "/auth/change-password": {
     "/auth/change-password": {
       "post": {
       "post": {
         "operationId": "changePassword",
         "operationId": "changePassword",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -421,7 +410,6 @@
     "/auth/logout": {
     "/auth/logout": {
       "post": {
       "post": {
         "operationId": "logout",
         "operationId": "logout",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "201": {
           "201": {
@@ -451,7 +439,6 @@
     "/device-info": {
     "/device-info": {
       "put": {
       "put": {
         "operationId": "upsertDeviceInfo",
         "operationId": "upsertDeviceInfo",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -491,7 +478,6 @@
     "/jobs": {
     "/jobs": {
       "get": {
       "get": {
         "operationId": "getAllJobsStatus",
         "operationId": "getAllJobsStatus",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -521,7 +507,6 @@
     "/jobs/{jobId}": {
     "/jobs/{jobId}": {
       "put": {
       "put": {
         "operationId": "sendJobCommand",
         "operationId": "sendJobCommand",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "jobId",
             "name": "jobId",
@@ -570,7 +555,6 @@
     "/oauth/mobile-redirect": {
     "/oauth/mobile-redirect": {
       "get": {
       "get": {
         "operationId": "mobileRedirect",
         "operationId": "mobileRedirect",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -585,7 +569,6 @@
     "/oauth/config": {
     "/oauth/config": {
       "post": {
       "post": {
         "operationId": "generateConfig",
         "operationId": "generateConfig",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -617,7 +600,6 @@
     "/oauth/callback": {
     "/oauth/callback": {
       "post": {
       "post": {
         "operationId": "callback",
         "operationId": "callback",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -649,7 +631,6 @@
     "/oauth/link": {
     "/oauth/link": {
       "post": {
       "post": {
         "operationId": "link",
         "operationId": "link",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -689,7 +670,6 @@
     "/oauth/unlink": {
     "/oauth/unlink": {
       "post": {
       "post": {
         "operationId": "unlink",
         "operationId": "unlink",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "201": {
           "201": {
@@ -719,7 +699,6 @@
     "/search": {
     "/search": {
       "get": {
       "get": {
         "operationId": "search",
         "operationId": "search",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "q",
             "name": "q",
@@ -882,7 +861,6 @@
     "/search/config": {
     "/search/config": {
       "get": {
       "get": {
         "operationId": "getSearchConfig",
         "operationId": "getSearchConfig",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -912,7 +890,6 @@
     "/search/explore": {
     "/search/explore": {
       "get": {
       "get": {
         "operationId": "getExploreData",
         "operationId": "getExploreData",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -945,7 +922,6 @@
     "/server-info": {
     "/server-info": {
       "get": {
       "get": {
         "operationId": "getServerInfo",
         "operationId": "getServerInfo",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -975,7 +951,6 @@
     "/server-info/ping": {
     "/server-info/ping": {
       "get": {
       "get": {
         "operationId": "pingServer",
         "operationId": "pingServer",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -997,7 +972,6 @@
     "/server-info/version": {
     "/server-info/version": {
       "get": {
       "get": {
         "operationId": "getServerVersion",
         "operationId": "getServerVersion",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1019,7 +993,6 @@
     "/server-info/stats": {
     "/server-info/stats": {
       "get": {
       "get": {
         "operationId": "getStats",
         "operationId": "getStats",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1049,7 +1022,6 @@
     "/share": {
     "/share": {
       "get": {
       "get": {
         "operationId": "getAllSharedLinks",
         "operationId": "getAllSharedLinks",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1082,7 +1054,6 @@
     "/share/me": {
     "/share/me": {
       "get": {
       "get": {
         "operationId": "getMySharedLink",
         "operationId": "getMySharedLink",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "key",
             "name": "key",
@@ -1121,7 +1092,6 @@
     "/share/{id}": {
     "/share/{id}": {
       "get": {
       "get": {
         "operationId": "getSharedLinkById",
         "operationId": "getSharedLinkById",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -1159,7 +1129,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "removeSharedLink",
         "operationId": "removeSharedLink",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -1190,7 +1159,6 @@
       },
       },
       "patch": {
       "patch": {
         "operationId": "editSharedLink",
         "operationId": "editSharedLink",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -1240,7 +1208,6 @@
     "/system-config": {
     "/system-config": {
       "get": {
       "get": {
         "operationId": "getConfig",
         "operationId": "getConfig",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1268,7 +1235,6 @@
       },
       },
       "put": {
       "put": {
         "operationId": "updateConfig",
         "operationId": "updateConfig",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -1308,7 +1274,6 @@
     "/system-config/defaults": {
     "/system-config/defaults": {
       "get": {
       "get": {
         "operationId": "getDefaults",
         "operationId": "getDefaults",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1338,7 +1303,6 @@
     "/system-config/storage-template-options": {
     "/system-config/storage-template-options": {
       "get": {
       "get": {
         "operationId": "getStorageTemplateOptions",
         "operationId": "getStorageTemplateOptions",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1368,7 +1332,6 @@
     "/user": {
     "/user": {
       "get": {
       "get": {
         "operationId": "getAllUsers",
         "operationId": "getAllUsers",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "isAll",
             "name": "isAll",
@@ -1408,7 +1371,6 @@
       },
       },
       "post": {
       "post": {
         "operationId": "createUser",
         "operationId": "createUser",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -1446,7 +1408,6 @@
       },
       },
       "put": {
       "put": {
         "operationId": "updateUser",
         "operationId": "updateUser",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -1486,7 +1447,6 @@
     "/user/info/{userId}": {
     "/user/info/{userId}": {
       "get": {
       "get": {
         "operationId": "getUserById",
         "operationId": "getUserById",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "userId",
             "name": "userId",
@@ -1526,7 +1486,6 @@
     "/user/me": {
     "/user/me": {
       "get": {
       "get": {
         "operationId": "getMyUserInfo",
         "operationId": "getMyUserInfo",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -1556,7 +1515,6 @@
     "/user/count": {
     "/user/count": {
       "get": {
       "get": {
         "operationId": "getUserCount",
         "operationId": "getUserCount",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "admin",
             "name": "admin",
@@ -1588,7 +1546,6 @@
     "/user/{userId}": {
     "/user/{userId}": {
       "delete": {
       "delete": {
         "operationId": "deleteUser",
         "operationId": "deleteUser",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "userId",
             "name": "userId",
@@ -1628,7 +1585,6 @@
     "/user/{userId}/restore": {
     "/user/{userId}/restore": {
       "post": {
       "post": {
         "operationId": "restoreUser",
         "operationId": "restoreUser",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "userId",
             "name": "userId",
@@ -1668,7 +1624,6 @@
     "/user/profile-image": {
     "/user/profile-image": {
       "post": {
       "post": {
         "operationId": "createProfileImage",
         "operationId": "createProfileImage",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -1709,7 +1664,6 @@
     "/user/profile-image/{userId}": {
     "/user/profile-image/{userId}": {
       "get": {
       "get": {
         "operationId": "getProfileImage",
         "operationId": "getProfileImage",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "userId",
             "name": "userId",
@@ -1749,7 +1703,6 @@
     "/asset/upload": {
     "/asset/upload": {
       "post": {
       "post": {
         "operationId": "uploadFile",
         "operationId": "uploadFile",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "key",
             "name": "key",
@@ -1799,7 +1752,6 @@
     "/asset/download/{assetId}": {
     "/asset/download/{assetId}": {
       "get": {
       "get": {
         "operationId": "downloadFile",
         "operationId": "downloadFile",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "assetId",
             "name": "assetId",
@@ -1848,7 +1800,6 @@
     "/asset/download-files": {
     "/asset/download-files": {
       "post": {
       "post": {
         "operationId": "downloadFiles",
         "operationId": "downloadFiles",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "key",
             "name": "key",
@@ -1957,7 +1908,6 @@
     "/asset/file/{assetId}": {
     "/asset/file/{assetId}": {
       "get": {
       "get": {
         "operationId": "serveFile",
         "operationId": "serveFile",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "isThumb",
             "name": "isThumb",
@@ -2024,7 +1974,6 @@
     "/asset/thumbnail/{assetId}": {
     "/asset/thumbnail/{assetId}": {
       "get": {
       "get": {
         "operationId": "getAssetThumbnail",
         "operationId": "getAssetThumbnail",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "assetId",
             "name": "assetId",
@@ -2081,7 +2030,6 @@
     "/asset/curated-objects": {
     "/asset/curated-objects": {
       "get": {
       "get": {
         "operationId": "getCuratedObjects",
         "operationId": "getCuratedObjects",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2114,7 +2062,6 @@
     "/asset/curated-locations": {
     "/asset/curated-locations": {
       "get": {
       "get": {
         "operationId": "getCuratedLocations",
         "operationId": "getCuratedLocations",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2147,7 +2094,6 @@
     "/asset/search-terms": {
     "/asset/search-terms": {
       "get": {
       "get": {
         "operationId": "getAssetSearchTerms",
         "operationId": "getAssetSearchTerms",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2180,7 +2126,6 @@
     "/asset/search": {
     "/asset/search": {
       "post": {
       "post": {
         "operationId": "searchAsset",
         "operationId": "searchAsset",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2223,7 +2168,6 @@
     "/asset/count-by-time-bucket": {
     "/asset/count-by-time-bucket": {
       "post": {
       "post": {
         "operationId": "getAssetCountByTimeBucket",
         "operationId": "getAssetCountByTimeBucket",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2263,7 +2207,6 @@
     "/asset/count-by-user-id": {
     "/asset/count-by-user-id": {
       "get": {
       "get": {
         "operationId": "getAssetCountByUserId",
         "operationId": "getAssetCountByUserId",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2293,7 +2236,6 @@
     "/asset/stat/archive": {
     "/asset/stat/archive": {
       "get": {
       "get": {
         "operationId": "getArchivedAssetCountByUserId",
         "operationId": "getArchivedAssetCountByUserId",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2388,7 +2330,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "deleteAsset",
         "operationId": "deleteAsset",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2431,7 +2372,6 @@
     "/asset/time-bucket": {
     "/asset/time-bucket": {
       "post": {
       "post": {
         "operationId": "getAssetByTimeBucket",
         "operationId": "getAssetByTimeBucket",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2704,7 +2644,6 @@
     "/asset/shared-link": {
     "/asset/shared-link": {
       "post": {
       "post": {
         "operationId": "createAssetsSharedLink",
         "operationId": "createAssetsSharedLink",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2744,7 +2683,6 @@
     "/asset/shared-link/add": {
     "/asset/shared-link/add": {
       "patch": {
       "patch": {
         "operationId": "addAssetsToSharedLink",
         "operationId": "addAssetsToSharedLink",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "key",
             "name": "key",
@@ -2793,7 +2731,6 @@
     "/asset/shared-link/remove": {
     "/asset/shared-link/remove": {
       "patch": {
       "patch": {
         "operationId": "removeAssetsFromSharedLink",
         "operationId": "removeAssetsFromSharedLink",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "key",
             "name": "key",
@@ -2842,7 +2779,6 @@
     "/tag": {
     "/tag": {
       "post": {
       "post": {
         "operationId": "create",
         "operationId": "create",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,
@@ -2880,7 +2816,6 @@
       },
       },
       "get": {
       "get": {
         "operationId": "findAll",
         "operationId": "findAll",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -2913,7 +2848,6 @@
     "/tag/{id}": {
     "/tag/{id}": {
       "get": {
       "get": {
         "operationId": "findOne",
         "operationId": "findOne",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -2951,7 +2885,6 @@
       },
       },
       "patch": {
       "patch": {
         "operationId": "update",
         "operationId": "update",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -2999,7 +2932,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "delete",
         "operationId": "delete",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "id",
             "name": "id",
@@ -3032,7 +2964,6 @@
     "/album/count-by-user-id": {
     "/album/count-by-user-id": {
       "get": {
       "get": {
         "operationId": "getAlbumCountByUserId",
         "operationId": "getAlbumCountByUserId",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "responses": {
         "responses": {
           "200": {
           "200": {
@@ -3062,7 +2993,6 @@
     "/album/{albumId}/users": {
     "/album/{albumId}/users": {
       "put": {
       "put": {
         "operationId": "addUsersToAlbum",
         "operationId": "addUsersToAlbum",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3112,7 +3042,6 @@
     "/album/{albumId}/assets": {
     "/album/{albumId}/assets": {
       "put": {
       "put": {
         "operationId": "addAssetsToAlbum",
         "operationId": "addAssetsToAlbum",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3168,7 +3097,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "removeAssetFromAlbum",
         "operationId": "removeAssetFromAlbum",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3218,7 +3146,6 @@
     "/album/{albumId}": {
     "/album/{albumId}": {
       "get": {
       "get": {
         "operationId": "getAlbumInfo",
         "operationId": "getAlbumInfo",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3264,7 +3191,6 @@
       },
       },
       "delete": {
       "delete": {
         "operationId": "deleteAlbum",
         "operationId": "deleteAlbum",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3295,7 +3221,6 @@
       },
       },
       "patch": {
       "patch": {
         "operationId": "updateAlbumInfo",
         "operationId": "updateAlbumInfo",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3345,7 +3270,6 @@
     "/album/{albumId}/user/{userId}": {
     "/album/{albumId}/user/{userId}": {
       "delete": {
       "delete": {
         "operationId": "removeUserFromAlbum",
         "operationId": "removeUserFromAlbum",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3386,7 +3310,6 @@
     "/album/{albumId}/download": {
     "/album/{albumId}/download": {
       "get": {
       "get": {
         "operationId": "downloadArchive",
         "operationId": "downloadArchive",
-        "description": "",
         "parameters": [
         "parameters": [
           {
           {
             "name": "albumId",
             "name": "albumId",
@@ -3451,7 +3374,6 @@
     "/album/create-shared-link": {
     "/album/create-shared-link": {
       "post": {
       "post": {
         "operationId": "createAlbumSharedLink",
         "operationId": "createAlbumSharedLink",
-        "description": "",
         "parameters": [],
         "parameters": [],
         "requestBody": {
         "requestBody": {
           "required": true,
           "required": true,

+ 28 - 9
web/src/routes/(user)/albums/+page.svelte

@@ -10,6 +10,8 @@
 	import EmptyPlaceholder from '$lib/components/shared-components/empty-placeholder.svelte';
 	import EmptyPlaceholder from '$lib/components/shared-components/empty-placeholder.svelte';
 	import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
 	import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
 	import LinkButton from '$lib/components/elements/buttons/link-button.svelte';
 	import LinkButton from '$lib/components/elements/buttons/link-button.svelte';
+	import { onMount } from 'svelte';
+	import { flip } from 'svelte/animate';
 
 
 	export let data: PageData;
 	export let data: PageData;
 
 
@@ -18,6 +20,7 @@
 		isShowContextMenu,
 		isShowContextMenu,
 		contextMenuPosition,
 		contextMenuPosition,
 		createAlbum,
 		createAlbum,
+		deleteAlbum,
 		deleteSelectedContextAlbum,
 		deleteSelectedContextAlbum,
 		showAlbumContextMenu,
 		showAlbumContextMenu,
 		closeAlbumContextMenu
 		closeAlbumContextMenu
@@ -29,6 +32,23 @@
 			goto('/albums/' + newAlbum.id);
 			goto('/albums/' + newAlbum.id);
 		}
 		}
 	};
 	};
+
+	onMount(() => {
+		removeAlbumsIfEmpty();
+	});
+
+	const removeAlbumsIfEmpty = async () => {
+		try {
+			for (const album of $albums) {
+				if (album.assetCount == 0 && album.albumName == 'Untitled') {
+					await deleteAlbum(album);
+					$albums = $albums.filter((a) => a.id !== album.id);
+				}
+			}
+		} catch (error) {
+			console.log(error);
+		}
+	};
 </script>
 </script>
 
 
 <UserPageLayout user={data.user} title={data.meta.title}>
 <UserPageLayout user={data.user} title={data.meta.title}>
@@ -43,15 +63,14 @@
 
 
 	<!-- Album Card -->
 	<!-- Album Card -->
 	<div class="grid grid-cols-[repeat(auto-fill,minmax(15rem,1fr))] gap-8">
 	<div class="grid grid-cols-[repeat(auto-fill,minmax(15rem,1fr))] gap-8">
-		{#each $albums as album}
-			{#key album.id}
-				<a data-sveltekit-preload-data="hover" href={`albums/${album.id}`}>
-					<AlbumCard
-						{album}
-						on:showalbumcontextmenu={(e) => showAlbumContextMenu(e.detail, album)}
-					/>
-				</a>
-			{/key}
+		{#each $albums as album (album.id)}
+			<a
+				data-sveltekit-preload-data="hover"
+				href={`albums/${album.id}`}
+				animate:flip={{ duration: 200 }}
+			>
+				<AlbumCard {album} on:showalbumcontextmenu={(e) => showAlbumContextMenu(e.detail, album)} />
+			</a>
 		{/each}
 		{/each}
 	</div>
 	</div>
 
 

+ 2 - 5
web/src/routes/(user)/albums/albums.bloc.ts

@@ -53,11 +53,7 @@ export const useAlbums = (props: AlbumsProps) => {
 	}
 	}
 
 
 	async function deleteAlbum(album: AlbumResponseDto): Promise<void> {
 	async function deleteAlbum(album: AlbumResponseDto): Promise<void> {
-		try {
-			await api.albumApi.deleteAlbum(album.id);
-		} catch {
-			// Do nothing?
-		}
+		await api.albumApi.deleteAlbum(album.id);
 	}
 	}
 
 
 	async function showAlbumContextMenu(
 	async function showAlbumContextMenu(
@@ -107,6 +103,7 @@ export const useAlbums = (props: AlbumsProps) => {
 		contextMenuPosition,
 		contextMenuPosition,
 		loadAlbums,
 		loadAlbums,
 		createAlbum,
 		createAlbum,
+		deleteAlbum,
 		showAlbumContextMenu,
 		showAlbumContextMenu,
 		closeAlbumContextMenu,
 		closeAlbumContextMenu,
 		deleteSelectedContextAlbum
 		deleteSelectedContextAlbum