|  | @@ -7,15 +7,56 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  #include <stdio.h>
 |  |  #include <stdio.h>
 | 
											
												
													
														|  |  #include <stdlib.h>
 |  |  #include <stdlib.h>
 | 
											
												
													
														|  | 
 |  | +#include "error.h"
 | 
											
												
													
														|  |  #include "bomberstudent_server.h"
 |  |  #include "bomberstudent_server.h"
 | 
											
												
													
														|  |  #include "client.h"
 |  |  #include "client.h"
 | 
											
												
													
														|  | 
 |  | +#include "game.h"
 | 
											
												
													
														|  | 
 |  | +#include "player.h"
 | 
											
												
													
														|  |  #include "handler.h"
 |  |  #include "handler.h"
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +/* --- Extern --- */
 | 
											
												
													
														|  | 
 |  | +extern int nbGame;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/* --- Fonctions publiques --- */
 | 
											
												
													
														|  |  void ini_handler(){
 |  |  void ini_handler(){
 | 
											
												
													
														|  |      add_handler("GET", "client/end", handler_client_end);
 |  |      add_handler("GET", "client/end", handler_client_end);
 | 
											
												
													
														|  | 
 |  | +    add_handler("GET", "game/list", handler_game_list);
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  int handler_client_end(int cliId, JsonParser* json){
 |  |  int handler_client_end(int cliId, JsonParser* json){
 | 
											
												
													
														|  |      remove_client(cliId);
 |  |      remove_client(cliId);
 | 
											
												
													
														|  |      return SUCCESS;
 |  |      return SUCCESS;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +int handler_game_list(int cliId, JsonParser* json){
 | 
											
												
													
														|  | 
 |  | +    JsonEncoder reponse;
 | 
											
												
													
														|  | 
 |  | +    JsonArray* game;
 | 
											
												
													
														|  | 
 |  | +    JsonArray* map;
 | 
											
												
													
														|  | 
 |  | +    //Recup la liste des parties et des cartes
 | 
											
												
													
														|  | 
 |  | +    game = list_game();
 | 
											
												
													
														|  | 
 |  | +    map = list_map();
 | 
											
												
													
														|  | 
 |  | +    //Creation reponse
 | 
											
												
													
														|  | 
 |  | +    ini_encoder(&reponse);
 | 
											
												
													
														|  | 
 |  | +    add_string(&reponse, "action", "game/list");
 | 
											
												
													
														|  | 
 |  | +    add_string(&reponse, "statut", "200");
 | 
											
												
													
														|  | 
 |  | +    add_string(&reponse, "message", "ok");
 | 
											
												
													
														|  | 
 |  | +    if(game == NULL){
 | 
											
												
													
														|  | 
 |  | +        add_integer(&reponse, "numberGameList", 0);
 | 
											
												
													
														|  | 
 |  | +    } else {
 | 
											
												
													
														|  | 
 |  | +        add_integer(&reponse, "numberGameList", nbGame);
 | 
											
												
													
														|  | 
 |  | +        add_array(&reponse, "games", game);
 | 
											
												
													
														|  | 
 |  | +        clean_json_array(game);
 | 
											
												
													
														|  | 
 |  | +        free(game);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    add_array(&reponse, "maps", map);
 | 
											
												
													
														|  | 
 |  | +    //Envoi reponse au client
 | 
											
												
													
														|  | 
 |  | +    if(!send_client(cliId, &reponse)){
 | 
											
												
													
														|  | 
 |  | +        adderror("Impossible de répondre au client");
 | 
											
												
													
														|  | 
 |  | +        return FAIL;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    //Nettoyage
 | 
											
												
													
														|  | 
 |  | +    clean_json_encoder(&reponse);
 | 
											
												
													
														|  | 
 |  | +    clean_json_array(map);
 | 
											
												
													
														|  | 
 |  | +    free(map);
 | 
											
												
													
														|  | 
 |  | +    return SUCCESS;
 | 
											
												
													
														|  |  }
 |  |  }
 |