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
This commit is contained in:
MasFlam 2022-05-28 23:27:46 +02:00
parent 012094bd65
commit a09b7e9f02
No known key found for this signature in database
GPG Key ID: 76B56F04FA4B8C8B
2 changed files with 23 additions and 1 deletions

View File

@ -4,6 +4,7 @@ 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
@ -20,7 +21,25 @@ class ApiController extends Controller
public function memes()
{
$memes = Meme::paginate(100);
$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;
}

View File

@ -19,3 +19,6 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
});
Route::middleware('api')->get('memes', [App\Http\Controllers\ApiController::class, 'memes']);
Route::middleware('api')->get('memes/{id}', [App\Http\Controllers\ApiController::class, 'memeById']);
Route::middleware('api')->get('users/{id}', [App\Http\Controllers\ApiController::class, 'userById']);
Route::middleware('api')->get('users/{id}/memes', [App\Http\Controllers\ApiController::class, 'userByIdMemes']);