diff --git a/code/PtiClic/src/org/pticlic/model/Network.java b/code/PtiClic/src/org/pticlic/model/Network.java index 71d674f..8c44f9e 100644 --- a/code/PtiClic/src/org/pticlic/model/Network.java +++ b/code/PtiClic/src/org/pticlic/model/Network.java @@ -8,6 +8,14 @@ import java.net.URLConnection; import com.google.gson.Gson; import com.google.gson.stream.JsonReader; +/** + * @author Bertrand BRUN + * + * Cette classe permet de dialoguer avec le serveur de PtiClic pour récupérée soit des parties + * soit le score qu'a réalisé un utilisateur. + * Elle permet aussi d'envoyer au serveur les parties realiser par l'utilisateur pour que le serveur + * puisse insérer la contribution de l'utilisateur, mais aussi pouvoir calculer le score de celui-ci. + */ public class Network { public enum Action { @@ -29,11 +37,22 @@ public class Network { private Mode mode; private String serverURL; + /** + * Constructeur + * + * @param serverURL Chaine de caractères représentant l'URL où se situe le serveur. + * @param mode Le type de partie que l'on veut récupérer. + */ public Network(String serverURL, Mode mode) { this.mode = mode; this.serverURL = serverURL; } + /** + * Cette méthode permet de récupérer du serveur un certain nombre de parties. + * @param nbGames Le nombre de parties que l'on veut récupérer. + * @return + */ public Game getGames(int nbGames) { Game game = null; try { @@ -53,16 +72,23 @@ public class Network { } reader.endArray(); reader.close(); - - return game; - } catch (IOException e) { e.printStackTrace(); return null; } + + return game; } + /** + * Permet la transformation du Json en une instance de Game. + * + * @param reader Le Json sous forme d'un flux. + * @param gson Une instance de Gson. + * @return Une nouvelle instance de Game. + * @throws IOException + */ private Game makeGame(JsonReader reader, Gson gson) throws IOException { int id = -1; int cat1 = -1; @@ -97,7 +123,30 @@ public class Network { return new Game(id, cat1, cat2, cat3, cat4, center, cloud); } - public boolean sendGame(Game game) { - throw new UnsupportedOperationException(); + + /** + * Cette méthode permet d'envoyer les parties au serveur pour qu'il puisse les + * rajouter à la base de données, et calculer le score. + * @param game La partie jouee par l'utilisateur + * @return true si on a pu envoyer la partie au serveur false sinon. + */ + public boolean sendGame(GamePlayed game) { + try { + URL url = new URL(this.serverURL); + URLConnection connection = url.openConnection(); + connection.addRequestProperty("action", "sendpartie"); + connection.addRequestProperty("mode", mode.value()); + + Gson gson = new Gson(); + String json = gson.toJson(game); + + connection.addRequestProperty("json", json); + + // TODO : Regarder si il ne faudrait pas que le serveur renvoie une valeur indiquant si l'action c'est bien derouler. + connection.connect(); + } catch (IOException e) { + return false; + } + return true; } }