claimReward static method

Future<String> claimReward({
  1. required String rewardId,
})

Implementation

static Future<String> claimReward({required String rewardId}) async {
  final deviceServerToken = GlobalAdVariables.deviceServerToken;

  if (deviceServerToken == null) {
    log("fetchRewards:[Device Token]=> ${deviceServerToken?.devicePublicKey}");
    return "";
  }
  PackageInfo packageInfo = await PackageInfo.fromPlatform();

  try {
    final res = await Dio().post(
      "${baseUrl}reward/claim",
      data: {
        "reward_id": rewardId,
        "reward_type_id": GlobalAdVariables.fullJson['reward_type_id'],
        "device_public_key": deviceServerToken.devicePublicKey,
        "device_iifd":
            await AppTrackingTransparency.getAdvertisingIdentifier(),
        "appName": packageInfo.appName,
        "package": packageInfo.packageName,
        "version": packageInfo.version,
        "buildNumber": packageInfo.buildNumber,
      },
      options: Options(
          headers: {"device-public-key": deviceServerToken.devicePublicKey}),
    );

    if (res.data['success'] ?? false) {
      return res.data['link'];
    }

    return "";
  } on DioException catch (dioError) {
    log("MultiAds:[claimReward]->Dio Error[❌]-> Message -> ${dioError.message.toString()}");
    log("MultiAds:[claimReward]->Dio Error[❌]-> Response -> ${dioError.response!.data.toString()}");
    return "";
  } catch (error) {
    log("MultiAds:[claimReward]->Catch Error[❌]-> ${error.toString()}");
    return "";
  }
}