xmrmemes/app/Http/Controllers/ApiController.php
MasFlam a09b7e9f02
Improve the API
- sort /api/memes newest first
- add endpoints for lookup of user and meme by id
- add endpoint for paginating through the given user's memes
2022-05-28 23:27:46 +02:00

46 lines
1 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Meme;
use App\Models\User;
use Artesaos\SEOTools\Facades\SEOTools;
class ApiController extends Controller
{
public function documentation()
{
SEOTools::setTitle('API');
$data = [
'memes_example' => json_encode(Meme::limit(1)->get(), JSON_PRETTY_PRINT),
'memes_endpoint' => url('api/memes'),
];
return view('api', ['data' => $data]);
}
public function memes()
{
$memes = Meme::orderByDesc('created_at')->paginate(100);
return $memes;
}
public function memeById($id)
{
$meme = Meme::where('id', $id)->firstOrFail();
return $meme;
}
public function userById($id)
{
$user = User::where('id', $id)->firstOrFail();
return $user;
}
public function userByIdMemes($id)
{
$memes = Meme::where('user_id', $id)->orderByDesc('created_at')->paginate(20);
return $memes;
}
}