API End Points

Tous les points de sortie

Tableau des urls de l’api

Objet

Methode

Url

Explication

Fonction appelée

Articles

GET

/api/articles

Get Articles

ApiServer.views.getArticles()

Informations

GET

/api/informations

Get Informations

ApiServer.views.getInfos()

Surveys

GET

/api/sondages

Get Surveys

ApiServer.views.getSurveys()

Displays

GET

/api/displays

Get Displays

ApiServer.views.getDisplays()

Meals

GET

/api/meals

Get Meals

ApiServer.views.getMeals()

Profs Absent

GET

/api/profsAbs

Get Profs Abs

ApiServer.views.getProfsAbs()

Post Vote

GET

/api/postVote

Post Vote

ApiServer.views.postVote()

Get Tweets

GET

/api/tweets

Get Tweets

ApiServer.views.getTweets()

Get Meteo

GET

/api/meteo

Get Meteo

ApiServer.views.getMeteo()


Articles

Récupère les articles visibles et les renvoie en JSON

Fonction associée : ApiServer.views.getArticles()

Exemple :

GET /api/articles

Retourne :

[
    {
        "title": "Mon bel article",
        "article": "Lorem ipsum blabla il est joli l'article pas vrai",
        "image": "Articles/IMG_5532_rTKf30T.png",
        "date_creation": "2022-01-17",
        "author": {
            "first_name": "Elo",
            "last_name": "Rap"
        },
        "date_last_modif": "2022-01-07"
    }
]

Informations

Récupère les informations visibles et les renvoie en JSON

Fonction associée : ApiServer.views.getInfos()

Exemple :

GET /api/infos

Retourne :

[
    {
        "message": "Internat fermé jusque nouvel ordre !",
        "type": {
            "id": 1,
            "name": "Important"
        },
        "date_creation": "2022-01-22",
        "author": {
            "first_name": "Elo",
            "last_name": "Rap"
        }
    }
]

Type d’informations:

Tableau des différents types d’informations possibles

ID

Nom

Comportement

1

Important

Texte en rouge sur les écrans

2

Lambda

Aucun comportement


Surveys

Récupère les sondages visibles, avec les réponses associées et les renvoie en JSON

Fonction associée : ApiServer.views.getSurveys()

Exemple :

GET /api/sondages

Retourne :

[
    {
        "id": 1,
        "author": 1,
        "subject": "Combat de MMA entre le proviseur et les AED",
        "date_creation": "2022-01-22",
        "date_end": "2022-02-06",
        "answers": [
            {
                "id": 1,
                "text": "Pour"
            },
            {
                "id": 2,
                "text": "Contre"
            }
        ]
    }
]

Displays

Récupère l’écran et la page associée au paramètre code_name dans l’url de la requêtes et retourne les infos sous format JSON.

Fonction associée : ApiServer.views.getDisplays()

Paramètres

Tableau des paramètres possibles de l’url

Nom

Type

Exemple de valeur

code_name

str

viescolaire

Exemple :

GET /api/displays?code_name=viescolaire

Retourne :

[
    {
        "code_name": "viescolaire",
        "name": "Vie scolaire Bat C",
        "page": "Article + Profs abs + Agenda + Twitter"
    }
]

Meals

Récupère le menu correpondant au paramètre date et retourne ses infos sous format JSON

Fonction associée : ApiServer.views.getMeals()

Paramètres

Tableau des paramètres possibles de l’url

Nom

Type

Exemple de valeur

date

str

2022-01-19

Exemple :

GET /api/meals?date=2022-01-19

Retourne :

[
    {
        "date": "2022-01-19",
        "is_midday": true,
        "meal": {
            "1": [
                "Pâté en croûte ",
                "Salade verte oignons frits"
            ],
            "2": [
                "Poisson pané ",
                "Côte d'agneau"
            ],
            "3": [
                "Légumes grillés ",
                "Gratin dauphinois"
            ],
            "4": [
                "eau"
            ],
            "5": [
                "Fromage",
                "Yaourt"
            ],
            "6": [
                "Fruit de saison",
                "Mousse chocolat ",
                "Ananas chantilly"
            ]
        }
    },
]

Profs Abs

Récupère les profs absent correpondant à la date d’aujourd’hui et retourne les infos sous format JSON

Fonction associée : ApiServer.views.getProfsAbs()

Exemple :

GET /api/profsAbs

Retourne :

[
  {
    "prof": "JESUS R.",
    "debut": "2022-01-19T21:15:25Z",
    "fin": "2022-01-19T23:15:35Z"
  }
]

Post Votes

Poste le vote d’un utilisateur dans la DB à l’aide de l’username du password et de l’id du vote

Retourne le status de la requête, si tout s’est bien passé ou non

Fonction associée : ApiServer.views.postVote()

Paramètres

Tableau des paramètres possibles de l’url

Nom

Type

Exemple de valeur

username

str

EloRap

password

str

123

vote

int

1

Exemple :

GET /api/postVote?vote=1&username=EloRap&password=123

Retourne :

[
    {
    "code": 200
    "message": ""
    }
]

Code :

Tableau des codes / messages possibles renvoyés

Code

Message

Explication

200

Tout à bien fonctionné, le vote est posté

400

Il manque une information ! (soit vote, soit identifiants)

Une des informations est manquante dans la requête

403

Les identifiants sont invalides

Le couple username/password ne correspondent à aucun user dans la DB

404

Aucun sondage en cours

Aucun sondage n’est en cours

404

Mauvaise réponse

La réponse du vote donné n’existe pas / n’est pas trouvé dans la DB


Tweets

Récupère les 5 derniers tweets du lycée bourdelle et les retourne sous format JSON

Fonction associée : ApiServer.views.getTweets()

Exemple :

GET /api/tweets

Retourne :

{
    "data": [
        {
            "text": "ERASMUS avec les collèges @Col_Despeyrous ...",
            "created_at": "2022-01-21T09:47:27Z"
        },
        {
            "text": "ERASMUS+ LP BOURDELLE: signatures des con ...",
            "created_at": "2022-01-13T10:26:51Z"
        },
        {
            "text": "09/11/21 Les Term STL @LyceeBourdelle au m...",
            "created_at": "2022-01-11T08:13:50Z"
        },
        {
            "text": "ORIENTATION AMBITIEUSE @LyceeBourdelle : p...",
            "created_at": "2021-12-17T16:36:49Z"
        },
        {
            "text": "ERASMUS +@LyceeBourdelle : voyage préparat...",
            "created_at": "2021-12-17T16:11:51Z"
        }
    ],
    "meta": {
        "oldest_id": "1471875800865689601",
        "newest_id": "1484462637899526147",
        "result_count": 5
    }
}

Météo

Renvoie la météo du jour avec les prévisions sur 2 jours sour format JSON

Voir l’api de OpenWeatherMap pour plus d’infos sur la data renvoyée

Fonction associée : ApiServer.views.getMeteo()

Exemple :

GET /api/tweets

Retourne :

Avertissement

Toutes les informations transmises par /api/meteo ne sont pas dans cet exemple car sinon l’exemple serait beaucoup trop long et peu utile. Donc, se trouve dans cet exemple, seules les informations que le projet utilise ou jugées utiles.

{
    "hourly": [
        {
            "dt": 1642878000,
            "temp": 3.47,
            "feels_like": 3.47,
            "weather": [
                {
                    "id": 800,
                    "main": "Clear",
                    "description": "clear sky",
                    "icon": "01n"
                }
            ],
        },
    ],
    "today": {
        "dt": 1642852800,
        "temp": {
            "day": 5.78,
            "min": -0.33,
            "max": 6.83,
            "night": 2.47,
            "eve": 3.33,
            "morn": -0.33
        },
        "feels_like": {
            "day": 4.4,
            "night": 2.47,
            "eve": 3.33,
            "morn": -0.33
        },
        "weather": [
            {
                "id": 800,
                "main": "Clear",
                "description": "clear sky",
                "icon": "01d"
            }
        ],
    }
}