|
@@ -14,6 +14,8 @@ use App\{
|
|
};
|
|
};
|
|
use Auth, DB, Cache;
|
|
use Auth, DB, Cache;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
|
|
+use App\Transformer\Api\AccountTransformer;
|
|
|
|
+use App\Transformer\Api\AccountWithStatusesTransformer;
|
|
use App\Transformer\Api\StatusStatelessTransformer;
|
|
use App\Transformer\Api\StatusStatelessTransformer;
|
|
use League\Fractal;
|
|
use League\Fractal;
|
|
use League\Fractal\Serializer\ArraySerializer;
|
|
use League\Fractal\Serializer\ArraySerializer;
|
|
@@ -131,7 +133,31 @@ class DiscoverController extends Controller
|
|
|
|
|
|
public function profilesDirectory(Request $request)
|
|
public function profilesDirectory(Request $request)
|
|
{
|
|
{
|
|
- $profiles = Profile::whereNull('domain')->simplePaginate(48);
|
|
|
|
- return view('discover.profiles.home', compact('profiles'));
|
|
|
|
|
|
+ return view('discover.profiles.home');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function profilesDirectoryApi(Request $request)
|
|
|
|
+ {
|
|
|
|
+ $this->validate($request, [
|
|
|
|
+ 'page' => 'integer|max:10'
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ $page = $request->input('page') ?? 1;
|
|
|
|
+ $key = 'discover:profiles:page:' . $page;
|
|
|
|
+ $ttl = now()->addHours(12);
|
|
|
|
+
|
|
|
|
+ $res = Cache::remember($key, $ttl, function() {
|
|
|
|
+ $profiles = Profile::whereNull('domain')
|
|
|
|
+ ->whereNull('status')
|
|
|
|
+ ->whereIsPrivate(false)
|
|
|
|
+ ->has('statuses')
|
|
|
|
+ ->whereIsSuggestable(true)
|
|
|
|
+ // ->inRandomOrder()
|
|
|
|
+ ->simplePaginate(8);
|
|
|
|
+ $resource = new Fractal\Resource\Collection($profiles, new AccountTransformer());
|
|
|
|
+ return $this->fractal->createData($resource)->toArray();
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return $res;
|
|
}
|
|
}
|
|
}
|
|
}
|