cms/app/Services/AppJsObjectService.php

67 lines
1.9 KiB
PHP

<?php
namespace App\Services;
use Auth;
use App\Product;
/**
* 提供資料給前端js使用
*
* Class AppJsObjectService
* @package App\Services
*/
class AppJsObjectService
{
public function get()
{
$option = app('Option');
$siteState = app('SiteState');
$obj = [
'locale' => app()->getLocale(),
'csrfToken' => csrf_token(),
'user' => null,
'options' => [
'googleApiKey' => $option->google_api_key,
'fbAppId' => $option->fb_app_id,
],
'translations' => [
],
'methods' => new \stdClass,
'utils' => new \stdClass
];
if(Auth::check()) {
$user = Auth::user();
$obj['user'] = [
'id' => $user->id,
'apiToken' => $user->api_token
];
}
if($siteState->isAdminArea) {
$obj['admin']['ajax']['resource'] = [
'mediaFile' => [
'upload' => route('media.upload'),
'get' => route('media.get'),
'update' => route('media.update', [':id']),
'destroy' => route('media.destroy', [':id']),
'updateCategory' => route('media.updateCategory')
],
'mediaCategory' => [
'add' => route('media-category.store'),
'index' => route('media-category.index'),
'update' => route('media-category.update', [':id']),
'destroy' => route('media-category.destroy', [':id']),
'updateOrder' => route('media-category.updateOrder')
],
];
$obj['admin']['translations'] = [
'dataTables' => trans('datatables'),
'mediaLibrary' => trans('mediaLibrary')
];
}
return $obj;
}
}