2025-03-09 20:30:58 -05:00
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
2025-06-20 11:45:31 -05:00
|
|
|
import 'package:immich_mobile/domain/models/person.model.dart';
|
2024-09-24 14:50:21 +02:00
|
|
|
import 'package:immich_mobile/repositories/person_api.repository.dart';
|
2023-11-19 16:04:44 +00:00
|
|
|
import 'package:logging/logging.dart';
|
2023-06-23 10:44:02 -05:00
|
|
|
|
2026-04-17 20:01:44 +05:30
|
|
|
final personServiceProvider = Provider.autoDispose<PersonService>(
|
|
|
|
|
(ref) => PersonService(ref.watch(personApiRepositoryProvider)),
|
|
|
|
|
);
|
2023-06-23 10:44:02 -05:00
|
|
|
|
|
|
|
|
class PersonService {
|
2023-11-19 16:04:44 +00:00
|
|
|
final Logger _log = Logger("PersonService");
|
2025-06-20 11:45:31 -05:00
|
|
|
final PersonApiRepository _personApiRepository;
|
2026-04-15 23:00:27 +05:30
|
|
|
PersonService(this._personApiRepository);
|
2023-06-23 10:44:02 -05:00
|
|
|
|
2025-07-18 22:21:39 +08:00
|
|
|
Future<List<PersonDto>> getAllPeople() async {
|
2023-06-23 10:44:02 -05:00
|
|
|
try {
|
2024-09-24 14:50:21 +02:00
|
|
|
return await _personApiRepository.getAll();
|
2023-11-19 16:04:44 +00:00
|
|
|
} catch (error, stack) {
|
|
|
|
|
_log.severe("Error while fetching curated people", error, stack);
|
|
|
|
|
return [];
|
2023-06-23 10:44:02 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-18 22:21:39 +08:00
|
|
|
Future<PersonDto?> updateName(String id, String name) async {
|
2023-06-23 10:44:02 -05:00
|
|
|
try {
|
2024-09-24 14:50:21 +02:00
|
|
|
return await _personApiRepository.update(id, name: name);
|
2023-11-19 16:04:44 +00:00
|
|
|
} catch (error, stack) {
|
|
|
|
|
_log.severe("Error while updating person name", error, stack);
|
2023-06-23 10:44:02 -05:00
|
|
|
}
|
2023-11-19 16:04:44 +00:00
|
|
|
return null;
|
2023-06-23 10:44:02 -05:00
|
|
|
}
|
|
|
|
|
}
|