Compare commits
2 commits
82928ea6df
...
d402c7f2d6
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d402c7f2d6 | ||
![]() |
78cd7df1c1 |
2 changed files with 96 additions and 0 deletions
41
app/app/api/stats/route.ts
Normal file
41
app/app/api/stats/route.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
import { NextResponse, NextRequest } from 'next/server'
|
||||
import { validateToken, decryptToken } from '@/lib/jwt'
|
||||
import { db } from "@/lib/db"
|
||||
|
||||
export async function GET(req: NextRequest) {
|
||||
try {
|
||||
const token = req?.headers.get("authorization")?.split(" ")[1]
|
||||
|
||||
if (token == undefined || !validateToken(token)) {
|
||||
return NextResponse.json({"message": "You did not provide token or it is in the wrong format"},{
|
||||
status: 401,
|
||||
});
|
||||
}
|
||||
|
||||
const tokenData = decryptToken(token)
|
||||
|
||||
if (!tokenData.admin) {
|
||||
return NextResponse.json({"message": "You need to be an admin to use this endpoint."},{
|
||||
status: 401,
|
||||
});
|
||||
}
|
||||
|
||||
const decks = await db.deck.findMany()
|
||||
const bsets = await db.bset.findMany()
|
||||
const users = await db.utilisateurice.findMany()
|
||||
|
||||
|
||||
return NextResponse.json({"data": { "decks": decks.length, "bsets": bsets.length, "users": users.length },"message": "Here are the stats"},{
|
||||
status: 200,
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
return NextResponse.json(
|
||||
{ error: "Failed, check console" },
|
||||
{
|
||||
status: 500,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
55
docs/api.md
Normal file
55
docs/api.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
# Documentation de l'API Brawlset
|
||||
|
||||
Cette page de documentation est potentiellement pas à jour. Vérifiez la date de dernière édition si quelque chose ne fonctionne pas comme indiqué ici, et le cas échéant contactez l'administrateur de ce dépot.
|
||||
|
||||
|
||||
|
||||
## POST: /api/auth/signin
|
||||
|
||||
Ce chemin permet de récupérer le token [JWT](https://jwt.io/) permettant de vous authentifier pour les requêtes API nécessitant authentification.
|
||||
|
||||
Données à envoyer :
|
||||
```
|
||||
{
|
||||
email: <zuma@example.com>,
|
||||
password: <gogaellego>
|
||||
}
|
||||
```
|
||||
|
||||
Réponse :
|
||||
```
|
||||
{
|
||||
JWT: <token> // Données encodées dans le token : username (string), admin (boolean), id (uuid)
|
||||
}
|
||||
```
|
||||
|
||||
## GET: /api/account/decks
|
||||
|
||||
Ce chemin permet de recupérer les decks appartenant à l'utilisateur-rice reconnue grace au Token d'authentification.
|
||||
Aucune données ne sont à envoyer par contre il faut spécifier l'entête `Authorization: Bearer <token>` voir doc [JWT](https://jwt.io/introduction).
|
||||
|
||||
Réponse :
|
||||
```
|
||||
{
|
||||
data: [
|
||||
{
|
||||
id: "e1cf4964-e187-407c-acc8-cc47199b208d",
|
||||
url: "",
|
||||
name: "Kellan, the kid",
|
||||
utilisateurice_id: "2670aac4-f8e9-4952-9ec5-4c246abe2401",
|
||||
bset_id: "b694338e-8514-47ea-8e86-27e73d463e56",
|
||||
color_identity: ["G","U","W"],
|
||||
commander: <card_object>,
|
||||
cartes: [
|
||||
{ amount: 1, carte: <card_object>},
|
||||
{ amount: 1, carte: <card_object>},
|
||||
{ amount: 1, carte: <card_object>},
|
||||
{ amount: 1, carte: <card_object>},
|
||||
...
|
||||
{ amount: 1, carte: <card_object>},
|
||||
]
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
Loading…
Reference in a new issue