JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "SyncProductsController.php"

Full Path: /home/markqprx/iniasli.pro/Gateways/Contracts/SyncProductsController.php
File size: 889 bytes
MIME-type: text/x-php
Charset: utf-8

<?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();
    }
}