-
Notifications
You must be signed in to change notification settings - Fork 0
API
You can find the Postman collection here.
Ce document énonce les différentes routes de l'API du serveur.
On utilise un module de pagination couplé avec Mongoose. Le fonctionnement est très simple... il suffit d'ajouter un paramètre à l'URL comme suit : GET /drawings?page=1. Les index commencent à 1.
GET /drawings
Retourne une liste paginée de tous les dessins. Cette liste ne contient que le métadata par rapport aux dessins, c'est à dire qu'elle ne contient que le nom, le propriétaire, le statut de protection, la visibilité et le mode.
Aucun
{
"docs": [
{
"_id": "5a9f004a42a41425f8628af8",
"name": "lel",
"mode": "stroke",
"owner": {
"_id": "5a95a02aa3454a120497ac2b",
"username": "me@me.ca"
},
"protection": {
"active": true
},
"visibility": "public",
"users": {
"active": 0,
"limit": 4
}
},
{
"_id": "5aa05988ab30441f10d62afb",
"name": "ah bin!",
"mode": "pixel",
"owner": {
"_id": "5a95a02aa3454a120497ac2b",
"username": "me@me.ca"
},
"protection": {
"active": false
},
"visibility": "private",
"users": {
"active": 1,
"limit": 4
}
}
],
"total": 2,
"limit": 20,
"page": "1",
"pages": 1
}POST /drawings
Crée un nouveau dessin.
| Key | Value |
|---|---|
| name | Nom du nouveau dessin |
| mode | String "stroke" ou "pixel" pour le mode du dessin. |
| visibility | (Optional) String "private" ou "public" pour la visibilité du dessin dans la gallerie. |
| protection-active | (Optional) Booléen true si le dessin est protégé, false sinon. |
| protection-password | (Required if protection-active is set) Mot de passe pour protéger le dessin |
{
"status": "success",
"objectId": "5a99d15bc0171a116876226d"
}GET /drawings/:id
Retourne le dessin demandé.
Aucun si le dessin est public ou si je suis le owner du dessin.
Sinon, il faut ajouter un header.
| Key | Value |
|---|---|
| protection-password | Mot de passe du dessin |
{
"_id": "5aa05988ab30441f10d62afb",
"updatedAt": "2018-03-07T22:17:16.030Z",
"createdAt": "2018-03-07T21:28:40.964Z",
"name": "ah bin!",
"mode": "pixel",
"owner": {
"_id": "5a95a02aa3454a120497ac2b",
"username": "me@me.ca"
},
"protection": {
"active": false
},
"strokes": [],
"pixels": [],
"visibility": "private",
"users": {
"active": 1,
"limit": 4
}
}"strokes": [
{
"strokeUuid": "58030ff0-04de-4ea3-97fb-3014fce985d9",
"dots": [
{
"y": 72.68285714285713,
"x": 39.57142857142857
},
{
"y": 72.68285714285713,
"x": 40.14285714285714
}
],
"strokeAttributes": {
"stylusTip": "Ellipse",
"width": 11,
"height": 11,
"color": "#FF000000"
}
}
]"pixels": [
{
"x": 345,
"y": 99,
"color": "#FFFFFFFF"
},
{
"x": 16,
"y": 281,
"color": "#FF000000"
},
{
"x": 345,
"y": 98,
"color": "#FFF0F8FF"
},
]GET /drawings/:id/thumbnail
Retourne le thumbnail du dessin demandé.
Aucun
{
"thumbnail": ""
}GET /drawings/:id/actions
Retourne une liste paginée des actions effectuées sur un dessin. Les éléments sont en ordre inverse, c'est à dire le plus récent en premier.
Aucun
{
"docs": [
{
"name": "NewStroke",
"author": {
"_id": "5ab16440ba9a443f84334a6a",
"username": "me@me.ca"
},
"timestamp": 1521774772284,
"id": 1
},
{
"name": "NewStroke",
"author": {
"_id": "5ab16440ba9a443f84334a6a",
"username": "me@me.ca"
},
"timestamp": 1521774770987,
"id": 1
}
],
"total": 2,
"limit": 40,
"page": "1",
"pages": 1
}PATCH /drawings/:id
Modifie une/des propriétés d'un dessin.
| Key | Value |
|---|---|
| visibility | (Optional) String "private" ou "public" pour la visibilité du dessin dans la gallerie. |
| protection-active | (Optional) Booléen true si le dessin est protégé, false sinon. |
| protection-password | (Required if protection-active is true) Mot de passe pour protéger le dessin |
{
"status": "success"
}PUT /drawings/:id/thumbnail
Met à jour le thumbnail du dessin.
| Key | Value |
|---|---|
| thumbnail | String du thumbnail en base64. |
{
"status": "success"
}GET /templates
Retourne une liste paginée de tous les templates. Cette liste ne contient que le métadata par rapport aux templates, c'est à dire qu'elle ne contient que le nom, le propriétaire, le mode et le nombre de likes.
Aucun
{
"docs": [
{
"_id": "5ab6cecd43244025605ec24d",
"name": "ah bin!",
"mode": "stroke",
"owner": {
"_id": "5ab25d247b46256db0a83ea6",
"username": "me@me.ca"
}
"likes": {
"users": [
{
"_id": "5ab25d247b46256db0a83ea6",
"username": "me@me.ca"
}
],
"total": 1
}
},
{
"_id": "5ab6ddce9bc8e6679c07bc05",
"name": "hahaha",
"mode": "stroke",
"owner": {
"_id": "5ab25d247b46256db0a83ea6",
"username": "me@me.ca"
}
"likes": {
"users": [],
"total": 0
}
}
],
"total": 2,
"limit": 20,
"page": "1",
"pages": 1
}POST /templates
Crée un nouveau template à partir d'un dessin existant.
| Key | Value |
|---|---|
| drawing-id | Id dessin à partir duquel on crée le template. |
{
"status": "success",
"objectId": "5ab82c0cf4be3b1f68857801"
}GET /templates/:id
Retourne le template demandé.
Aucun
{
"_id": "5ab82c0cf4be3b1f68857801",
"updatedAt": "2018-03-25T23:09:00.829Z",
"createdAt": "2018-03-25T23:09:00.829Z",
"name": "ah bin!",
"mode": "stroke",
"owner": {
"_id": "5ab25d247b46256db0a83ea6",
"username": "me@me.ca"
}
"pixels": [],
"strokes": []
}GET /templates/:id/thumbnail
Retourne le thumbnail du template demandé.
Aucun
{
"thumbnail": ""
}POST /templates/:id/likes
Ajoute l'utilisateur actuel dans la liste de "likes" sur un template.
Aucun
{
"status": "success",
"objectId": "5ab6de049bc8e6679c07bc06"
}POST /login
| Key | Value |
|---|---|
| Nom d'utilisateur | |
| password | Mot de passe |
{
"status": "success",
"objectId": "5ab16440ba9a443f84334a6a"
}POST /logout
Aucun
{
"status": "success"
}POST /register
| Key | Value |
|---|---|
| Nom d'utilisateur | |
| password | Mot de passe |
{
"status": "success",
"objectId": "5ad3a14ca111a812ec611a17"
}PUT /account/password
| Key | Value |
|---|---|
| old-password | Le mot de passe actuel |
| password | Le nouveau mot de passe voulu |
| confirm-password | Confirmation du nouveau mot de passe |
{
"status": "success",
"objectId": "5ab16440ba9a443f84334a6a"
}GET /ping
Ping le serveur.
Aucun
204 No Content