Endpoints

This commit is contained in:
2024-07-22 21:38:21 +02:00
parent 5251c43a6b
commit 700faf4351
10 changed files with 367 additions and 158 deletions
+20 -6
View File
@@ -1,36 +1,42 @@
<?php
// Namespaces
use Pecee\SimpleRouter\SimpleRouter;
use Pecee\Http\Request;
use Khofmann\Response\Response;
// Error handling
SimpleRouter::error(function (Request $request, Exception $exception) {
$code = $exception->getCode();
Response::response()->httpCode(is_int($code) ? $code : 500)->json(["message" => $exception->getMessage()]);
});
// Index
SimpleRouter::all("/", function () {
Response::redirect("docs", 301);
});
/*
* Open routes
* Open
*/
// Login
SimpleRouter::post("/login", [Api\Login\Login::class, "post"]);
// Register and confirm
SimpleRouter::post("/register", [Api\Register\Register::class, "post"]);
SimpleRouter::patch("/register", [Api\Register\Register::class, "patch"]);
/*
* Optional Auth
*/
SimpleRouter::group(["middleware" => Khofmann\Auth\OptAuth::class], function () {
// List posts with user data
// List posts
SimpleRouter::get("/posts", [Api\Posts\Posts::class, "get"]);
});
/*
* Normal Auth routes
* Normal Auth
*/
SimpleRouter::group(["middleware" => Khofmann\Auth\Auth::class], function () {
// Logout
SimpleRouter::post("/logout", [Api\Logout\Logout::class, "post"]);
@@ -38,15 +44,23 @@ SimpleRouter::group(["middleware" => Khofmann\Auth\Auth::class], function () {
SimpleRouter::get("/user/{id}", [Api\User\User::class, "get"]);
// Update self
SimpleRouter::patch("/user/self", [Api\User\User::class, "patchSelf"]);
// Update post
SimpleRouter::patch("/post/{id}", [Api\Post\Post::class, "patch"]);
// Create post
SimpleRouter::post("/posts", [Api\Post\Post::class, "post"]);
});
/*
* Admin Auth routes
* Admin Auth
*/
SimpleRouter::group(["middleware" => Khofmann\Auth\AdminAuth::class], function () {
// List users
SimpleRouter::get("/users", [Api\Users\Users::class, "get"]);
// Update any user
// Update user
SimpleRouter::patch("/user/{id}", [Api\User\User::class, "patch"]);
// Delete any user
// Delete user
SimpleRouter::delete("/user/{id}", [Api\User\User::class, "delete"]);
// Delete post
SimpleRouter::delete("/post/{id}", [Api\Post\Post::class, "delete"]);
});