|
@@ -205,4 +205,36 @@ class CollectionController extends Controller
|
|
|
];
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ public function deleteId(Request $request)
|
|
|
+ {
|
|
|
+ $this->validate($request, [
|
|
|
+ 'collection_id' => 'required|int|min:1|exists:collections,id',
|
|
|
+ 'post_id' => 'required|int|min:1|exists:statuses,id'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $profileId = Auth::user()->profile_id;
|
|
|
+ $collectionId = $request->input('collection_id');
|
|
|
+ $postId = $request->input('post_id');
|
|
|
+
|
|
|
+ $collection = Collection::whereProfileId($profileId)->findOrFail($collectionId);
|
|
|
+ $count = $collection->items()->count();
|
|
|
+
|
|
|
+ if($count == 1) {
|
|
|
+ abort(400, 'You cannot delete the only post of a collection!');
|
|
|
+ }
|
|
|
+
|
|
|
+ $status = Status::whereScope('public')
|
|
|
+ ->whereIn('type', ['photo', 'photo:album', 'video'])
|
|
|
+ ->findOrFail($postId);
|
|
|
+
|
|
|
+ $item = CollectionItem::whereCollectionId($collection->id)
|
|
|
+ ->whereObjectType('App\Status')
|
|
|
+ ->whereObjectId($status->id)
|
|
|
+ ->firstOrFail();
|
|
|
+
|
|
|
+ $item->delete();
|
|
|
+
|
|
|
+ return 200;
|
|
|
+ }
|
|
|
}
|