import 'package:core/models/abp.dto.dart'; import 'package:core/models/request.dart'; import 'package:core/services/rest.service.dart'; import 'package:core/services/service.base.dart'; import '../models/notification.dart'; class NotificationService extends ServiceBase { NotificationService(super._injector); RestService get _restService => resolve(); Future sendAsyncByInput(NotificationSendDto input, { RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.POST, url: '/api/notifications', data: input, requestOptions: requestOptions, ); } Future subscribe(String name, { RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.POST, url: '/api/notifications/my-subscribes', data: { 'name': name, }, requestOptions: requestOptions, ); } Future unSubscribe(String name, { RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.DELETE, url: '/api/notifications/my-subscribes?name=$name', requestOptions: requestOptions, ); } Future> getMySubscribedListAsync({ RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.GET, requestOptions: requestOptions, url: '/api/notifications/my-subscribes/all', transformer: (res) => ListResultDto( items: (res.data['items'] as List).map((e) => UserSubscreNotificationDto.fromJson(e)).toList(), ), ); } Future> getAssignableNotifiersAsync({ RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.GET, requestOptions: requestOptions, url: '/api/notifications/assignables', transformer: (res) => ListResultDto( items: (res.data['items'] as List).map((e) => NotificationGroupDto.fromJson(e)).toList(), ), ); } Future> getAssignableTemplatesAsync({ RequestOptions? requestOptions }) { return _restService.request( method: HttpMethod.GET, requestOptions: requestOptions, url: '/api/notifications/assignable-templates', transformer: (res) => ListResultDto( items: (res.data['items'] as List) .map((e) => NotificationTemplateDto.fromJson(e)).toList() ), ); } }