Current File : //var/www/prestashop/modules/ps_eventbus/controllers/front/apiThemes.php
<?php

use PrestaShop\Module\PsEventbus\Config\Config;
use PrestaShop\Module\PsEventbus\Controller\AbstractApiController;
use PrestaShop\Module\PsEventbus\Repository\ThemeRepository;

class ps_EventbusApiThemesModuleFrontController extends AbstractApiController
{
    public $type = Config::COLLECTION_THEMES;

    /**
     * @return void
     *
     * @throws\PrestaShopException
     */
    public function postProcess()
    {
        $response = [];

        /** @var string $jobId */
        $jobId = Tools::getValue('job_id');

        /** @var ThemeRepository $themeRepository */
        $themeRepository = $this->module->getService(ThemeRepository::class);

        /** @var array<mixed> $themeInfo */
        $themeInfo = $themeRepository->getThemes();

        /** @var bool $initFullSync */
        $initFullSync = Tools::getValue('full', 0) == 1;

        try {
            $response = $this->proxyService->upload($jobId, $themeInfo, $this->startTime, $initFullSync);
        } catch (Exception $exception) {
            $this->exitWithExceptionMessage($exception);
        }

        $this->exitWithResponse(
            array_merge(
                [
                    'remaining_objects' => 0,
                    'total_objects' => count($themeInfo),
                    'job_id' => $jobId,
                    'object_type' => $this->type,
                    'syncType' => 'full',
                ],
                $response
            )
        );
    }
}