storeAuthDataSession method

  1. @override
Future<Either<Failure, Unit>> storeAuthDataSession(
  1. AuthenticationData authData
)
inherited

Implementation

@override
Future<Either<Failure, Unit>> storeAuthDataSession(AuthenticationData authData) async {
  return handleDefault((left, right) async {
    await sharedPreferences.setString(AuthSharedPrefKeys.TOKEN_KEY, authData.token);
    await sharedPreferences.setString(AuthSharedPrefKeys.USER_ID_KEY, authData.id);
    if (authData.refreshToken != null) {
      await sharedPreferences.setString(AuthSharedPrefKeys.REFRESH_KEY, authData.refreshToken!);
    }
    if (config.provideDeviceInfo) {
      AuthDeviceInfo deviceInfo;
      if (authData.deviceInfo != null) {
        deviceInfo = authData.deviceInfo!;
      } else {
        // check if we have already generated a device info on the past
        var deviceInfoData = sharedPreferences.getString(AuthSharedPrefKeys.DEVICE_INFO);
        deviceInfo = deviceInfoData != null
            ? AuthDeviceInfoModel.fromJson(deviceInfoData)
            // if not autogenerate new one
            : (await AuthDeviceInfoModel.create());
      }

      await sharedPreferences.setString(
        (AuthSharedPrefKeys.DEVICE_INFO),
        deviceInfo.toJson(),
      );
    }
    if (authData.user != null) {
      await sharedPreferences.setString(
        AuthSharedPrefKeys.USER_KEY,
        authData.user!.toJson(),
      );
    }
    return right(unit);
  });
}