From 4177d90a045542d9ffe2d23117291f39ed5b3c3f Mon Sep 17 00:00:00 2001 From: Othemane KHACHNANE <othemane.khachnane.etu@univ-lille.fr> Date: Wed, 19 Feb 2025 18:34:59 +0100 Subject: [PATCH] Service WEB GET --- .DS_Store | Bin 0 -> 6148 bytes sae/.DS_Store | Bin 0 -> 6148 bytes sae/WEB-INF/src/controleur/GetFils.java | 60 ++++++++++++++++++++++++ sae/WEB-INF/src/modele/Message.java | 43 +++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 .DS_Store create mode 100644 sae/.DS_Store create mode 100644 sae/WEB-INF/src/controleur/GetFils.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c55f41bf7357966b0569b5fc44f8d45ada7d92de GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8zEL;p&0Z1N%F(jFwBJ3dZz-Ht#<S`U8=rZImBtqpz zsnHM^4S~TM0-(Gr!H~?5&ydTI%YdAJ^BB?@j2Uzpj2ZM83>nNB^cV~n^cb=j5*dm- zbMljua`Ka)1&1R81B2dwFaUd09K*a4hE#?Mh7tx{21BrEATx29wjRwiKB#F044L3^ zrGz09>`py~T!s`>moUnr>E&byVsK?}WN=~dWpHJ{rlT882Qx!4Ln1>enz=u*t4b;_ zE`Wx^j--N|%;FLQgKLaT%q*;I>>TVI+#IpN8TsYGC5a`a#ZHMu(I8$(etu38jGdSi zmYG@}FCgNapI4HYnU`7wQWBh*lA4rQ6ce7Amy%!ZlwX>cQViA$mEhpy;EWfLsIE3L zwbW5CHa4i$QK+^wGSE>lF*T~K<>U}m*0&Cd&(6us%kKim2m>P{gl6D{(l83-f2g0! zf{XHU^7GOmr8!K&C_QXL0GcK^xQDF|M?E$g0;3^7ZU}(N2L)(t-~go?AT&sdfsug$ z+y!7{U|@mS!3gdLFo5JhT0t~OD~JYZWncucz-EB8GB855GJ?AyAbp@N35W)3XJBLi zYiD3&0BeU=WQ-8)42)2l8KFHCMu>I>Mu>I>Mu>Kp^G4~>5Eu;sXb3PvXaP|D@5;b{ ztN#yCHA;?#z-R~z%Mf5>aS3*D0$0k|{RgURLG@_@R2o$KgQ{ajP(2ON2T}r-Wr7SS hN`N^KIgnORwGXa}85tlo`DjA`7DA)+Xb8|h1OO~6l1%^r literal 0 HcmV?d00001 diff --git a/sae/.DS_Store b/sae/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..80e05f87d5ce7a3369fdede7be02b4ce2fd0508c GIT binary patch literal 6148 zcmZQzU|@7AO)+F(5MW?n;9!8z4DAe90Z1N%F(jFwA|RR(Y=$m_Cxah@n`cgbGE|Nb z1=7pG;LG635W?WdfTTYuCqD`5Fh>Rk2EG4a05*=DA)LXL!3l@z^=PWWT1JV{5Eu=C z(GVC7fzc2c4FPBfFhXb!ZU{X}j)uT!2#kgRJOn`Hg950pz`(%Z0HqrsG)Rhpk%0l! zd<W4iFintt00T%2q!mPiw1Q}mRt8283v32hD+40~L@Oh>8v@b?>XLwHuyzJUu+1Po zSUUqF*k%R>Mu>I>Mu>I>MraR(5u%-e5u%-e5o|lmb))oX2#kgRECiS#3;|I6@5;b{ ztN#yCHA;?#z-R~z%Mf5>aS3*D0$0k|{RgURLG@_@k~AZzPKM|KNrS3&a8=9%8Bmmf hDP?3}0BHrugR5dj1_p3VKH3m~h0rKH8UpkW0RURiB{l#6 literal 0 HcmV?d00001 diff --git a/sae/WEB-INF/src/controleur/GetFils.java b/sae/WEB-INF/src/controleur/GetFils.java new file mode 100644 index 0000000..87ad95b --- /dev/null +++ b/sae/WEB-INF/src/controleur/GetFils.java @@ -0,0 +1,60 @@ +package controleur; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; // Importation du module + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import modele.Abonnement; +import modele.AbonnementDao; +import modele.FilDeDiscussion; +import modele.FilDeDiscussionDAO; +import modele.Message; +import modele.MessageDao; + +@WebServlet("/getFils") +public class GetFils extends HttpServlet { + public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { + if (req.getSession(false) == null || req.getSession().getAttribute("email") == null) { + res.sendRedirect(req.getContextPath() + "/login"); + return; + } + + String email = (String) req.getSession().getAttribute("email"); + AbonnementDao abonnementDao = new AbonnementDao(); + FilDeDiscussionDAO filDao = new FilDeDiscussionDAO(); + MessageDao messageDao = new MessageDao(); + + List<Abonnement> abonnements = abonnementDao.findAbonnements(email); + List<FilDeDiscussion> fils = new ArrayList<>(); + Map<Integer, List<Message>> messagesMap = new HashMap<>(); + + for (Abonnement abonnement : abonnements) { + FilDeDiscussion fil = filDao.findById(abonnement.getIdFil()); + fils.add(fil); + List<Message> messages = messageDao.findByFil(fil.getId()); + messagesMap.put(fil.getId(), messages); + } + + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); // Enregistrement du module + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + + Map<String, Object> jsonResponse = new HashMap<>(); + jsonResponse.put("fils", fils); + jsonResponse.put("messages", messagesMap); + + res.setContentType("application/json"); + res.getWriter().write(objectMapper.writeValueAsString(jsonResponse)); + } +} \ No newline at end of file diff --git a/sae/WEB-INF/src/modele/Message.java b/sae/WEB-INF/src/modele/Message.java index 5e7b1bd..371ef61 100644 --- a/sae/WEB-INF/src/modele/Message.java +++ b/sae/WEB-INF/src/modele/Message.java @@ -1,13 +1,23 @@ package modele; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; + public class Message { private int id; private String contenu; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss") private LocalDateTime datePublication; private int filId; private String auteurEmail; + private String imageUrl; + private int like; + private int unlike; + + // Constructeurs, getters et setters public Message() { } @@ -64,4 +74,37 @@ public class Message { public String toString() { return "Message{" + "id=" + id + ", contenu=" + contenu + ", datePublication=" + datePublication + ", filId=" + filId + ", auteurEmail=" + auteurEmail + '}'; } + + public String getImageUrl() { + return imageUrl; + } + + public int getLike() { + return like; + } + + public void setLike(int like) { + this.like = like; + } + + public int getUnlike() { + return unlike; + } + + public void setUnlike(int unlike) { + this.unlike = unlike; + } + + // filepath: /Users/othemanek./Desktop/tomcat/webapps/sae/WEB-INF/src/modele/MessageDao.java + public void create(Message message) { + try (Connection con = DS.instance.getConnection()) { + PreparedStatement ps = con.prepareStatement("INSERT INTO message (contenu, filid, auteuremail, imageUrl) VALUES (?, ?, ?)"); + ps.setString(1, message.getContenu()); + ps.setInt(2, message.getfilId()); + ps.setString(3, message.getAuteurEmail()); + ps.executeUpdate(); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } } -- GitLab