mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 10:37:11 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:immich_mobile/interfaces/activity_api.interface.dart';
 | |
| import 'package:immich_mobile/mixins/error_logger.mixin.dart';
 | |
| import 'package:immich_mobile/models/activities/activity.model.dart';
 | |
| import 'package:logging/logging.dart';
 | |
| 
 | |
| class ActivityService with ErrorLoggerMixin {
 | |
|   final IActivityApiRepository _activityApiRepository;
 | |
| 
 | |
|   @override
 | |
|   final Logger logger = Logger("ActivityService");
 | |
| 
 | |
|   ActivityService(this._activityApiRepository);
 | |
| 
 | |
|   Future<List<Activity>> getAllActivities(
 | |
|     String albumId, {
 | |
|     String? assetId,
 | |
|   }) async {
 | |
|     return logError(
 | |
|       () => _activityApiRepository.getAll(albumId, assetId: assetId),
 | |
|       defaultValue: [],
 | |
|       errorMessage: "Failed to get all activities for album $albumId",
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   Future<ActivityStats> getStatistics(String albumId, {String? assetId}) async {
 | |
|     return logError(
 | |
|       () => _activityApiRepository.getStats(albumId, assetId: assetId),
 | |
|       defaultValue: const ActivityStats(comments: 0),
 | |
|       errorMessage: "Failed to statistics for album $albumId",
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   Future<bool> removeActivity(String id) async {
 | |
|     return logError(
 | |
|       () async {
 | |
|         await _activityApiRepository.delete(id);
 | |
|         return true;
 | |
|       },
 | |
|       defaultValue: false,
 | |
|       errorMessage: "Failed to delete activity",
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   AsyncFuture<Activity> addActivity(
 | |
|     String albumId,
 | |
|     ActivityType type, {
 | |
|     String? assetId,
 | |
|     String? comment,
 | |
|   }) async {
 | |
|     return guardError(
 | |
|       () => _activityApiRepository.create(
 | |
|         albumId,
 | |
|         type,
 | |
|         assetId: assetId,
 | |
|         comment: comment,
 | |
|       ),
 | |
|       errorMessage: "Failed to create $type for album $albumId",
 | |
|     );
 | |
|   }
 | |
| }
 |