diff --git a/app/Http/Controllers/Api/BaseApiController.php b/app/Http/Controllers/Api/BaseApiController.php index 6c14d07a2..6a4497587 100644 --- a/app/Http/Controllers/Api/BaseApiController.php +++ b/app/Http/Controllers/Api/BaseApiController.php @@ -11,8 +11,9 @@ use Auth, Cache, Storage, URL; use Carbon\Carbon; use App\{ Avatar, - Notification, + Like, Media, + Notification, Profile, Status }; @@ -21,7 +22,8 @@ use App\Transformer\Api\{ NotificationTransformer, MediaTransformer, MediaDraftTransformer, - StatusTransformer + StatusTransformer, + StatusStatelessTransformer }; use League\Fractal; use App\Util\Media\Filter; @@ -338,4 +340,29 @@ class BaseApiController extends Controller $res = $this->fractal->createData($resource)->toArray(); return response()->json($res, 200, [], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); } + + public function accountLikes(Request $request) + { + $user = $request->user(); + abort_if(!$request->user(), 403); + + $limit = 10; + $page = (int) $request->input('page', 1); + + if($page > 20) { + return []; + } + + $favourites = $user->profile->likes() + ->latest() + ->simplePaginate($limit) + ->pluck('status_id'); + + $statuses = Status::find($favourites)->reverse(); + + $resource = new Fractal\Resource\Collection($statuses, new StatusStatelessTransformer()); + $res = $this->fractal->createData($resource)->toArray(); + + return response()->json($res, 200, [], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); + } }