registerUser method

Future<ApiReturn> registerUser({
  1. required String userName,
  2. required String hashedPassword,
})

Registers a new user via the API.

This method sends a POST request to the API to register a user using their login identifier (e.g., username or email) and hashed password. If registration is successful, a User object is returned in the ApiReturn response.

  • userName: The user's login identifier.
  • hashedPassword: The user's hashed password.

Returns an ApiReturn object with the result of the registration request.

Implementation

Future<ApiReturn> registerUser({
  required String userName,
  required String hashedPassword,
}) async {
  String apiEndpointUrl = '$_baseUrl/v1/register';
  Map credentialsItemMap = _apiConnector.getCredentialsItemMap(
    userName: userName,
    hashedPassword: hashedPassword,
  );
  var body = json.encode(credentialsItemMap);

  http.Response response;
  try {
    response = await http.post(
      Uri.parse(apiEndpointUrl),
      headers: {'Content-Type': 'application/json'},
      body: body,
    );
  } catch (e) {
    return ApiReturn(
      success: false,
      returnCode: 599,
      explanation: e.toString(),
    );
  }

  if (response.statusCode == 200) {
    User user = getUserFromHttpResponse(response);
    return ApiReturn(
      success: true,
      returnCode: 200,
      explanation: 'Successfully registered new user',
      data: user,
    );
  } else {
    _apiConnector.printHttpResponse(response);
    return ApiReturn(
      success: false,
      returnCode: response.statusCode,
      explanation: '${response.reasonPhrase} ${response.body}',
    );
  }
}