package ca.etsmtl.applets.seemobile.utils.deserializers;

import com.google.gson.Gson;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

import ca.etsmtl.applets.seemobile.model.Entrevue;
import ca.etsmtl.applets.seemobile.model.Erreur;
import ca.etsmtl.applets.seemobile.model.ListeEntrevuesResult;
import ca.etsmtl.applets.seemobile.model.ListePostesResult;
import ca.etsmtl.applets.seemobile.model.Poste;

/**
 * Created by gnut3ll4 on 29/02/16.
 */
public class EntrevuesDeserializer implements JsonDeserializer<ListeEntrevuesResult> {
    @Override
    public ListeEntrevuesResult deserialize(JsonElement je, Type type, JsonDeserializationContext jdc)
            throws JsonParseException {

        JsonElement base = je.getAsJsonObject().get("obtenirEntrevuesAConfirmerResult");
        if(base == null) {
            base = je.getAsJsonObject().get("obtenirEntrevuesAVenirResult");
        }
        JsonElement donnees = base.getAsJsonObject().get("donnees");
        JsonElement error = base.getAsJsonObject().get("erreur");

        Erreur erreur = new Gson().fromJson(error, Erreur.class);

        List<Entrevue> entrevues = new Gson().fromJson(donnees, new TypeToken<List<Entrevue>>() {
        }.getType());

        ListeEntrevuesResult listeEntrevuesResult = new ListeEntrevuesResult(erreur, entrevues);

        return listeEntrevuesResult;

    }
}
@@ -76,24 +76,60 @@
 .gson.Gson;%0A
+import com.google.gson.GsonBuilder;%0A
 import com.g
@@ -361,16 +361,67 @@
 t.Type;%0A
+import java.util.ArrayList;%0Aimport java.util.Date;%0A
 import j
@@ -602,116 +602,8 @@
 ult;
-%0Aimport ca.etsmtl.applets.seemobile.model.ListePostesResult;%0Aimport ca.etsmtl.applets.seemobile.model.Poste;
 %0A%0A/*
@@ -635,15 +635,15 @@
 on 2
-9/02/16
+2/12/15
 .%0A *
@@ -988,16 +988,17 @@
       if
+ 
 (base ==
@@ -1241,186 +1241,509 @@
     
-Erreur erreur = new Gson().fromJson(error, Erreur.class);%0A%0A        List%3CEntrevue%3E entrevues = new Gson().fromJson(donnees, new TypeToken%3CList%3CEntrevue%3E%3E() %7B%0A        %7D.getType());
+Gson gson = new GsonBuilder()%0A                .setDateFormat(%22yyyy-MM-dd HH:mm%22)%0A                .create();%0A%0A        List%3CEntrevueFromApi%3E entrevueFromApis = gson.fromJson(donnees, new TypeToken%3CList%3CEntrevueFromApi%3E%3E() %7B%0A        %7D.getType());%0A%0A        Erreur erreur = new Gson().fromJson(error, Erreur.class);%0A%0A        List%3CEntrevue%3E entrevues = new ArrayList%3C%3E();%0A        for (EntrevueFromApi entrevueFromApi : entrevueFromApis) %7B%0A            entrevues.add(entrevueFromApi.getEntrevue());%0A        %7D%0A
 %0A%0A  
@@ -1834,24 +1834,25 @@
 ntrevues);%0A%0A
+%0A
         retu
@@ -1883,9 +1883,1200 @@
 %0A%0A    %7D%0A
+%0A%0A    class EntrevueFromApi %7B%0A%0A        String guid;%0A        String type;%0A        EntrevueDetailsFromApi details;%0A        String numeroPoste;%0A        boolean posteAnnule;%0A        String nomEmployeur;%0A%0A%0A        public EntrevueFromApi() %7B%0A        %7D%0A%0A        public Entrevue getEntrevue() %7B%0A            Entrevue entrevue = new Entrevue();%0A            entrevue.setGuid(guid);%0A            entrevue.setType(type);%0A%0A            entrevue.setNumeroPoste(numeroPoste);%0A            entrevue.setPosteAnnule(posteAnnule);%0A            entrevue.setNomEmployeur(nomEmployeur);%0A%0A            if (details != null) %7B%0A                entrevue.setDateEntrevue(details.dateEntrevue);%0A                entrevue.setLieu(details.lieu);%0A                entrevue.setSuperviseurs(details.superviseurs);%0A                entrevue.setInterviewers(details.interviewers);%0A                entrevue.setRemarque(details.remarque);%0A            %7D%0A            return entrevue;%0A        %7D%0A    %7D%0A%0A    class EntrevueDetailsFromApi %7B%0A        Date dateEntrevue;%0A        String lieu;%0A        List%3CString%3E superviseurs;%0A        List%3CString%3E interviewers;%0A        String remarque;%0A%0A        public EntrevueDetailsFromApi() %7B%0A        %7D%0A    %7D%0A%0A%0A
 %7D

Fix EntrevuesDeserializer