1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2024-12-25 09:17:03 +00:00

Update ApiController, fixes #1705

This commit is contained in:
Daniel Supernault 2019-10-07 00:40:03 -06:00
parent 788f76cf35
commit 139c6651bf
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -83,20 +83,24 @@ class ApiController extends BaseApiController
{ {
abort_if(!Auth::check(), 403); abort_if(!Auth::check(), 403);
$this->validate($request, [ $this->validate($request, [
'q' => 'required|string' 'q' => 'required|string|max:100'
]); ]);
$q = filter_var($request->input('q'), FILTER_SANITIZE_STRING); $q = filter_var($request->input('q'), FILTER_SANITIZE_STRING);
$q = '%' . $q . '%'; $hash = hash('sha256', $q);
$places = Place::where('name', 'like', $q) $key = 'search:location:id:' . $hash;
->take(25) $places = Cache::remember($key, now()->addMinutes(15), function() use($q) {
->get() $q = '%' . $q . '%';
->map(function($r) { return Place::where('name', 'like', $q)
return [ ->take(80)
'id' => $r->id, ->get()
'name' => $r->name, ->map(function($r) {
'country' => $r->country, return [
'url' => $r->url() 'id' => $r->id,
]; 'name' => $r->name,
'country' => $r->country,
'url' => $r->url()
];
});
}); });
return $places; return $places;
} }