registerUser method
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}',
);
}
}