loginUser method
Future<Response>
loginUser(
- Request req
)
Implementation
Future<shelf.Response> loginUser(shelf.Request req) async {
if (userStore == null) {
return _bad('user store not configured',
status: HttpStatus.notImplemented);
}
final map = await _bodyAsMap(req);
final username = map['username']?.trim();
final email = map['email']?.trim();
final password = map['password'];
if ((username ?? '').isEmpty ||
(email ?? '').isEmpty ||
(password ?? '').isEmpty) {
return _bad('username/email/password are required');
}
try {
final user = await userStore!.login(
username: username!,
email: email!,
password: password!,
);
return _ok({
'token': user.token,
'user': user.toPublicJson(),
});
} on StateError catch (e) {
throw UnAuthError(
message: e.message.toString(),
code: 'unauthorized',
statusCode: HttpStatus.unauthorized,
);
}
}