signIn method

Future<UserAndTokenResponse> signIn({
  1. required String username,
  2. required String password,
  3. bool? rememberMe,
})

Sign in with username and password

username The username of the user

password The password of the user

rememberMe Whether to remember the user

Implementation

Future<UserAndTokenResponse> signIn({
  required String username,
  required String password,
  bool? rememberMe,
}) async {
  try {
    final response = await dio.post(
      "/sign-in/username",
      data: {
        "username": username,
        "password": password,
        if (rememberMe != null) "rememberMe": rememberMe,
      },
      options: await getOptions(isTokenRequired: false),
    );
    final body = response.data;
    await tokenStore.saveToken(body["token"]);
    return UserAndTokenResponse.fromJson(body);
  } catch (e) {
    final message = getErrorMessage(e);
    if (message == null) rethrow;
    throw message;
  }
}