updateUserRoles method

Future<UserData> updateUserRoles({
  1. required String userId,
  2. required List<String> roles,
})

Update user roles

Implementation

Future<UserData> updateUserRoles({
  required String userId,
  required List<String> roles,
}) async {
  state = const AsyncValue.loading();

  try {
    final client = ref.read(prodobitClientProvider);
    final user = await client.user.updateUserRoles(
      userId: userId,
      roles: roles,
    );

    // Refresh related providers
    ref
      ..invalidate(usersProvider)
      ..invalidate(userProvider(userId));

    state = const AsyncValue.data(null);
    return user;
  } catch (e, stack) {
    state = AsyncValue.error(e, stack);
    rethrow;
  }
}