Browse Source

Update CollectionController

Daniel Supernault 2 years ago
parent
commit
b8ad594a05
2 changed files with 27 additions and 27 deletions
  1. 13 8
      app/Http/Controllers/CollectionController.php
  2. 14 19
      app/Services/CollectionService.php

+ 13 - 8
app/Http/Controllers/CollectionController.php

@@ -77,6 +77,7 @@ class CollectionController extends Controller
         $collection->visibility = $request->input('visibility');
         $collection->save();
 
+        CollectionService::deleteCollection($id);
         return CollectionService::setCollection($collection->id, $collection);
     }
 
@@ -93,9 +94,9 @@ class CollectionController extends Controller
         if($collection->items()->count() == 0) {
             abort(404);
         }
-        $collection->title = e($request->input('title'));
+        $collection->title = strip_tags($request->input('title'));
         $collection->description = strip_tags($request->input('description'));
-        $collection->visibility = strip_tags($request->input('visibility'));
+        $collection->visibility = $request->input('visibility');
         $collection->published_at = now();
         $collection->save();
         return CollectionService::setCollection($collection->id, $collection);
@@ -134,6 +135,7 @@ class CollectionController extends Controller
 
         $collection = Collection::whereProfileId($profileId)->findOrFail($collectionId);
         $count = $collection->items()->count();
+        CollectionService::deleteCollection($collection->id);
 
         if($count) {
             CollectionItem::whereCollectionId($collection->id)
@@ -301,11 +303,6 @@ class CollectionController extends Controller
             ->whereIn('type', ['photo', 'photo:album', 'video'])
             ->findOrFail($postId);
 
-        CollectionService::removeItem(
-        	$collection->id,
-        	$status->id
-        );
-
         $item = CollectionItem::whereCollectionId($collection->id)
             ->whereObjectType('App\Status')
             ->whereObjectId($status->id)
@@ -313,9 +310,17 @@ class CollectionController extends Controller
 
         $item->delete();
 
+        CollectionItem::whereCollectionId($collection->id)
+            ->orderBy('created_at')
+            ->get()
+            ->each(function($item, $index) {
+                $item->order = $index;
+                $item->save();
+            });
+
         $collection->updated_at = now();
         $collection->save();
-        CollectionService::setCollection($collection->id, $collection);
+        CollectionService::deleteCollection($collection->id);
 
         return 200;
     }

+ 14 - 19
app/Services/CollectionService.php

@@ -22,37 +22,32 @@ class CollectionService
 
 	public static function addItem($id, $sid, $score)
 	{
-		Redis::zadd(self::CACHE_KEY . 'items:' . $id, $score, $sid);
+		return Redis::zadd(self::CACHE_KEY . 'items:' . $id, $score, $sid);
 	}
 
 	public static function removeItem($id, $sid)
 	{
-		Redis::zrem(self::CACHE_KEY . 'items:' . $id, $sid);
+		return Redis::zrem(self::CACHE_KEY . 'items:' . $id, $sid);
 	}
 
 	public static function clearItems($id)
 	{
-		Redis::del(self::CACHE_KEY . 'items:' . $id);
+		return Redis::del(self::CACHE_KEY . 'items:' . $id);
 	}
 
 	public static function coldBootItems($id)
 	{
-		return Cache::remember(self::CACHE_KEY . 'items:' . $id, 86400, function() use($id) {
-			return CollectionItem::whereCollectionId($id)
-				->orderBy('order')
-				->get()
-				->filter(function($item) use($id) {
-					return StatusService::get($item->object_id) != null;
-				})
-				->each(function($item) use ($id) {
-					self::addItem($id, $item->object_id, $item->order);
-				})
-				->map(function($item) {
-					return (string) $item->object_id;
-				})
-				->values()
-				->toArray();
-		});
+		return CollectionItem::whereCollectionId($id)
+			->orderBy('order')
+			->get()
+			->each(function($item) use ($id) {
+				return self::addItem($id, $item->object_id, $item->order);
+			})
+			->map(function($item) {
+				return (string) $item->object_id;
+			})
+			->values()
+			->toArray();
 	}
 
 	public static function count($id)