middleware('auth'); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { return view('home'); } public function list($type) { $deals = []; $folder_path = sprintf('%s/%s', config('app.deals_dir'), $type); if (file_exists($folder_path)) { foreach (new \RecursiveDirectoryIterator($folder_path) as $folder) { if (file_exists($folder->getPathname().'/data.json')) { $deals[] = new Deal($folder_path, $folder->getBasename()); } } } return view('list', ['deals' => $deals, 'type' => $type]); } public function view($type, $id) { $folder_path = sprintf('%s/%s/%s', config('app.deals_dir'), $type, $id); if (file_exists($folder_path)) { $deal = new Deal(sprintf('%s/%s', config('app.deals_dir'), $type), $id); } return view('view', ['deal' => $deal, 'type' => $type]); } public function update(Request $request, $type, $id) { $folder_path = sprintf('%s/%s/%s', config('app.deals_dir'), $type, $id); if (file_exists($folder_path)) { $deal = new Deal(sprintf('%s/%s', config('app.deals_dir'), $type), $id); } if ($request->isMethod('post')) { // TODO filter $json_data = \json_decode(file_get_contents($folder_path . '/data.json'), true); $json_data['subject'] = $request->subject; $json_data['body'] = $request->body; $json_data['category'] = $request->category; $json_data['price'] = $request->price; $result = file_put_contents($folder_path . '/data.json', \json_encode($json_data, JSON_UNESCAPED_UNICODE)) !== false; // FIXME when API is updated /*$updated_deal = \Shikiryu\LBCReposter\Deal::fromJSON($folder_path . '/data.json'); $result = $updated_deal ->setSubject($request->subject) ->setBody($request->body) ->setCategory($request->category) ->setPrice($request->price); ->save(sprintf('%s/%s', config('app.deals_dir'), $type), false);*/ return redirect()->route('deals.list', ['type' => $type])->with('status', ($result ? 'Deal mis à jour': 'ERREUR')); } return view('update', ['deal' => $deal, 'type' => $type]); } public function delete($type, $id) { $result = false; $folder = sprintf('%s/%s/%s', config('app.deals_dir'), $type, $id); if (file_exists($folder)) { $files = array_diff(scandir($folder), ['.','..']); foreach ($files as $file) { (is_dir(sprintf('%s/%s', $folder, $file))) ? delete_folder(sprintf('%s/%s', $folder, $file)) : unlink(sprintf('%s/%s', $folder, $file)); } $result = rmdir($folder); } return redirect()->route('deals.list', ['type' => $type])->with('status', ($result ? 'Deal supprimé': 'ERREUR')); } }