api/app/Http/Controllers/AdMobRewardedAdCallbackCont...

35 lines
955 B
PHP

<?php
namespace App\Http\Controllers;
use App\Exceptions\InvalidRewardedAdCallback;
use App\Services\AdMobServerSideVerificationVerifier;
use App\Services\GenerationCreditService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Throwable;
class AdMobRewardedAdCallbackController extends Controller
{
public function __invoke(
Request $request,
AdMobServerSideVerificationVerifier $verifier,
GenerationCreditService $credits,
): Response {
try {
$verifier->verify($request);
$credits->rewardFromAdMobCallback($request->query());
} catch (InvalidRewardedAdCallback $exception) {
report($exception);
return response('invalid rewarded ad callback', 400);
} catch (Throwable $exception) {
report($exception);
return response('rewarded ad callback failed', 400);
}
return response('ok');
}
}