Skip to content

Latest commit

 

History

History
386 lines (277 loc) · 7.15 KB

README.md

File metadata and controls

386 lines (277 loc) · 7.15 KB

Documentation du Backend

Moi après avoir fini le JSON

alt text

Format de la base de données REDIS

Redis
├── rUser - 0
│   ├── nom.user : nom de l'utilisateur (String)
│   ├── password.user : Mot de passe (String)
│   ├── tweet.user : Liste des id des tweets (Array)
│   └── retweet.user : Liste des id des retweets (Array)
│
├── rTweet - 1
│   ├── tweet.id : Tweet correspondant à un id (String)
│   ├── retweet.id : Retweet correspondant à l'id d'un tweet et de l'utilisateur du tweet original (Dictionnaire)
│   └── sujet.sujet : Liste des id des tweets ayant ce sujet (Array)

Fonctionnalités

Inscription d'un utilisateur

Permet d'inscrire un utilisateur dans la base de données REDIS

Données envoyées

Méthode : POST

{
    "nom": "Nom de l'utilisateur",
    "password": "Mot de passe"
}

Données reçues

{
    "message": "Bienvenue " + nom + "!",
    "status": 200
}

ou

{
    "message": "Le nom d'utilisateur " + nom + " n'est pas disponible.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"nom\":\"Lucas\",\"password\":\"pechakuchaDeMerde\"}" http://localhost:5000/inscription

Connexion d'un utilisateur

Permet de vérifier si un utilisateur est dans la base de données REDIS

Données envoyées

Méthode : POST

{
    "nom": "Nom de l'utilisateur",
    "password": "Mot de passe"
}

Données reçues

{
    "message": "Bienvenue " + nom + "!",
    "status": 200
}

ou

{
    "message": "Le nom d'utilisateur " + nom + " n'existe pas.",
    "status": 400
}

ou

{
    "message": "Le mot de passe est incorrect.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"nom\":\"Lucas\",\"password\":\"pechakuchaDeMerde\"}" http://localhost:5000/connexion

Création d'un tweet

Permet de créer un tweet

Données envoyées

Méthode : POST

{
    "nom": "Nom de l'utilisateur",
    "tweet": "Tweet à poster",
}

Données reçues

{
    "message": "Le tweet a bien été posté.",
    "status": 200
}

ou

{
    "message": "Le nom d'utilisateur " + nom + " n'existe pas.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"nom\":\"Lucas\",\"tweet\":\"Salut l'elite, c'est El Pueblo, 18-25, 2 sucres #gange #pizza7Fromage\"}" http://localhost:5000/tweeter

Création d'un retweet

Permet de retweeter un tweet

Données envoyées

Méthode : POST

{
    "nom": "Nom de l'utilisateur",
    "id": "Id du tweet à retweeter",
    "nom_user_tweet": "Nom de l'utilisateur qui a posté le tweet"
}

Données reçues

{
    "message": "Le tweet a bien été retweeté.",
    "status": 200
}

ou

{
    "message": "Le nom d'utilisateur " + nom + " n'existe pas.",
    "status": 400
}

ou

{
    "message": "Le nom d'utilisateur " + nom_user_tweet + " n'existe pas.",
    "status": 400
}

ou

{
    "message": "Le tweet avec l'id " + str(id_tweet) + " n'existe pas.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"nom\":\"Lucas\", \"nom_user_tweet\":\"Benjamin\", \"id\":\"1\"}" http://localhost:5000/retweet

Retourner l'ensemble des tweets

Permet de retourner l'ensemble des tweets

Données reçues

Méthode : GET

{
    "liste_tweet_final": [
        {
            "id": "Id du tweet",
            "nom": "Nom de l'utilisateur",
            "tweet": "Tweet"
        }
    ],
    "status": 200
}

Exemple de requête

curl -X GET http://localhost:5000/getAllTweets

Retourner l'ensemble des sujets

Permet de retourner l'ensemble des sujets

Données reçues

Méthode : GET

{
    "liste_sujets": [
        "Sujet"
    ],
    "status": 200
}

Exemple de requête

curl -X GET http://localhost:5000/getAllSujet

Retourner l'ensemble des utilisateurs

Permet de retourner l'ensemble des utilisateurs

Données reçues

Méthode : GET

{
    "liste_utilisateurs": [
        "Utilisateur"
    ],
    "status": 200
}

Exemple de requête

curl -X GET http://localhost:5000/getAllUsers

Retourner les tweets d'un utilisateur

Permet de retourner l'ensemble des tweets d'un utilisateur

Données envoyées

Méthode : POST

{
    "nom": "Nom de l'utilisateur"
}

Données reçues

{
    "liste_tweet": [
        {
            "id": "Id du tweet",
            "nom": "Nom de l'utilisateur",
            "tweet": "Tweet"
        }
    ],
    "status": 200
}

ou

{
    "message": "Le nom d'utilisateur " + nom + " n'existe pas.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"nom\":\"Lucas\"}" http://localhost:5000/getAllTweetsByUser

Retourner les tweets d'un sujet

Permet de retourner l'ensemble des tweets d'un sujet

Données envoyées

Méthode : POST

{
    "sujet": "Sujet"
}

Données reçues

{
    "liste_tweet": [
        {
            "id": "Id du tweet",
            "nom": "Nom de l'utilisateur",
            "tweet": "Tweet"
        }
    ],
    "status": 200
}

ou

{
    "message": "Le sujet " + sujet + " n'existe pas.",
    "status": 400
}

Exemple de requête

curl -X POST -H "Content-Type: application/json; charset=utf-8" --data "{\"sujet\":\"gange\"}" http://localhost:5000/getAllTweetsBySujet

Documentation

Commandes docker pour lancer le Backend sans utiliser le Docker compose

REDIS

docker run --name myredis -p 6379:6379 redis

BACKEND

docker build . --tag imagebackend
docker run --name imagebackend -p 5000:5000 imagebackend

alt text