Archived
1
0
This repository has been archived on 2024-05-04. You can view files and clone it, but cannot push or open issues or pull requests.
cyca/app/Http/Controllers/HighlightController.php
2022-01-12 00:35:37 +01:00

104 lines
2.4 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use App\Http\Requests\StoreHighlightRequest;
use App\Models\Highlight;
use Illuminate\Http\Request;
class HighlightController extends Controller
{
/**
* Store a newly created resource in storage.
*
* @return \Illuminate\Http\Response
*/
public function store(StoreHighlightRequest $request)
{
$data = $request->validated();
$highlight = new Highlight();
$highlight->user_id = $request->user()->id;
$highlight->expression = $data['expression'];
$highlight->color = $data['color'];
$highlight->save();
return $request->user()->highlights()->get();
}
/**
* Update the specified resource in storage.
*
* @param \App\Models\Models\Highlight $highlight
*
* @return \Illuminate\Http\Response
*/
public function update(StoreHighlightRequest $request, Highlight $highlight)
{
if ($highlight->user_id !== $request->user()->id) {
abort(404);
}
$data = $request->validated();
$highlight->expression = $data['expression'];
$highlight->color = $data['color'];
$highlight->save();
return $request->user()->highlights()->get();
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Models\Hightlight $hightlight
*
* @return \Illuminate\Http\Response
*/
public function destroy(Request $request, Highlight $highlight)
{
if ($highlight->user_id !== $request->user()->id) {
abort(404);
}
$highlight->delete();
return $request->user()->highlights()->get();
}
/**
* Update my groups positions.
*
* @return \Illuminate\Http\Response
*/
public function updatePositions(Request $request)
{
if (!$request->has('positions')) {
abort(422);
}
$positions = $request->input('positions');
if (!is_array($positions)) {
abort(422);
}
$user = $request->user();
foreach ($positions as $highlightId => $position) {
if (!is_numeric($highlightId) || !is_numeric($position)) {
abort(422);
}
$highlight = $user->highlights()->findOrFail($highlightId);
$highlight->position = $positions[$highlightId];
$highlight->save();
}
}
}