fix: controller reminder
This commit is contained in:
@@ -96,15 +96,16 @@ private function authorizeReminder(Reminder $reminder)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function packageIndex(PackageName $packageName)
|
public function packageIndex(PackageName $packageName)
|
||||||
{
|
{
|
||||||
$reminders = Reminder::where('user_id', Auth::id())
|
// Get package-wide reminders (user_id = null) for this package
|
||||||
->where('package_name_id', $packageName->id)
|
$reminders = Reminder::where('package_name_id', $packageName->id)
|
||||||
->orderBy('time')
|
->whereNull('user_id')
|
||||||
->get();
|
->orderBy('time')
|
||||||
|
->get();
|
||||||
|
|
||||||
return response()->json($reminders);
|
return response()->json($reminders);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function packageStore(Request $request, PackageName $packageName)
|
public function packageStore(Request $request, PackageName $packageName)
|
||||||
{
|
{
|
||||||
@@ -126,39 +127,53 @@ public function packageStore(Request $request, PackageName $packageName)
|
|||||||
return response()->json($reminder, 201);
|
return response()->json($reminder, 201);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function packageUpdate(Request $request, PackageName $packageName, Reminder $reminder)
|
public function packageUpdate(Request $request, PackageName $packageName, Reminder $reminder)
|
||||||
{
|
{
|
||||||
$this->authorizeReminder($reminder);
|
// Basic checks
|
||||||
|
if (!auth()->check()) {
|
||||||
|
return response()->json(['message' => 'Unauthorized'], 401);
|
||||||
|
}
|
||||||
|
|
||||||
if ($reminder->package_name_id !== $packageName->id) {
|
if ($reminder->user_id !== null) {
|
||||||
return response()->json(['message' => 'This reminder does not belong to this package'], 403);
|
return response()->json(['message' => 'This is not a package-wide reminder'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($reminder->package_name_id !== $packageName->id) {
|
||||||
|
return response()->json(['message' => 'This reminder does not belong to this package'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $request->validate([
|
||||||
|
'title' => 'sometimes|string|max:255',
|
||||||
|
'description' => 'nullable|string|max:500',
|
||||||
|
'time' => 'sometimes|date',
|
||||||
|
'repeatable' => 'boolean',
|
||||||
|
'repeat_days' => 'nullable|integer|min:1',
|
||||||
|
'data' => 'nullable|array',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$reminder->update($data);
|
||||||
|
|
||||||
|
return response()->json($reminder);
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = $request->validate([
|
public function packageDestroy(PackageName $packageName, Reminder $reminder)
|
||||||
'title' => 'sometimes|string|max:255',
|
{
|
||||||
'description' => 'nullable|string|max:500',
|
// Basic checks
|
||||||
'time' => 'sometimes|date',
|
if (!auth()->check()) {
|
||||||
'repeatable' => 'boolean',
|
return response()->json(['message' => 'Unauthorized'], 401);
|
||||||
'repeat_days' => 'nullable|integer|min:1',
|
}
|
||||||
'data' => 'nullable|array',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$reminder->update($data);
|
if ($reminder->user_id !== null) {
|
||||||
|
return response()->json(['message' => 'This is not a package-wide reminder'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json($reminder);
|
if ($reminder->package_name_id !== $packageName->id) {
|
||||||
}
|
return response()->json(['message' => 'This reminder does not belong to this package'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
public function packageDestroy(PackageName $packageName, Reminder $reminder)
|
$reminder->delete();
|
||||||
{
|
|
||||||
$this->authorizeReminder($reminder);
|
|
||||||
|
|
||||||
if ($reminder->package_name_id !== $packageName->id) {
|
return response()->json(null, 204);
|
||||||
return response()->json(['message' => 'This reminder does not belong to this package'], 403);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$reminder->delete();
|
|
||||||
|
|
||||||
return response()->json(null, 204);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user