refactor(mobile): (1) user.interface.dart (#19322)

* refactor(mobile): user.interface.dart

* generate files

* refactor(mobile): (2) user_api.interface.dart (#19323)

* refactor(mobile): (2) user_api.interface.dart

* generate files

* refactor(mobile): (3) sync_stream.interface.dart (#19325)
This commit is contained in:
Alex 2025-06-19 18:25:18 -05:00 committed by GitHub
parent a4c0dc5007
commit bce4f93c90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 82 additions and 157 deletions

View file

@ -3,15 +3,16 @@ import 'dart:io';
import 'package:collection/collection.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/domain/interfaces/exif.interface.dart';
import 'package:immich_mobile/domain/interfaces/user.interface.dart';
import 'package:immich_mobile/domain/interfaces/user_api.interface.dart';
import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/domain/services/user.service.dart';
import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/entities/etag.entity.dart';
import 'package:immich_mobile/extensions/collection_extensions.dart';
import 'package:immich_mobile/infrastructure/repositories/user.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/user_api.repository.dart';
import 'package:immich_mobile/interfaces/album.interface.dart';
import 'package:immich_mobile/interfaces/album_api.interface.dart';
import 'package:immich_mobile/interfaces/album_media.interface.dart';
@ -68,12 +69,12 @@ class SyncService {
final IAlbumRepository _albumRepository;
final IAssetRepository _assetRepository;
final IExifInfoRepository _exifInfoRepository;
final IUserRepository _userRepository;
final IsarUserRepository _isarUserRepository;
final UserService _userService;
final IPartnerRepository _partnerRepository;
final IETagRepository _eTagRepository;
final IPartnerApiRepository _partnerApiRepository;
final IUserApiRepository _userApiRepository;
final UserApiRepository _userApiRepository;
final AsyncMutex _lock = AsyncMutex();
final Logger _log = Logger('SyncService');
final AppSettingsService _appSettingsService;
@ -88,7 +89,7 @@ class SyncService {
this._assetRepository,
this._exifInfoRepository,
this._partnerRepository,
this._userRepository,
this._isarUserRepository,
this._userService,
this._eTagRepository,
this._appSettingsService,
@ -165,7 +166,7 @@ class SyncService {
/// Returns `true`if there were any changes
Future<bool> _syncUsersFromServer(List<UserDto> users) async {
users.sortBy((u) => u.id);
final dbUsers = await _userRepository.getAll(sortBy: SortUserBy.id);
final dbUsers = await _isarUserRepository.getAll(sortBy: SortUserBy.id);
final List<String> toDelete = [];
final List<UserDto> toUpsert = [];
final changes = diffSortedListsSync(
@ -186,9 +187,9 @@ class SyncService {
onlySecond: (UserDto b) => toDelete.add(b.id),
);
if (changes) {
await _userRepository.transaction(() async {
await _userRepository.delete(toDelete);
await _userRepository.updateAll(toUpsert);
await _isarUserRepository.transaction(() async {
await _isarUserRepository.delete(toDelete);
await _isarUserRepository.updateAll(toUpsert);
});
}
return changes;
@ -448,7 +449,7 @@ class SyncService {
final (existingInDb, updated) = await _linkWithExistingFromDb(toAdd);
await upsertAssetsWithExif(updated);
final assetsToLink = existingInDb + updated;
final usersToLink = await _userRepository.getByUserIds(userIdsToAdd);
final usersToLink = await _isarUserRepository.getByUserIds(userIdsToAdd);
album.name = dto.name;
album.description = dto.description;