// AUTO-GENERATED FILE, DO NOT MODIFY! // part of openapi.api; class ActivitiesApi { ActivitiesApi([ApiClient? apiClient]) : apiClient = apiClient ?? defaultApiClient; final ApiClient apiClient; static const ApiVersion getActivitiesAddedIn = .new(1, 0, 0); static const ApiState getActivitiesState = .stable; static const ApiVersion createActivityAddedIn = .new(1, 0, 0); static const ApiState createActivityState = .stable; static const ApiVersion getActivityStatisticsAddedIn = .new(1, 0, 0); static const ApiState getActivityStatisticsState = .stable; static const ApiVersion deleteActivityAddedIn = .new(1, 0, 0); static const ApiState deleteActivityState = .stable; /// List all activities /// /// Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first. /// /// Available since server v1.0.0. /// /// Note: This method returns the HTTP [Response]. Future getActivitiesWithHttpInfo({ required String albumId, String? assetId, ReactionLevel? level, ReactionType? type, String? userId, Future? abortTrigger, }) async { final apiPath = r'/activities'; Object? postBody; final queryParams = []; final headerParams = {}; final formParams = {}; queryParams.addAll(_queryParams('', 'albumId', albumId)); if (assetId != null) { queryParams.addAll(_queryParams('', 'assetId', assetId)); } if (level != null) { queryParams.addAll(_queryParams('', 'level', level)); } if (type != null) { queryParams.addAll(_queryParams('', 'type', type)); } if (userId != null) { queryParams.addAll(_queryParams('', 'userId', userId)); } const contentTypes = []; return apiClient.invokeAPI( apiPath, r'GET', queryParams, postBody, headerParams, formParams, contentTypes.isEmpty ? null : contentTypes.first, abortTrigger: abortTrigger, ); } /// List all activities /// /// Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first. /// /// Available since server v1.0.0. Future> getActivities({ required String albumId, String? assetId, ReactionLevel? level, ReactionType? type, String? userId, Future? abortTrigger, }) async { final response = await getActivitiesWithHttpInfo( albumId: albumId, assetId: assetId, level: level, type: type, userId: userId, abortTrigger: abortTrigger, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) { final responseBody = await _decodeBodyBytes(response); return (await apiClient.deserializeAsync(responseBody, r'List') as List) .cast() .toList(growable: false); } throw ApiException(response.statusCode, r'Unexpected empty response body'); } /// Create an activity /// /// Create a like or a comment for an album, or an asset in an album. /// /// Available since server v1.0.0. /// /// Note: This method returns the HTTP [Response]. Future createActivityWithHttpInfo(ActivityCreateDto activityCreateDto, {Future? abortTrigger}) async { final apiPath = r'/activities'; Object? postBody = activityCreateDto; final queryParams = []; final headerParams = {}; final formParams = {}; const contentTypes = [r'application/json']; return apiClient.invokeAPI( apiPath, r'POST', queryParams, postBody, headerParams, formParams, contentTypes.isEmpty ? null : contentTypes.first, abortTrigger: abortTrigger, ); } /// Create an activity /// /// Create a like or a comment for an album, or an asset in an album. /// /// Available since server v1.0.0. Future createActivity(ActivityCreateDto activityCreateDto, {Future? abortTrigger}) async { final response = await createActivityWithHttpInfo(activityCreateDto, abortTrigger: abortTrigger); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) { return await apiClient.deserializeAsync(await _decodeBodyBytes(response), r'ActivityResponseDto') as ActivityResponseDto; } throw ApiException(response.statusCode, r'Unexpected empty response body'); } /// Retrieve activity statistics /// /// Returns the number of likes and comments for a given album or asset in an album. /// /// Available since server v1.0.0. /// /// Note: This method returns the HTTP [Response]. Future getActivityStatisticsWithHttpInfo({ required String albumId, String? assetId, Future? abortTrigger, }) async { final apiPath = r'/activities/statistics'; Object? postBody; final queryParams = []; final headerParams = {}; final formParams = {}; queryParams.addAll(_queryParams('', 'albumId', albumId)); if (assetId != null) { queryParams.addAll(_queryParams('', 'assetId', assetId)); } const contentTypes = []; return apiClient.invokeAPI( apiPath, r'GET', queryParams, postBody, headerParams, formParams, contentTypes.isEmpty ? null : contentTypes.first, abortTrigger: abortTrigger, ); } /// Retrieve activity statistics /// /// Returns the number of likes and comments for a given album or asset in an album. /// /// Available since server v1.0.0. Future getActivityStatistics({ required String albumId, String? assetId, Future? abortTrigger, }) async { final response = await getActivityStatisticsWithHttpInfo( albumId: albumId, assetId: assetId, abortTrigger: abortTrigger, ); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) { return await apiClient.deserializeAsync(await _decodeBodyBytes(response), r'ActivityStatisticsResponseDto') as ActivityStatisticsResponseDto; } throw ApiException(response.statusCode, r'Unexpected empty response body'); } /// Delete an activity /// /// Removes a like or comment from a given album or asset in an album. /// /// Available since server v1.0.0. /// /// Note: This method returns the HTTP [Response]. Future deleteActivityWithHttpInfo(String id, {Future? abortTrigger}) async { final apiPath = r'/activities/{id}'.replaceAll('{id}', id); Object? postBody; final queryParams = []; final headerParams = {}; final formParams = {}; const contentTypes = []; return apiClient.invokeAPI( apiPath, r'DELETE', queryParams, postBody, headerParams, formParams, contentTypes.isEmpty ? null : contentTypes.first, abortTrigger: abortTrigger, ); } /// Delete an activity /// /// Removes a like or comment from a given album or asset in an album. /// /// Available since server v1.0.0. Future deleteActivity(String id, {Future? abortTrigger}) async { final response = await deleteActivityWithHttpInfo(id, abortTrigger: abortTrigger); if (response.statusCode >= HttpStatus.badRequest) { throw ApiException(response.statusCode, await _decodeBodyBytes(response)); } } }