getUserRoles method

Future<List<AuthUserRoleDto>> getUserRoles({
  1. required String businessId,
})

Implementation

Future<List<AuthUserRoleDto>> getUserRoles({
  required String businessId,
}) async {
  var trace = await monitoringService.createTrace(name: 'getUserRoles');

  try {
    final response = await client.get(
      url:
          '$baseUrl/Permission/GetAllUserRolesByBusiness/businessId=$businessId',
      user: LittlefishAuthManager.instance.user,
      customHeaders: _buildSessionOverride(),
    );

    if (response?.statusCode == 200) {
      var result = <AuthUserRoleDto>[];
      for (var p in (response!.data as List)) {
        result.add(AuthUserRoleDto.fromJson(p));
      }
      trace.setMetric('getUserRoles', result.length);
      return result;
    } else {
      logger.warning(
        this,
        'Failed to get user roles, response is ${response?.statusCode ?? 'null'}',
      );

      var e = ApiErrorHelper.extractApiError(
        response,
        fallbackTitle: 'Failed to Get User Roles',
        fallbackDetail: AppInitialiseErrorCodes.roleDataFetchFailed.message,
        fallbackCode: AppInitialiseErrorCodes.roleDataFetchFailed.code,
      );
      throw e;
    }
  } catch (e) {
    throw Exception('Error: $e');
  } finally {
    trace.stop();
  }
}