<?php namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Services\Assets\FileUploadService; use App\Interfaces\MemberRepositoryInterface; use App\Services\Data\SettingsService; class FileUploadAPIController extends Controller { protected $upload; protected $member; protected $settings; public function __construct( FileUploadService $fileUploadService, MemberRepositoryInterface $memberRepo, SettingsService $settingsService ) { $this->upload = $fileUploadService; $this->member = $memberRepo; $this->settings = $settingsService; } public function upload(Request $request) { $result = $this->upload->handleFile($request); //update configs for specfic uploads switch ($request['source']) { case 'avatar-upload': $member = []; $member = session('member'); $member['avatar'] = $result['filePath']; $member = (object) $member; $this->member->update($member); break; case 'background-upload': $this->settings->updateGlobalData('background', $result['filePath']); break; } return $result; } }