1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-16 16:56:46 +01:00

refactor(server): rename api tags to follow plural nomenclature of endpoints (#9872)

* rename api tags to follow plural nomenclature of endpoints

* chore: open api

* fix mobile
This commit is contained in:
Daniel Dietzler 2024-05-30 00:26:57 +02:00 committed by GitHub
parent 77d1b9ace6
commit 4376104e3a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 187 additions and 187 deletions

View file

@ -138,7 +138,7 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
Future<bool> changePassword(String newPassword) async { Future<bool> changePassword(String newPassword) async {
try { try {
await _apiService.userApi.updateMyUser( await _apiService.usersApi.updateMyUser(
UserUpdateMeDto( UserUpdateMeDto(
password: newPassword, password: newPassword,
), ),
@ -179,8 +179,8 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
UserAdminResponseDto? userResponseDto; UserAdminResponseDto? userResponseDto;
UserPreferencesResponseDto? userPreferences; UserPreferencesResponseDto? userPreferences;
try { try {
userResponseDto = await _apiService.userApi.getMyUser(); userResponseDto = await _apiService.usersApi.getMyUser();
userPreferences = await _apiService.userApi.getMyPreferences(); userPreferences = await _apiService.usersApi.getMyPreferences();
} on ApiException catch (error, stackTrace) { } on ApiException catch (error, stackTrace) {
_log.severe( _log.severe(
"Error getting user information from the server [API EXCEPTION]", "Error getting user information from the server [API EXCEPTION]",

View file

@ -20,8 +20,8 @@ class CurrentUserProvider extends StateNotifier<User?> {
refresh() async { refresh() async {
try { try {
final user = await _apiService.userApi.getMyUser(); final user = await _apiService.usersApi.getMyUser();
final userPreferences = await _apiService.userApi.getMyPreferences(); final userPreferences = await _apiService.usersApi.getMyPreferences();
if (user != null) { if (user != null) {
Store.put( Store.put(
StoreKey.currentUser, StoreKey.currentUser,

View file

@ -57,9 +57,9 @@ class TabNavigationObserver extends AutoRouterObserver {
// Update user info // Update user info
try { try {
final userResponseDto = final userResponseDto =
await ref.read(apiServiceProvider).userApi.getMyUser(); await ref.read(apiServiceProvider).usersApi.getMyUser();
final userPreferences = final userPreferences =
await ref.read(apiServiceProvider).userApi.getMyPreferences(); await ref.read(apiServiceProvider).usersApi.getMyPreferences();
if (userResponseDto == null) { if (userResponseDto == null) {
return; return;

View file

@ -19,7 +19,7 @@ class ActivityService with ErrorLoggerMixin {
}) async { }) async {
return logError( return logError(
() async { () async {
final list = await _apiService.activityApi final list = await _apiService.activitiesApi
.getActivities(albumId, assetId: assetId); .getActivities(albumId, assetId: assetId);
return list != null ? list.map(Activity.fromDto).toList() : []; return list != null ? list.map(Activity.fromDto).toList() : [];
}, },
@ -31,7 +31,7 @@ class ActivityService with ErrorLoggerMixin {
Future<int> getStatistics(String albumId, {String? assetId}) async { Future<int> getStatistics(String albumId, {String? assetId}) async {
return logError( return logError(
() async { () async {
final dto = await _apiService.activityApi final dto = await _apiService.activitiesApi
.getActivityStatistics(albumId, assetId: assetId); .getActivityStatistics(albumId, assetId: assetId);
return dto?.comments ?? 0; return dto?.comments ?? 0;
}, },
@ -43,7 +43,7 @@ class ActivityService with ErrorLoggerMixin {
Future<bool> removeActivity(String id) async { Future<bool> removeActivity(String id) async {
return logError( return logError(
() async { () async {
await _apiService.activityApi.deleteActivity(id); await _apiService.activitiesApi.deleteActivity(id);
return true; return true;
}, },
defaultValue: false, defaultValue: false,
@ -59,7 +59,7 @@ class ActivityService with ErrorLoggerMixin {
}) async { }) async {
return guardError( return guardError(
() async { () async {
final dto = await _apiService.activityApi.createActivity( final dto = await _apiService.activitiesApi.createActivity(
ActivityCreateDto( ActivityCreateDto(
albumId: albumId, albumId: albumId,
type: type == ActivityType.comment type: type == ActivityType.comment

View file

@ -151,7 +151,7 @@ class AlbumService {
bool changes = false; bool changes = false;
try { try {
await _userService.refreshUsers(); await _userService.refreshUsers();
final List<AlbumResponseDto>? serverAlbums = await _apiService.albumApi final List<AlbumResponseDto>? serverAlbums = await _apiService.albumsApi
.getAllAlbums(shared: isShared ? true : null); .getAllAlbums(shared: isShared ? true : null);
if (serverAlbums == null) { if (serverAlbums == null) {
return false; return false;
@ -161,7 +161,7 @@ class AlbumService {
isShared: isShared, isShared: isShared,
loadDetails: (dto) async => dto.assetCount == dto.assets.length loadDetails: (dto) async => dto.assetCount == dto.assets.length
? dto ? dto
: (await _apiService.albumApi.getAlbumInfo(dto.id)) ?? dto, : (await _apiService.albumsApi.getAlbumInfo(dto.id)) ?? dto,
); );
} finally { } finally {
_remoteCompleter.complete(changes); _remoteCompleter.complete(changes);
@ -176,7 +176,7 @@ class AlbumService {
Iterable<User> sharedUsers = const [], Iterable<User> sharedUsers = const [],
]) async { ]) async {
try { try {
AlbumResponseDto? remote = await _apiService.albumApi.createAlbum( AlbumResponseDto? remote = await _apiService.albumsApi.createAlbum(
CreateAlbumDto( CreateAlbumDto(
albumName: albumName, albumName: albumName,
assetIds: assets.map((asset) => asset.remoteId!).toList(), assetIds: assets.map((asset) => asset.remoteId!).toList(),
@ -231,7 +231,7 @@ class AlbumService {
Album album, Album album,
) async { ) async {
try { try {
var response = await _apiService.albumApi.addAssetsToAlbum( var response = await _apiService.albumsApi.addAssetsToAlbum(
album.remoteId!, album.remoteId!,
BulkIdsDto(ids: assets.map((asset) => asset.remoteId!).toList()), BulkIdsDto(ids: assets.map((asset) => asset.remoteId!).toList()),
); );
@ -290,7 +290,7 @@ class AlbumService {
.map((userId) => AlbumUserAddDto(userId: userId)) .map((userId) => AlbumUserAddDto(userId: userId))
.toList(); .toList();
final result = await _apiService.albumApi.addUsersToAlbum( final result = await _apiService.albumsApi.addUsersToAlbum(
album.remoteId!, album.remoteId!,
AddUsersDto(albumUsers: albumUsers), AddUsersDto(albumUsers: albumUsers),
); );
@ -312,7 +312,7 @@ class AlbumService {
Future<bool> setActivityEnabled(Album album, bool enabled) async { Future<bool> setActivityEnabled(Album album, bool enabled) async {
try { try {
final result = await _apiService.albumApi.updateAlbumInfo( final result = await _apiService.albumsApi.updateAlbumInfo(
album.remoteId!, album.remoteId!,
UpdateAlbumDto(isActivityEnabled: enabled), UpdateAlbumDto(isActivityEnabled: enabled),
); );
@ -331,7 +331,7 @@ class AlbumService {
try { try {
final userId = Store.get(StoreKey.currentUser).isarId; final userId = Store.get(StoreKey.currentUser).isarId;
if (album.owner.value?.isarId == userId) { if (album.owner.value?.isarId == userId) {
await _apiService.albumApi.deleteAlbum(album.remoteId!); await _apiService.albumsApi.deleteAlbum(album.remoteId!);
} }
if (album.shared) { if (album.shared) {
final foreignAssets = final foreignAssets =
@ -362,7 +362,7 @@ class AlbumService {
Future<bool> leaveAlbum(Album album) async { Future<bool> leaveAlbum(Album album) async {
try { try {
await _apiService.albumApi.removeUserFromAlbum(album.remoteId!, "me"); await _apiService.albumsApi.removeUserFromAlbum(album.remoteId!, "me");
return true; return true;
} catch (e) { } catch (e) {
debugPrint("Error leaveAlbum ${e.toString()}"); debugPrint("Error leaveAlbum ${e.toString()}");
@ -375,7 +375,7 @@ class AlbumService {
Iterable<Asset> assets, Iterable<Asset> assets,
) async { ) async {
try { try {
final response = await _apiService.albumApi.removeAssetFromAlbum( final response = await _apiService.albumsApi.removeAssetFromAlbum(
album.remoteId!, album.remoteId!,
BulkIdsDto( BulkIdsDto(
ids: assets.map((asset) => asset.remoteId!).toList(), ids: assets.map((asset) => asset.remoteId!).toList(),
@ -401,7 +401,7 @@ class AlbumService {
User user, User user,
) async { ) async {
try { try {
await _apiService.albumApi.removeUserFromAlbum( await _apiService.albumsApi.removeUserFromAlbum(
album.remoteId!, album.remoteId!,
user.id, user.id,
); );
@ -426,7 +426,7 @@ class AlbumService {
String newAlbumTitle, String newAlbumTitle,
) async { ) async {
try { try {
await _apiService.albumApi.updateAlbumInfo( await _apiService.albumsApi.updateAlbumInfo(
album.remoteId!, album.remoteId!,
UpdateAlbumDto( UpdateAlbumDto(
albumName: newAlbumTitle, albumName: newAlbumTitle,

View file

@ -12,21 +12,21 @@ import 'package:http/http.dart';
class ApiService { class ApiService {
late ApiClient _apiClient; late ApiClient _apiClient;
late UserApi userApi; late UsersApi usersApi;
late AuthenticationApi authenticationApi; late AuthenticationApi authenticationApi;
late OAuthApi oAuthApi; late OAuthApi oAuthApi;
late AlbumApi albumApi; late AlbumsApi albumsApi;
late AssetApi assetApi; late AssetsApi assetsApi;
late SearchApi searchApi; late SearchApi searchApi;
late ServerInfoApi serverInfoApi; late ServerInfoApi serverInfoApi;
late MapApi mapApi; late MapApi mapApi;
late PartnerApi partnerApi; late PartnersApi partnersApi;
late PersonApi personApi; late PeopleApi peopleApi;
late AuditApi auditApi; late AuditApi auditApi;
late SharedLinkApi sharedLinkApi; late SharedLinksApi sharedLinksApi;
late SyncApi syncApi; late SyncApi syncApi;
late SystemConfigApi systemConfigApi; late SystemConfigApi systemConfigApi;
late ActivityApi activityApi; late ActivitiesApi activitiesApi;
late DownloadApi downloadApi; late DownloadApi downloadApi;
late TrashApi trashApi; late TrashApi trashApi;
@ -44,21 +44,21 @@ class ApiService {
if (_accessToken != null) { if (_accessToken != null) {
setAccessToken(_accessToken!); setAccessToken(_accessToken!);
} }
userApi = UserApi(_apiClient); usersApi = UsersApi(_apiClient);
authenticationApi = AuthenticationApi(_apiClient); authenticationApi = AuthenticationApi(_apiClient);
oAuthApi = OAuthApi(_apiClient); oAuthApi = OAuthApi(_apiClient);
albumApi = AlbumApi(_apiClient); albumsApi = AlbumsApi(_apiClient);
assetApi = AssetApi(_apiClient); assetsApi = AssetsApi(_apiClient);
serverInfoApi = ServerInfoApi(_apiClient); serverInfoApi = ServerInfoApi(_apiClient);
searchApi = SearchApi(_apiClient); searchApi = SearchApi(_apiClient);
mapApi = MapApi(_apiClient); mapApi = MapApi(_apiClient);
partnerApi = PartnerApi(_apiClient); partnersApi = PartnersApi(_apiClient);
personApi = PersonApi(_apiClient); peopleApi = PeopleApi(_apiClient);
auditApi = AuditApi(_apiClient); auditApi = AuditApi(_apiClient);
sharedLinkApi = SharedLinkApi(_apiClient); sharedLinksApi = SharedLinksApi(_apiClient);
syncApi = SyncApi(_apiClient); syncApi = SyncApi(_apiClient);
systemConfigApi = SystemConfigApi(_apiClient); systemConfigApi = SystemConfigApi(_apiClient);
activityApi = ActivityApi(_apiClient); activitiesApi = ActivitiesApi(_apiClient);
downloadApi = DownloadApi(_apiClient); downloadApi = DownloadApi(_apiClient);
trashApi = TrashApi(_apiClient); trashApi = TrashApi(_apiClient);
} }

View file

@ -82,7 +82,7 @@ class AssetService {
) async { ) async {
try { try {
final AssetResponseDto? dto = final AssetResponseDto? dto =
await _apiService.assetApi.getAssetInfo(remoteId); await _apiService.assetsApi.getAssetInfo(remoteId);
return dto?.people; return dto?.people;
} catch (error, stack) { } catch (error, stack) {
@ -138,7 +138,7 @@ class AssetService {
payload.add(asset.remoteId!); payload.add(asset.remoteId!);
} }
await _apiService.assetApi.deleteAssets( await _apiService.assetsApi.deleteAssets(
AssetBulkDeleteDto( AssetBulkDeleteDto(
ids: payload, ids: payload,
force: force, force: force,
@ -158,7 +158,7 @@ class AssetService {
// fileSize is always filled on the server but not set on client // fileSize is always filled on the server but not set on client
if (a.exifInfo?.fileSize == null) { if (a.exifInfo?.fileSize == null) {
if (a.isRemote) { if (a.isRemote) {
final dto = await _apiService.assetApi.getAssetInfo(a.remoteId!); final dto = await _apiService.assetsApi.getAssetInfo(a.remoteId!);
if (dto != null && dto.exifInfo != null) { if (dto != null && dto.exifInfo != null) {
final newExif = Asset.remote(dto).exifInfo!.copyWith(id: a.id); final newExif = Asset.remote(dto).exifInfo!.copyWith(id: a.id);
if (newExif != a.exifInfo) { if (newExif != a.exifInfo) {
@ -180,7 +180,7 @@ class AssetService {
List<Asset> assets, List<Asset> assets,
UpdateAssetDto updateAssetDto, UpdateAssetDto updateAssetDto,
) async { ) async {
return await _apiService.assetApi.updateAssets( return await _apiService.assetsApi.updateAssets(
AssetBulkUpdateDto( AssetBulkUpdateDto(
ids: assets.map((e) => e.remoteId!).toList(), ids: assets.map((e) => e.remoteId!).toList(),
dateTimeOriginal: updateAssetDto.dateTimeOriginal, dateTimeOriginal: updateAssetDto.dateTimeOriginal,

View file

@ -17,7 +17,7 @@ class AssetDescriptionService {
String remoteAssetId, String remoteAssetId,
int localExifId, int localExifId,
) async { ) async {
final result = await _api.assetApi.updateAsset( final result = await _api.assetsApi.updateAsset(
remoteAssetId, remoteAssetId,
UpdateAssetDto(description: description), UpdateAssetDto(description: description),
); );
@ -36,7 +36,7 @@ class AssetDescriptionService {
Future<String> readLatest(String assetRemoteId, int localExifId) async { Future<String> readLatest(String assetRemoteId, int localExifId) async {
final latestAssetFromServer = final latestAssetFromServer =
await _api.assetApi.getAssetInfo(assetRemoteId); await _api.assetsApi.getAssetInfo(assetRemoteId);
final localExifInfo = await _db.exifInfos.get(localExifId); final localExifInfo = await _db.exifInfos.get(localExifId);
if (latestAssetFromServer != null && localExifInfo != null) { if (latestAssetFromServer != null && localExifInfo != null) {

View file

@ -27,7 +27,7 @@ class AssetStackService {
.map((e) => e.remoteId!) .map((e) => e.remoteId!)
.toList(); .toList();
await _api.assetApi.updateAssets( await _api.assetsApi.updateAssets(
AssetBulkUpdateDto(ids: toAdd, stackParentId: parentAsset.remoteId), AssetBulkUpdateDto(ids: toAdd, stackParentId: parentAsset.remoteId),
); );
} }
@ -37,7 +37,7 @@ class AssetStackService {
.where((e) => e.isRemote) .where((e) => e.isRemote)
.map((e) => e.remoteId!) .map((e) => e.remoteId!)
.toList(); .toList();
await _api.assetApi.updateAssets( await _api.assetsApi.updateAssets(
AssetBulkUpdateDto(ids: toRemove, removeParent: true), AssetBulkUpdateDto(ids: toRemove, removeParent: true),
); );
} }
@ -53,7 +53,7 @@ class AssetStackService {
} }
try { try {
await _api.assetApi.updateStackParent( await _api.assetsApi.updateStackParent(
UpdateStackParentDto( UpdateStackParentDto(
oldParentId: oldParent.remoteId!, oldParentId: oldParent.remoteId!,
newParentId: newParent.remoteId!, newParentId: newParent.remoteId!,

View file

@ -44,7 +44,7 @@ class BackupService {
final String deviceId = Store.get(StoreKey.deviceId); final String deviceId = Store.get(StoreKey.deviceId);
try { try {
return await _apiService.assetApi.getAllUserAssetsByDeviceId(deviceId); return await _apiService.assetsApi.getAllUserAssetsByDeviceId(deviceId);
} catch (e) { } catch (e) {
debugPrint('Error [getDeviceBackupAsset] ${e.toString()}'); debugPrint('Error [getDeviceBackupAsset] ${e.toString()}');
return null; return null;
@ -178,7 +178,7 @@ class BackupService {
try { try {
final String deviceId = Store.get(StoreKey.deviceId); final String deviceId = Store.get(StoreKey.deviceId);
final CheckExistingAssetsResponseDto? duplicates = final CheckExistingAssetsResponseDto? duplicates =
await _apiService.assetApi.checkExistingAssets( await _apiService.assetsApi.checkExistingAssets(
CheckExistingAssetsDto( CheckExistingAssetsDto(
deviceAssetIds: candidates.map((e) => e.id).toList(), deviceAssetIds: candidates.map((e) => e.id).toList(),
deviceId: deviceId, deviceId: deviceId,

View file

@ -136,7 +136,7 @@ class BackupVerificationService {
ExifInfo? exif = remote.exifInfo; ExifInfo? exif = remote.exifInfo;
if (exif != null && exif.lat != null) return false; if (exif != null && exif.lat != null) return false;
if (exif == null || exif.fileSize == null) { if (exif == null || exif.fileSize == null) {
final dto = await apiService.assetApi.getAssetInfo(remote.remoteId!); final dto = await apiService.assetsApi.getAssetInfo(remote.remoteId!);
if (dto != null && dto.exifInfo != null) { if (dto != null && dto.exifInfo != null) {
exif = ExifInfo.fromDto(dto.exifInfo!); exif = ExifInfo.fromDto(dto.exifInfo!);
} }

View file

@ -28,7 +28,7 @@ class MemoryService {
Future<List<Memory>?> getMemoryLane() async { Future<List<Memory>?> getMemoryLane() async {
try { try {
final now = DateTime.now(); final now = DateTime.now();
final data = await _apiService.assetApi.getMemoryLane( final data = await _apiService.assetsApi.getMemoryLane(
now.day, now.day,
now.month, now.month,
); );

View file

@ -35,7 +35,7 @@ class PartnerService {
Future<List<User>?> getPartners(PartnerDirection direction) async { Future<List<User>?> getPartners(PartnerDirection direction) async {
try { try {
final userDtos = final userDtos =
await _apiService.partnerApi.getPartners(direction._value); await _apiService.partnersApi.getPartners(direction._value);
if (userDtos != null) { if (userDtos != null) {
return userDtos.map((u) => User.fromPartnerDto(u)).toList(); return userDtos.map((u) => User.fromPartnerDto(u)).toList();
} }
@ -47,7 +47,7 @@ class PartnerService {
Future<bool> removePartner(User partner) async { Future<bool> removePartner(User partner) async {
try { try {
await _apiService.partnerApi.removePartner(partner.id); await _apiService.partnersApi.removePartner(partner.id);
partner.isPartnerSharedBy = false; partner.isPartnerSharedBy = false;
await _db.writeTxn(() => _db.users.put(partner)); await _db.writeTxn(() => _db.users.put(partner));
} catch (e) { } catch (e) {
@ -59,7 +59,7 @@ class PartnerService {
Future<bool> addPartner(User partner) async { Future<bool> addPartner(User partner) async {
try { try {
final dto = await _apiService.partnerApi.createPartner(partner.id); final dto = await _apiService.partnersApi.createPartner(partner.id);
if (dto != null) { if (dto != null) {
partner.isPartnerSharedBy = true; partner.isPartnerSharedBy = true;
await _db.writeTxn(() => _db.users.put(partner)); await _db.writeTxn(() => _db.users.put(partner));
@ -73,7 +73,7 @@ class PartnerService {
Future<bool> updatePartner(User partner, {required bool inTimeline}) async { Future<bool> updatePartner(User partner, {required bool inTimeline}) async {
try { try {
final dto = await _apiService.partnerApi final dto = await _apiService.partnersApi
.updatePartner(partner.id, UpdatePartnerDto(inTimeline: inTimeline)); .updatePartner(partner.id, UpdatePartnerDto(inTimeline: inTimeline));
if (dto != null) { if (dto != null) {
partner.inTimeline = dto.inTimeline ?? partner.inTimeline; partner.inTimeline = dto.inTimeline ?? partner.inTimeline;

View file

@ -22,7 +22,7 @@ class PersonService {
Future<List<PersonResponseDto>> getAllPeople() async { Future<List<PersonResponseDto>> getAllPeople() async {
try { try {
final peopleResponseDto = await _apiService.personApi.getAllPeople(); final peopleResponseDto = await _apiService.peopleApi.getAllPeople();
return peopleResponseDto?.people ?? []; return peopleResponseDto?.people ?? [];
} catch (error, stack) { } catch (error, stack) {
_log.severe("Error while fetching curated people", error, stack); _log.severe("Error while fetching curated people", error, stack);
@ -32,7 +32,7 @@ class PersonService {
Future<List<Asset>?> getPersonAssets(String id) async { Future<List<Asset>?> getPersonAssets(String id) async {
try { try {
final assets = await _apiService.personApi.getPersonAssets(id); final assets = await _apiService.peopleApi.getPersonAssets(id);
if (assets == null) return null; if (assets == null) return null;
return await _db.assets.getAllByRemoteId(assets.map((e) => e.id)); return await _db.assets.getAllByRemoteId(assets.map((e) => e.id));
} catch (error, stack) { } catch (error, stack) {
@ -43,7 +43,7 @@ class PersonService {
Future<PersonResponseDto?> updateName(String id, String name) async { Future<PersonResponseDto?> updateName(String id, String name) async {
try { try {
return await _apiService.personApi.updatePerson( return await _apiService.peopleApi.updatePerson(
id, id,
PersonUpdateDto( PersonUpdateDto(
name: name, name: name,

View file

@ -17,7 +17,7 @@ class SharedLinkService {
Future<AsyncValue<List<SharedLink>>> getAllSharedLinks() async { Future<AsyncValue<List<SharedLink>>> getAllSharedLinks() async {
try { try {
final list = await _apiService.sharedLinkApi.getAllSharedLinks(); final list = await _apiService.sharedLinksApi.getAllSharedLinks();
return list != null return list != null
? AsyncData(list.map(SharedLink.fromDto).toList()) ? AsyncData(list.map(SharedLink.fromDto).toList())
: const AsyncData([]); : const AsyncData([]);
@ -29,7 +29,7 @@ class SharedLinkService {
Future<void> deleteSharedLink(String id) async { Future<void> deleteSharedLink(String id) async {
try { try {
return await _apiService.sharedLinkApi.removeSharedLink(id); return await _apiService.sharedLinksApi.removeSharedLink(id);
} catch (e) { } catch (e) {
_log.severe("Failed to delete shared link id - $id", e); _log.severe("Failed to delete shared link id - $id", e);
} }
@ -75,7 +75,7 @@ class SharedLinkService {
if (dto != null) { if (dto != null) {
final responseDto = final responseDto =
await _apiService.sharedLinkApi.createSharedLink(dto); await _apiService.sharedLinksApi.createSharedLink(dto);
if (responseDto != null) { if (responseDto != null) {
return SharedLink.fromDto(responseDto); return SharedLink.fromDto(responseDto);
} }
@ -97,7 +97,7 @@ class SharedLinkService {
DateTime? expiresAt, DateTime? expiresAt,
}) async { }) async {
try { try {
final responseDto = await _apiService.sharedLinkApi.updateSharedLink( final responseDto = await _apiService.sharedLinksApi.updateSharedLink(
id, id,
SharedLinkEditDto( SharedLinkEditDto(
showMetadata: showMeta, showMetadata: showMeta,

View file

@ -39,7 +39,7 @@ class UserService {
Future<List<User>?> _getAllUsers() async { Future<List<User>?> _getAllUsers() async {
try { try {
final dto = await _apiService.userApi.searchUsers(); final dto = await _apiService.usersApi.searchUsers();
return dto?.map(User.fromSimpleUserDto).toList(); return dto?.map(User.fromSimpleUserDto).toList();
} catch (e) { } catch (e) {
_log.warning("Failed get all users", e); _log.warning("Failed get all users", e);
@ -57,7 +57,7 @@ class UserService {
Future<CreateProfileImageResponseDto?> uploadProfileImage(XFile image) async { Future<CreateProfileImageResponseDto?> uploadProfileImage(XFile image) async {
try { try {
return await _apiService.userApi.createProfileImage( return await _apiService.usersApi.createProfileImage(
MultipartFile.fromBytes( MultipartFile.fromBytes(
'file', 'file',
await image.readAsBytes(), await image.readAsBytes(),

BIN
mobile/openapi/README.md generated

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mobile/openapi/lib/api/users_api.dart generated Normal file

Binary file not shown.

View file

@ -76,7 +76,7 @@
} }
], ],
"tags": [ "tags": [
"Activity" "Activities"
] ]
}, },
"post": { "post": {
@ -116,7 +116,7 @@
} }
], ],
"tags": [ "tags": [
"Activity" "Activities"
] ]
} }
}, },
@ -167,7 +167,7 @@
} }
], ],
"tags": [ "tags": [
"Activity" "Activities"
] ]
} }
}, },
@ -202,7 +202,7 @@
} }
], ],
"tags": [ "tags": [
"Activity" "Activities"
] ]
} }
}, },
@ -246,7 +246,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
}, },
"post": { "post": {
@ -286,7 +286,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
} }
}, },
@ -338,7 +338,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
}, },
"get": { "get": {
@ -378,7 +378,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
}, },
"put": { "put": {
@ -428,7 +428,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
} }
}, },
@ -470,7 +470,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
}, },
"put": { "put": {
@ -520,7 +520,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
} }
}, },
@ -562,7 +562,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users (admin)"
] ]
} }
}, },
@ -616,7 +616,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
}, },
"post": { "post": {
@ -656,7 +656,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -688,7 +688,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -723,7 +723,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
}, },
"get": { "get": {
@ -779,7 +779,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
}, },
"patch": { "patch": {
@ -829,7 +829,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -884,7 +884,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
}, },
"put": { "put": {
@ -945,7 +945,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -988,7 +988,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
}, },
"put": { "put": {
@ -1039,7 +1039,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -1091,7 +1091,7 @@
} }
], ],
"tags": [ "tags": [
"Album" "Albums"
] ]
} }
}, },
@ -1126,7 +1126,7 @@
} }
], ],
"tags": [ "tags": [
"API Key" "API Keys"
] ]
}, },
"post": { "post": {
@ -1166,7 +1166,7 @@
} }
], ],
"tags": [ "tags": [
"API Key" "API Keys"
] ]
} }
}, },
@ -1201,7 +1201,7 @@
} }
], ],
"tags": [ "tags": [
"API Key" "API Keys"
] ]
}, },
"get": { "get": {
@ -1241,7 +1241,7 @@
} }
], ],
"tags": [ "tags": [
"API Key" "API Keys"
] ]
}, },
"put": { "put": {
@ -1291,7 +1291,7 @@
} }
], ],
"tags": [ "tags": [
"API Key" "API Keys"
] ]
} }
}, },
@ -1326,7 +1326,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
}, },
"put": { "put": {
@ -1359,7 +1359,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1402,7 +1402,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1447,7 +1447,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1490,7 +1490,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1559,7 +1559,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1594,7 +1594,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1650,7 +1650,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1695,7 +1695,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1730,7 +1730,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1787,7 +1787,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1846,7 +1846,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1907,7 +1907,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -1957,7 +1957,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
}, },
"put": { "put": {
@ -2007,7 +2007,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
] ]
} }
}, },
@ -2068,7 +2068,7 @@
} }
], ],
"tags": [ "tags": [
"Asset" "Assets"
], ],
"x-immich-lifecycle": { "x-immich-lifecycle": {
"addedAt": "v1.106.0" "addedAt": "v1.106.0"
@ -2487,7 +2487,7 @@
} }
], ],
"tags": [ "tags": [
"Duplicate" "Duplicates"
] ]
} }
}, },
@ -2532,7 +2532,7 @@
} }
], ],
"tags": [ "tags": [
"Face" "Faces"
] ]
} }
}, },
@ -2584,7 +2584,7 @@
} }
], ],
"tags": [ "tags": [
"Face" "Faces"
] ]
} }
}, },
@ -2616,7 +2616,7 @@
} }
], ],
"tags": [ "tags": [
"Job" "Jobs"
] ]
} }
}, },
@ -2667,7 +2667,7 @@
} }
], ],
"tags": [ "tags": [
"Job" "Jobs"
] ]
} }
}, },
@ -2702,7 +2702,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
}, },
"post": { "post": {
@ -2742,7 +2742,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -2777,7 +2777,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
}, },
"get": { "get": {
@ -2817,7 +2817,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
}, },
"put": { "put": {
@ -2867,7 +2867,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -2902,7 +2902,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -2947,7 +2947,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -2989,7 +2989,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -3041,7 +3041,7 @@
} }
], ],
"tags": [ "tags": [
"Library" "Libraries"
] ]
} }
}, },
@ -3211,7 +3211,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
}, },
"post": { "post": {
@ -3251,7 +3251,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
} }
}, },
@ -3286,7 +3286,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
}, },
"get": { "get": {
@ -3326,7 +3326,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
}, },
"put": { "put": {
@ -3376,7 +3376,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
} }
}, },
@ -3431,7 +3431,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
}, },
"put": { "put": {
@ -3484,7 +3484,7 @@
} }
], ],
"tags": [ "tags": [
"Memory" "Memories"
] ]
} }
}, },
@ -3682,7 +3682,7 @@
} }
], ],
"tags": [ "tags": [
"Partner" "Partners"
] ]
} }
}, },
@ -3717,7 +3717,7 @@
} }
], ],
"tags": [ "tags": [
"Partner" "Partners"
] ]
}, },
"post": { "post": {
@ -3757,7 +3757,7 @@
} }
], ],
"tags": [ "tags": [
"Partner" "Partners"
] ]
}, },
"put": { "put": {
@ -3807,7 +3807,7 @@
} }
], ],
"tags": [ "tags": [
"Partner" "Partners"
] ]
} }
}, },
@ -3848,7 +3848,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
}, },
"post": { "post": {
@ -3888,7 +3888,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
}, },
"put": { "put": {
@ -3931,7 +3931,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -3973,7 +3973,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
}, },
"put": { "put": {
@ -4023,7 +4023,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4068,7 +4068,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4123,7 +4123,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4178,7 +4178,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4220,7 +4220,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4263,7 +4263,7 @@
} }
], ],
"tags": [ "tags": [
"Person" "People"
] ]
} }
}, },
@ -4295,7 +4295,7 @@
} }
], ],
"tags": [ "tags": [
"File Report" "File Reports"
] ]
} }
}, },
@ -4340,7 +4340,7 @@
} }
], ],
"tags": [ "tags": [
"File Report" "File Reports"
] ]
} }
}, },
@ -4375,7 +4375,7 @@
} }
], ],
"tags": [ "tags": [
"File Report" "File Reports"
] ]
} }
}, },
@ -5019,7 +5019,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
}, },
"post": { "post": {
@ -5059,7 +5059,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
} }
}, },
@ -5117,7 +5117,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
} }
}, },
@ -5152,7 +5152,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
}, },
"get": { "get": {
@ -5192,7 +5192,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
}, },
"patch": { "patch": {
@ -5242,7 +5242,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
} }
}, },
@ -5305,7 +5305,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
}, },
"put": { "put": {
@ -5366,7 +5366,7 @@
} }
], ],
"tags": [ "tags": [
"Shared Link" "Shared Links"
] ]
} }
}, },
@ -5721,7 +5721,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
}, },
"post": { "post": {
@ -5761,7 +5761,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
} }
}, },
@ -5796,7 +5796,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
}, },
"get": { "get": {
@ -5836,7 +5836,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
}, },
"patch": { "patch": {
@ -5886,7 +5886,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
} }
}, },
@ -5941,7 +5941,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
}, },
"get": { "get": {
@ -5984,7 +5984,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
}, },
"put": { "put": {
@ -6037,7 +6037,7 @@
} }
], ],
"tags": [ "tags": [
"Tag" "Tags"
] ]
} }
}, },
@ -6419,7 +6419,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
}, },
@ -6451,7 +6451,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
}, },
"put": { "put": {
@ -6491,7 +6491,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
}, },
@ -6523,7 +6523,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
}, },
"put": { "put": {
@ -6563,7 +6563,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
}, },
@ -6588,7 +6588,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
}, },
"post": { "post": {
@ -6629,7 +6629,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
}, },
@ -6671,7 +6671,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
}, },
@ -6714,7 +6714,7 @@
} }
], ],
"tags": [ "tags": [
"User" "Users"
] ]
} }
} }

View file

@ -13,7 +13,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { ActivityService } from 'src/services/activity.service'; import { ActivityService } from 'src/services/activity.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Activity') @ApiTags('Activities')
@Controller('activities') @Controller('activities')
export class ActivityController { export class ActivityController {
constructor(private service: ActivityService) {} constructor(private service: ActivityService) {}

View file

@ -16,7 +16,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { AlbumService } from 'src/services/album.service'; import { AlbumService } from 'src/services/album.service';
import { ParseMeUUIDPipe, UUIDParamDto } from 'src/validation'; import { ParseMeUUIDPipe, UUIDParamDto } from 'src/validation';
@ApiTags('Album') @ApiTags('Albums')
@Controller('albums') @Controller('albums')
export class AlbumController { export class AlbumController {
constructor(private service: AlbumService) {} constructor(private service: AlbumService) {}

View file

@ -6,7 +6,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { APIKeyService } from 'src/services/api-key.service'; import { APIKeyService } from 'src/services/api-key.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('API Key') @ApiTags('API Keys')
@Controller('api-keys') @Controller('api-keys')
export class APIKeyController { export class APIKeyController {
constructor(private service: APIKeyService) {} constructor(private service: APIKeyService) {}

View file

@ -34,7 +34,7 @@ import { FileUploadInterceptor, Route, UploadFiles, getFiles } from 'src/middlew
import { AssetMediaService } from 'src/services/asset-media.service'; import { AssetMediaService } from 'src/services/asset-media.service';
import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation'; import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation';
@ApiTags('Asset') @ApiTags('Assets')
@Controller(Route.ASSET) @Controller(Route.ASSET)
export class AssetMediaController { export class AssetMediaController {
constructor( constructor(

View file

@ -26,7 +26,7 @@ import { AssetServiceV1 } from 'src/services/asset-v1.service';
import { sendFile } from 'src/utils/file'; import { sendFile } from 'src/utils/file';
import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation'; import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation';
@ApiTags('Asset') @ApiTags('Assets')
@Controller(Route.ASSET) @Controller(Route.ASSET)
export class AssetControllerV1 { export class AssetControllerV1 {
constructor( constructor(

View file

@ -19,7 +19,7 @@ import { Route } from 'src/middleware/file-upload.interceptor';
import { AssetService } from 'src/services/asset.service'; import { AssetService } from 'src/services/asset.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Asset') @ApiTags('Assets')
@Controller(Route.ASSET) @Controller(Route.ASSET)
export class AssetController { export class AssetController {
constructor(private service: AssetService) {} constructor(private service: AssetService) {}

View file

@ -5,7 +5,7 @@ import { DuplicateResponseDto } from 'src/dtos/duplicate.dto';
import { Auth, Authenticated } from 'src/middleware/auth.guard'; import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { DuplicateService } from 'src/services/duplicate.service'; import { DuplicateService } from 'src/services/duplicate.service';
@ApiTags('Duplicate') @ApiTags('Duplicates')
@Controller('duplicates') @Controller('duplicates')
export class DuplicateController { export class DuplicateController {
constructor(private service: DuplicateService) {} constructor(private service: DuplicateService) {}

View file

@ -6,7 +6,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { PersonService } from 'src/services/person.service'; import { PersonService } from 'src/services/person.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Face') @ApiTags('Faces')
@Controller('faces') @Controller('faces')
export class FaceController { export class FaceController {
constructor(private service: PersonService) {} constructor(private service: PersonService) {}

View file

@ -4,7 +4,7 @@ import { FileChecksumDto, FileChecksumResponseDto, FileReportDto, FileReportFixD
import { Authenticated } from 'src/middleware/auth.guard'; import { Authenticated } from 'src/middleware/auth.guard';
import { AuditService } from 'src/services/audit.service'; import { AuditService } from 'src/services/audit.service';
@ApiTags('File Report') @ApiTags('File Reports')
@Controller('reports') @Controller('reports')
export class ReportController { export class ReportController {
constructor(private service: AuditService) {} constructor(private service: AuditService) {}

View file

@ -4,7 +4,7 @@ import { AllJobStatusResponseDto, JobCommandDto, JobIdParamDto, JobStatusDto } f
import { Authenticated } from 'src/middleware/auth.guard'; import { Authenticated } from 'src/middleware/auth.guard';
import { JobService } from 'src/services/job.service'; import { JobService } from 'src/services/job.service';
@ApiTags('Job') @ApiTags('Jobs')
@Controller('jobs') @Controller('jobs')
export class JobController { export class JobController {
constructor(private service: JobService) {} constructor(private service: JobService) {}

View file

@ -13,7 +13,7 @@ import { Authenticated } from 'src/middleware/auth.guard';
import { LibraryService } from 'src/services/library.service'; import { LibraryService } from 'src/services/library.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Library') @ApiTags('Libraries')
@Controller('libraries') @Controller('libraries')
export class LibraryController { export class LibraryController {
constructor(private service: LibraryService) {} constructor(private service: LibraryService) {}

View file

@ -7,7 +7,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { MemoryService } from 'src/services/memory.service'; import { MemoryService } from 'src/services/memory.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Memory') @ApiTags('Memories')
@Controller('memories') @Controller('memories')
export class MemoryController { export class MemoryController {
constructor(private service: MemoryService) {} constructor(private service: MemoryService) {}

View file

@ -7,7 +7,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { PartnerService } from 'src/services/partner.service'; import { PartnerService } from 'src/services/partner.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Partner') @ApiTags('Partners')
@Controller('partners') @Controller('partners')
export class PartnerController { export class PartnerController {
constructor(private service: PartnerService) {} constructor(private service: PartnerService) {}

View file

@ -21,7 +21,7 @@ import { PersonService } from 'src/services/person.service';
import { sendFile } from 'src/utils/file'; import { sendFile } from 'src/utils/file';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Person') @ApiTags('People')
@Controller('people') @Controller('people')
export class PersonController { export class PersonController {
constructor( constructor(

View file

@ -16,7 +16,7 @@ import { SharedLinkService } from 'src/services/shared-link.service';
import { respondWithCookie } from 'src/utils/response'; import { respondWithCookie } from 'src/utils/response';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Shared Link') @ApiTags('Shared Links')
@Controller('shared-links') @Controller('shared-links')
export class SharedLinkController { export class SharedLinkController {
constructor(private service: SharedLinkService) {} constructor(private service: SharedLinkService) {}

View file

@ -9,7 +9,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { TagService } from 'src/services/tag.service'; import { TagService } from 'src/services/tag.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('Tag') @ApiTags('Tags')
@Controller('tags') @Controller('tags')
export class TagController { export class TagController {
constructor(private service: TagService) {} constructor(private service: TagService) {}

View file

@ -13,7 +13,7 @@ import { Auth, Authenticated } from 'src/middleware/auth.guard';
import { UserAdminService } from 'src/services/user-admin.service'; import { UserAdminService } from 'src/services/user-admin.service';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('User') @ApiTags('Users (admin)')
@Controller('admin/users') @Controller('admin/users')
export class UserAdminController { export class UserAdminController {
constructor(private service: UserAdminService) {} constructor(private service: UserAdminService) {}

View file

@ -27,7 +27,7 @@ import { UserService } from 'src/services/user.service';
import { sendFile } from 'src/utils/file'; import { sendFile } from 'src/utils/file';
import { UUIDParamDto } from 'src/validation'; import { UUIDParamDto } from 'src/validation';
@ApiTags('User') @ApiTags('Users')
@Controller(Route.USER) @Controller(Route.USER)
export class UserController { export class UserController {
constructor( constructor(