Files
mtdb_movie/common/Billing/Gateways/SyncProductsController.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

33 lines
889 B
PHP
Executable File

<?php
namespace Common\Billing\Gateways;
use Common\Billing\GatewayException;
use Common\Billing\Gateways\Actions\SyncProductOnEnabledGateways;
use Common\Billing\Models\Product;
use Common\Core\BaseController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
class SyncProductsController extends BaseController
{
public function syncProducts(): Response|JsonResponse
{
$products = Product::where('free', false)
->whereHas('prices')
->get();
foreach ($products as $product) {
try {
app(SyncProductOnEnabledGateways::class)->execute($product);
} catch (GatewayException $e) {
return $this->error(
"Could not sync \"$product->name\" product: {$e->getMessage()}",
);
}
}
return $this->success();
}
}