Skip to content
Snippets Groups Projects
Commit 4177d90a authored by Othemane Khachnane's avatar Othemane Khachnane
Browse files

Service WEB GET

parent 67b9fa55
No related branches found
No related tags found
No related merge requests found
.DS_Store 0 → 100644
File added
File added
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
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());
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment