login method

  1. @override
FutureOr<PassedHttpEntity> login(
  1. RequestHolder request,
  2. ResponseHolder response,
  3. 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,
      );
    },
  );
}