updateUserMetadata method

Future<User?> updateUserMetadata(
  1. String userId, {
  2. UpdateUserMetadataRequest? updateUserMetadataRequest,
})

Merge and update a user's metadata

Update a user's metadata attributes by merging existing values with the provided parameters. This endpoint behaves differently than the Update a user endpoint. Metadata values will not be replaced entirely. Instead, a deep merge will be performed. Deep means that any nested JSON objects will be merged as well. You can remove metadata keys at any level by setting their value to null.

Parameters:

Implementation

Future<User?> updateUserMetadata(
  String userId, {
  UpdateUserMetadataRequest? updateUserMetadataRequest,
}) async {
  final response = await updateUserMetadataWithHttpInfo(
    userId,
    updateUserMetadataRequest: updateUserMetadataRequest,
  );
  if (response.statusCode >= HttpStatus.badRequest) {
    throw ApiException(response.statusCode, await _decodeBodyBytes(response));
  }
  // When a remote server returns no body with a status of 204, we shall not decode it.
  // At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
  // FormatException when trying to decode an empty string.
  if (response.body.isNotEmpty &&
      response.statusCode != HttpStatus.noContent) {
    return await apiClient.deserializeAsync(
      await _decodeBodyBytes(response),
      'User',
    ) as User;
  }
  return null;
}