HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/app/Http/Controllers/TemplateController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Model\Template;
use App\Model\Setting;
use App;
use App\Library\Tool;

use function App\Helpers\xml_to_array;

class TemplateController extends Controller
{
    public function builderEdit(Request $request, $uid)
    {
        // Generate info
        $user = $request->user();
        $template = Template::findByUid($uid);

        // authorize
        if (!$request->user()->admin->can('update', $template)) {
            return $this->notAuthorized();
        }

        //
        $validator = $template->updateContent($request->json, $request->content);

        //
        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        }

        //
        return response()->json([
            'status' => 'success',
        ]);
    }

    public function categories(Request $request, $uid)
    {
        $template = Template::findByUid($uid);

        // authorize
        if (!$request->user()->admin->can('update', $template)) {
            return $this->notAuthorized();
        }

        if ($request->isMethod('post')) {
            foreach ($request->categories as $key => $value) {
                $category = \App\Model\TemplateCategory::findByUid($key);
                if ($value == 'true') {
                    $template->addCategory($category);
                } else {
                    $template->removeCategory($category);
                }
            }
        }

        return view('templates.categories', [
            'template' => $template,
        ]);
    }

    public function uploadTemplateAssets(Request $request, $uid)
    {
        $template = Template::findByUid($uid);

        // authorize
        if (!$request->user()->customer->can('update', $template)) {
            return $this->notAuthorized();
        }

        if (!$request->assetType || $request->assetType == 'upload' || $request->assetType == 'audio') {
            throw new \Exception('moved to AssetTemplate::uploadMedia');
        } elseif ($request->assetType == 'url') {
            $assetUrl = $template->uploadAssetFromUrl($request->url);
        } elseif ($request->assetType == 'base64') {
            $assetUrl = $template->uploadAssetFromBase64($request->url_base64);
        }

        return response()->json([
            'url' => $assetUrl
        ]);
    }

    public function changeTemplate(Request $request, $uid)
    {
        $template = Template::findByUid($uid);
        $fromTemplate = Template::findByUid($request->template_uid);

        // Change theme from a template
        $template->theme = $fromTemplate->theme;
        $template->json = $fromTemplate->json;
        $template->content = $fromTemplate->content;
        $template->save();
    }
}