<?php namespace App\Http\Controllers\API; use App\Interfaces\PageRepositoryInterface; use App\Interfaces\MemberRepositoryInterface; use App\Http\Controllers\Controller; use App\Services\Assets\FileUploadService; use Illuminate\Http\Request; use function _\find; class PageAPIController extends Controller { protected $pages; protected $member; protected $upload; public function __construct( PageRepositoryInterface $pageRepository, MemberRepositoryInterface $memberRepo, FileUploadService $fileUploadService, ) { $this->pages = $pageRepository; $this->upload = $fileUploadService; $this->member = $memberRepo; } public function update(Request $request) { $body = $request->collect(); $images = $request->file('images'); $apiKey = $request->header('fipamo-api-key'); $imageList = ''; $fileList = ''; $body = $body->all(); //if new images are present, replace existing //if not, keep current if ($request->hasfile('images')) { foreach ($images as $key => $image) { $response = $this->upload->handlefile($image, false); $imageList = $imageList . $response['filePath'] . ','; } } else { $imageList = $body['imageList']; } $folks = $this->member->getAll(); $member = find($folks, ['key' => $apiKey]); $request->session()->put('member', $member); $body['slug'] = strtolower(str_replace(' ', '-', $body['title'])); $body['imageList'] = $imageList; $body['fileList'] = $fileList; $body = (object) $body; $result = $this->pages->update($body); session()->flush(); return response()->json($result)->header('Content-Type', 'application/json'); } public function create(Request $request) { $body = $request->collect(); $images = $request->file('images'); $apiKey = $request->header('fipamo-api-key'); $imageList = ''; $fileList = ''; if ($request->hasfile('images')) { foreach ($images as $key => $image) { $response = $this->upload->handlefile($image, false); $imageList = $imageList . $response['filePath'] . ','; } } $folks = $this->member->getAll(); $member = find($folks, ['key' => $apiKey]); $request->session()->put('member', $member); $body = $body->all(); $body['slug'] = strtolower(str_replace(' ', '-', $body['title'])); $body['imageList'] = $imageList; $body['fileList'] = $fileList; $body = (object) $body; $result = $this->pages->create($body); session()->flush(); return response()->json($result)->header('Content-Type', 'application/json'); } public function delete(Request $request) { $body = json_decode($request->getContent()); $apiKey = $request->header('fipamo-api-key'); $folks = $this->member->getAll(); $member = find($folks, ['key' => $apiKey]); $request->session()->put('member', $member); $result = $this->pages->delete($body); session()->flush(); return response()->json($result)->header('Content-Type', 'application/json'); } }