<?php namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Services\Data\SettingsService; use App\Services\Assets\RenderService; use App\Services\Upkeep\MaintenanceService; use App\Interfaces\MemberRepositoryInterface; use App\Services\Assets\AssetService; class SettingsAPIController extends Controller { protected $settings; protected $render; protected $mainteance; protected $member; protected $assets; public function __construct( SettingsService $settingsService, RenderService $renderService, MaintenanceService $maintenanceService, MemberRepositoryInterface $memberRepo, AssetService $assetService ) { $this->settings = $settingsService; $this->render = $renderService; $this->maintenance = $maintenanceService; $this->member = $memberRepo; $this->assets = $assetService; } public function publish(Request $request) { $this->assets->moveToTheme(true); $result = $this->render->publishAll(); return response()->json($result)->header('Content-Type', 'application/json'); } public function sync(Request $request) { $body = json_decode($request->getContent()); //update member if needed $this->member->update($body->member); //sync settings $result = $this->settings->sync($body); return response()->json($result)->header('Content-Type', 'application/json'); } public function navSync(Request $request) { $body = json_decode($request->getContent()); $result = $this->settings->navSync($body); return response()->json($result)->header('Content-Type', 'application/json'); } public function createBackup(Request $request) { return response()->json($this->maintenance->createBackup())->header('Content-Type', 'application/json'); } public function downloadBackup(Request $request) { if ($this->member::status()) { $latest = $this->settings->getGlobal()['last_backup']; $file = 'backup-' . $latest . '.zip'; return response()->download('../content/backups/' . $file, $file, ['Content-Type: application/zip']); } } //init stuff public function setupFresh(Request $request) { $body = json_decode($request->getContent()); dd($body); } }