Skip to content

Documentation API

Krucksy edited this page Nov 7, 2023 · 13 revisions

Routes Standard

Page principale

IMPLEMENTE: OUI

GET /
Description Affiche la page principale (La page de jeu)
Type du résultat HTML/CSS
Contrôleur -
Vue game.index

Connexion

IMPLEMENTE: NON

GET /login
Description Affiche le formulaire de connexion
Type du résultat HTML/CSS
Contrôleur LoginController
Vue login.index

IMPLEMENTE: NON

POST /validate_login
Description Valide la connexion de l'utilisateur
Type du résultat Redirection
Contrôleur LoginController
Paramètres username : string ; passsword: string
Réussite Redirection vers /
Echec Redirection vers /login

REST routes (Laravel resources)

Users

IMPLEMENTE: NON

GET /users/create
Description Affiche le formulaire d'inscription
Type du résultat HTML/CSS
Contrôleur UserController
Vue user.create

IMPLEMENTE: NON

POST /users/
Description Affiche le formulaire d'inscription
Type du résultat Redirection
Contrôleur UserController
Paramètres username: string ; password : string
Réussite Redirection vers /
Echec Redirection vers /users/create

Song Requests

IMPLEMENTE: OUI

GET /song_requests/create
Description Affiche le formulaire de proposition de musique
Type du résultat HTML
Contrôleur RequestController
Vue request.create
Paramètres
Réussite
Echec

IMPLEMENTE: OUI

POST /song_requests
Description Valide le formulaire de proposition
Type du résultat Redirection
Contrôleur RequestController
Vue
Paramètres song_name: string ; artist_name: string
Réussite Redirection /
Echec Redirection /song_requests/create

Routes AJAX

Obtention des champs recherché

IMPLEMENTE: OUI

POST /start_game
Description Cette route permet d'obtenir les informations initiales sur la musique à deviner
Type du résultat JSON
Contrôleur SongController
Vue
Paramètres

Exemple de réponse

{ "status":"success",
"title_length":16,
"artist_length":8,
"album_length":14,
"nb_artist_genre":4
}

Obtention des musiques dont le nom commence par une string donnée

IMPLEMENTE: OUI

GET /song_beginning_with/{search_string}
Description Obtient les musiques commençant par le string donné
Type du résultat JSON
Contrôleur RequestController
Vue
Paramètres Directement dans l'URL: search_string

Exemple de réponse

[{
"id":536,
"spotify_id":"7G6l2FtQyRhQgYgut2I6i8",
"year":2005,
"track_name":"As Good As I Once Was",
"track_popularity":73,
"album_id":395,
"artist_id":302,
"duration_ms":227840,
"loudness":-4.46,
"danceability":0.68,
"energy":0.87,
"key":5,
tempo":119.08,
"acousticness":0.27,
"speechiness":0.04,
"artist_name":"Toby Keith",
"album_name":"Honkytonk University",
"artist_genres":[
{"genre_id":9,
"genre_name":"contemporary country"},
{"genre_id":10,
"genre_name":"country"},
{"genre_id":12,
"genre_name":"country road"},
{"genre_id":205,
"genre_name":"classic oklahoma country"}] }, ...]

Obtention du tableau de comparaison de musique

IMPLEMENTE: OUI

GET /comparison_with_answer_song
Description Obtient les musiques commençant par le string donné
Type du résultat JSON
Contrôleur RequestController
Vue
Paramètres Directement dans l'URL: search_string

Exemple de réponse

Réussite

{
"status":"success",
"isSame":false,
"artist_comparison":null,
"album_comparison":null,
"year_comparison":1,
"duration_ms_comparison":-1,
"loudness_comparison":1,
"danceability_comparison":1,
"energy_comparison":1,
"key_comparison":-1,
"tempo_comparison":1,
"acousticness_comparison":-1,
"speechiness_comparison":1,
"common_genres":[{"genre_id:":2,"genre_name":"pop"},{"genre_id:":17,"genre_name":"dance pop"}]
"popularity_comparison":1,
"year":2010,
"duration_ms":234653,
"loudness":-3.73,
"danceability":0.79,
"energy":0.75,
"key":0,
"tempo":125.01,
"acousticness":0,
"speechiness":0.06,
"popularity":77,
"name":"California Gurls",
"artist_name":"Katy Perry",
"album_name":"Teenage Dream: The Complete Confection",
"nb_genres":2
}

Echec

{"status":"error","message":"No answer song in session."}

Explication de la réponse:

Retourne un tableau des points communs entre les chansons, avec les éléments suivants:

  • isSame: booléen - vrai si les chansons sont identiques.
  • artist_comparison: int|null - identifiant de l'artiste si les chansons ont le même artiste, sinon null.
  • album_comparison: int|null - identifiant de l'album si les chansons ont le même album, sinon null.
  • year_comparison: int - 0 s'il s'agit de la même année, 1 si la réponse est plus récente, -1 si la réponse est plus ancienne.
  • duration_ms_comparison: int - 0 si la durée est la même, 1 si la réponse est plus longue, -1 si la réponse est plus courte.
  • loudness_comparison: int - 0 si la sonorité est la même, 1 si la réponse est plus forte, -1 si la réponse est plus douce.
  • danceability_comparison: int - 0 si la danseabilité est la même, 1 si la réponse est plus dansante, -1 si la réponse est moins dansante.
  • energy_comparison: int - 0 si l'énergie est la même, 1 si la réponse est plus énergique, -1 si la réponse est moins énergique.
  • key_comparison: int - 0 si la tonalité est la même, 1 si la réponse est dans une tonalité plus élevée, -1 si la réponse est dans une tonalité plus basse.
  • tempo_comparison: int - 0 si le tempo est le même, 1 si la réponse est plus rapide, -1 si la réponse est plus lente.
  • acousticness_comparison: int - 0 si l'acoustique est la même, 1 si la réponse est plus acoustique, -1 si la réponse est moins acoustique.
  • speechiness_comparison: int - 0 si la parole est la même, 1 si la réponse est plus parlée, -1 si la réponse est moins parlée.
  • comment_genres: tableau - tableau des genres communs entre les artistes.
  • popularity_comparison: int - 0 si la popularité est la même, 1 si la réponse est plus populaire, -1 si la réponse est moins populaire.
  • year: int - année de la chanson donnée.
  • duration_ms: int - durée de la chanson donnée en millisecondes.
  • loudness: float - sonorité de la chanson donnée en décibels.
  • danceability: float - danseabilité de la chanson donnée.
  • energy: float - énergie de la chanson donnée.
  • key: int - tonalité de la chanson donnée.
  • tempo: float - tempo de la chanson donnée.
  • acousticness: float - acoustique de la chanson donnée.
  • speechiness: float - parole de la chanson donnée.
  • popularity: int - popularité de la chanson donnée.
  • name: chaîne de caractères - nom de la chanson donnée.
  • artist_name: chaîne de caractères - nom de l'artiste de la chanson donnée.
  • album_name: chaîne de caractères - nom de l'album de la chanson donnée.
  • nb_genres: int - nombre de genres de l'artiste de la chanson de réponse.
Clone this wiki locally