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