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;
}
}