login method
Logs in a user via the API.
This method sends a POST request to log in a user using their login identifier
(e.g., username or email) and hashed password. If the login 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 login request.
Implementation
Future<ApiReturn> login({
required String userName,
required String hashedPassword,
}) async {
String apiEndpointUrl = '$_baseUrl/v1/login';
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 logged in user',
data: user,
);
} else {
_apiConnector.printHttpResponse(response);
return ApiReturn(
success: false,
returnCode: response.statusCode,
explanation: '${response.reasonPhrase} ${response.body}',
);
}
}