35 lines
955 B
PHP
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');
|
|
}
|
|
}
|