login2 static method
Logs in and returns data about the user if relevant.
Returns null if connection issue.
User offUser = User(userId: 'username or email', password: 'password');
LoginStatus? status = await OpenFoodAPIClient.login2(offUser);
if (status == null) {
throw Exception('Network error');
}
print(status.successful);
print(status.userId);
print(status.userEmail);
print(status.userName);
if (status.successful) {
print('Logged in');
OpenFoodAPIConfiguration.globalUser = offUser;
//Store offUser in storage
} else if (!status.successful) {
print('Error, wrong credentials ${status.statusVerbose}');
}
Implementation
static Future<LoginStatus?> login2(
final User user, {
final UriProductHelper uriHelper = uriHelperFoodProd,
}) async {
final Uri uri = uriHelper.getPostUri(
path: '/cgi/auth.pl',
);
final Response response = await HttpHelper().doPostRequest(
uri,
<String, String>{'body': '1'},
user,
uriHelper: uriHelper,
addCredentialsToBody: true,
);
if (response.statusCode == 200 || response.statusCode == 403) {
return LoginStatus.fromJson(
HttpHelper().jsonDecode(response.body),
response.headers,
);
}
return null;
}