login method
Implementation
Future<GenericServerResponse<LoginOutput>> login(LoginInput input) async {
GenericServerResponse<LoginOutput> genericServerResponse = new GenericServerResponse();
genericServerResponse.data = new LoginOutput();
try{
String url = UrlUtils.getUrl(_baseUrl, UrlUtils.URL_AUTH);
String jsonInput = jsonEncode(input.toJson());
Response response = await bsm!.genericBeaHttpPost(url, jsonInput);
int? statusCode = response.statusCode;
if(statusCode == 200){
String? token = response.data['result'];
if(token == null || token.isEmpty){
throw new Exception('Impossibile reperire il token');
}
await storage.write(key: KeyUtils.KEY_RICORDAMI, value: input.ricordami == true ? "true" : "false");
await storage.write(key: KeyUtils.KEY_TOKEN_SESSION, value: token);
await storage.write(key: KeyUtils.KEY_USER, value: input.usernameOrEmailAddress);
if(input.ricordami!){
await storage.write(key: KeyUtils.KEY_PASSWORD, value: input.password);
}
genericServerResponse.data.user = input.usernameOrEmailAddress;
genericServerResponse.data.token = token;
genericServerResponse.data.isLogged = true;
}else if(statusCode == 500){
var res = response.data['error'];
BeaError? error = res == null ? res : BeaError.fromJson(res);
if (error != null) {
genericServerResponse.data.user = input.usernameOrEmailAddress;
genericServerResponse.data.token = "";
genericServerResponse.data.isLogged = false;
genericServerResponse.beaError = error;
} else {
genericServerResponse.beaError = new BeaError("Unknown Error", 0, "");
}
}else{
genericServerResponse.beaError = new BeaError('Codice $statusCode ricevuto dal server non gestito!', 0, "");
throw new Exception('Codice $statusCode ricevuto dal server non gestito!');
}
}on Exception catch (e){
print('BEA Login error');
FLog.error(
className: this.runtimeType.toString(),
methodName: "login",
text: 'BEA Login error - $e');
throw e;
}
return genericServerResponse;
}