login method
FutureOr<PassedHttpEntity>
login(
- RequestHolder request,
- ResponseHolder response,
- Map<String, dynamic> pathArgs
)
override
Implementation
@override
FutureOr<PassedHttpEntity> login(
RequestHolder request,
ResponseHolder response,
Map<String, dynamic> pathArgs,
) {
return _wrapper(
request,
response,
pathArgs,
() async {
dynamic data;
try {
data = await request.readAsJson();
} catch (e) {
throw RequestBodyError();
}
String emailKey = BodyFields.email;
String passwordKey = BodyFields.password;
String? email = data[emailKey];
String? password = data[passwordKey];
if (email == null || password == null) {
throw RequestBodyError('email and password can\'t be empty');
}
String jwt = await authService.loginWithEmail(
email: email,
password: password,
);
UserDataService userDataService = UserDataService(authService);
var userData = await userDataService.getUserDataByEmail(email) ?? {};
Map<String, dynamic> resData = {
BodyFields.userData: userData,
ContextFields.jwt: jwt,
};
return SendResponse.sendDataToUser(
response,
resData,
);
},
);
}