import 'dart:convert'; import 'package:unit2/model/rbac/permission.dart'; import 'package:unit2/model/rbac/rbac.dart'; import 'package:http/http.dart' as http; import 'package:unit2/utils/request.dart'; import '../../../utils/urls.dart'; class RbacPermissionServices { static final RbacPermissionServices _instance = RbacPermissionServices(); static RbacPermissionServices get instance => _instance; String xClientKey = "unitK3CQaXiWlPReDsBzmmwBZPd9Re1z"; String xClientKeySecret = "unitcYqAN7GGalyz"; Future> getRbacPermission() async { List permissions = []; String path = Url.instance.getPersmissions(); Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; try { http.Response response = await Request.instance .getRequest(param: {}, path: path, headers: headers); if (response.statusCode == 200) { Map data = jsonDecode(response.body); if (data['data'] != null) { for (var rbac in data['data']) { RBACPermission newRbac = RBACPermission.fromJson(rbac); permissions.add(newRbac); } } } } catch (e) { throw e.toString(); } return permissions; } ////Add Future> add({ required int assignerId, required int? objectId, required List operationsId, }) async { String path = Url.instance.getPersmissions(); Map statusResponse = {}; Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; Map body = { "object_id": objectId, "operations": operationsId, "assigner_user_id": assignerId }; try { http.Response response = await Request.instance .postRequest(path: path, body: body, headers: headers, param: {}); if (response.statusCode == 201) { Map data = jsonDecode(response.body); statusResponse = data; } else { Map data = jsonDecode(response.body); String message = data['message']; statusResponse.addAll({'message': message}); statusResponse.addAll( {'success': false}, ); } } catch (e) { throw e.toString(); } return statusResponse; } Future deletePermission ({required int permissionId}) async { bool success = false; String path = "${Url.instance.getPersmissions()}$permissionId/"; Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'X-Client-Key': xClientKey, 'X-Client-Secret': xClientKeySecret }; try { http.Response response = await Request.instance .deleteRequest(path: path, headers: headers, body: {}, param: {}); if (response.statusCode == 200) { success = true; } } catch (e) { throw e.toString(); } return success; } }