Skip to content
Snippets Groups Projects
Commit de2c58d4 authored by Adrien Fryson's avatar Adrien Fryson
Browse files

clean + merge

parent 66334cc9
No related branches found
No related tags found
No related merge requests found
Showing
with 52 additions and 44 deletions
......@@ -24,15 +24,11 @@ public class Like extends HttpServlet {
int messageId = Integer.parseInt(req.getParameter("messageId"));
MessageDao messageDao = new MessageDao();
if (req.getParameter("like") != null) {
messageDao.like(messageId, userEmail);
if (messageDao.updateLike(messageId)) {
res.sendRedirect(req.getHeader("Referer"));
} else {
messageDao.unlike(messageId, userEmail);
res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Erreur lors de la mise à jour du like.");
}
res.sendRedirect(req.getHeader("Referer"));
//TODO: Implement the like and unlike methods in MessageDao
}
}
......@@ -15,9 +15,9 @@ public class DS {
}
public Connection getConnection() {
String url = "jdbc:postgresql://psqlserv/but2";
String login = "othemanekhachnaneetu";
String pwd = "moi";
String url = "jdbc:postgresql://localhost:5432/postgres";
String login = "postgres";
String pwd = "";
Connection con = null;
try {
con = DriverManager.getConnection(url, login, pwd);
......
......@@ -8,16 +8,18 @@ public class FilDeDiscussion {
private LocalDateTime dateCreation;
private String createurEmail;
private String description;
private String logo;
public FilDeDiscussion() {
}
public FilDeDiscussion(int id, String nom, LocalDateTime dateCreation, String createurEmail, String description) {
public FilDeDiscussion(int id, String nom, LocalDateTime dateCreation, String createurEmail, String description, String logo) {
this.id = id;
this.nom = nom;
this.dateCreation = dateCreation;
this.createurEmail = createurEmail;
this.description = description;
this.logo = logo;
}
public int getId() {
......@@ -59,4 +61,12 @@ public class FilDeDiscussion {
public void setDescription(String description) {
this.description = description;
}
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
}
......@@ -20,6 +20,7 @@ public class FilDeDiscussionDAO {
f.setDateCreation(rs.getTimestamp("datecreation").toLocalDateTime());
f.setCreateurEmail(rs.getString("createuremail"));
f.setDescription(rs.getString("description"));
f.setLogo(rs.getString("logo"));
} else {
System.out.println("Fil de discussion inexistant");
}
......@@ -31,10 +32,11 @@ public class FilDeDiscussionDAO {
public void create(FilDeDiscussion filDeDiscussion) {
try (Connection con = DS.instance.getConnection()) {
PreparedStatement pstmt = con.prepareStatement("INSERT INTO filDeDiscussion (nom, createuremail, description) VALUES (?, ?, ?)");
PreparedStatement pstmt = con.prepareStatement("INSERT INTO filDeDiscussion (nom, createuremail, description, logo) VALUES (?, ?, ?, ?)");
pstmt.setString(1, filDeDiscussion.getNom());
pstmt.setString(2, filDeDiscussion.getCreateurEmail());
pstmt.setString(3, filDeDiscussion.getDescription());
pstmt.setString(4, filDeDiscussion.getLogo());
pstmt.executeUpdate();
} catch (Exception e) {
System.err.println(e.getMessage());
......@@ -53,6 +55,7 @@ public class FilDeDiscussionDAO {
f.setDateCreation(rs.getTimestamp("datecreation").toLocalDateTime());
f.setCreateurEmail(rs.getString("createuremail"));
f.setDescription(rs.getString("description"));
f.setLogo(rs.getString("logo"));
filsDeDiscussion.add(f);
}
} catch (Exception e) {
......
......@@ -12,7 +12,7 @@ public class Message {
private int filId;
private String auteurEmail;
private String fileName;
private int likeCount;
private boolean likeCount;
public Message() {
}
......@@ -25,7 +25,7 @@ public class Message {
this.filId = filId;
this.auteurEmail = auteurEmail;
this.fileName = fileName;
this.likeCount = 0;
this.likeCount = false;
}
public int getId() {
......@@ -76,17 +76,24 @@ public class Message {
this.fileName = fileName;
}
public int getLikeCount() {
public boolean getLikeCount() {
return likeCount;
}
public void setLikeCount(int likeCount) {
public void setLikeCount(boolean likeCount) {
this.likeCount = likeCount;
}
public String afficherLike() {
if (likeCount == true) {
return "Vous avez aimé ce message";
}
return "Vous n'avez pas aimé ce message";
}
@Override
public String toString() {
return "Message{" + "id=" + id + ", contenu=" + contenu + ", datePublication=" + datePublication + ", filId="
+ filId + ", auteurEmail=" + auteurEmail + "like" + likeCount + '}';
+ filId + ", auteurEmail=" + auteurEmail + "like" + afficherLike() +'}';
}
}
......@@ -21,7 +21,7 @@ public class MessageDao {
message.setFilId(rs.getInt("filId"));
message.setAuteurEmail(rs.getString("auteurEmail"));
message.setFileName(rs.getString("fileName"));
message.setLikeCount(rs.getInt("likeCount"));
message.setLikeCount(rs.getBoolean("likeCount"));
} else {
System.out.println("Message inexistant");
}
......@@ -44,7 +44,7 @@ public class MessageDao {
message.setFilId(rs.getInt("filId"));
message.setAuteurEmail(rs.getString("auteurEmail"));
message.setFileName(rs.getString("fileName"));
message.setLikeCount(rs.getInt("likeCount"));
message.setLikeCount(rs.getBoolean("likeCount"));
messages.add(message);
}
} catch (Exception e) {
......@@ -67,7 +67,7 @@ public class MessageDao {
message.setFilId(rs.getInt("filId"));
message.setAuteurEmail(rs.getString("auteurEmail"));
message.setFileName(rs.getString("fileName"));
message.setLikeCount(rs.getInt("likeCount"));
message.setLikeCount(rs.getBoolean("likeCount"));
messages.add(message);
}
} catch (Exception e) {
......@@ -115,37 +115,29 @@ public class MessageDao {
System.out.println(e.getMessage());
}
}
public boolean like(int id, String email) {
boolean liked = false;
try(Connection con = DS.instance.getConnection()) {
PreparedStatement ps = con.prepareStatement("SELECT * FROM like WHERE messageid = ? AND auteuremail = ?");
ps.setInt(1, id);
ps.setString(2, email);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
liked = true;
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return liked;
}
public boolean unlike(int id, String email) {
boolean unliked = false;
//cette methode permet de mettre a jour le nombre de like d'un message en fonction de l'action de l'utilisateur (like ou unlike)
public boolean updateLike(int id) {
try(Connection con = DS.instance.getConnection()) {
PreparedStatement ps = con.prepareStatement("SELECT * FROM like WHERE messageid = ? AND auteuremail = ?");
PreparedStatement ps = con.prepareStatement("SELECT likeCount FROM message WHERE id = ?");
ps.setInt(1, id);
ps.setString(2, email);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
unliked = true;
boolean currentLikeStatus = rs.getBoolean("likeCount");
boolean newLikeStatus = !currentLikeStatus;
ps = con.prepareStatement("UPDATE message SET likeCount = ? WHERE id = ?");
ps.setBoolean(1, newLikeStatus);
ps.setInt(2, id);
ps.executeUpdate();
return true;
} else {
System.out.println("Message inexistant");
return false;
}
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
return unliked;
}
}
javac -d WEB-INF/classes -cp ../../lib/servlet-api.jar:../../lib/commons-lang3-3.17.0.jar:../../lib/commons-text-1.13.0.jar:../../lib/jackson-datatype-jsr310-2.13.0.jar:../../lib/jackson-annotations-2.15.3.jar:../../lib/jackson-core-2.15.3.jar:../../lib/jackson-databind-2.15.3.jar:../../lib/jackson-dataformat-xml-2.15.3.jar WEB-INF/src/controleur/*.java WEB-INF/src/modele/*.java
sae/uploads/Abr.png

22.2 KiB

......@@ -17,6 +17,7 @@ CREATE TABLE FilDeDiscussion (
dateCreation TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
createurEmail VARCHAR(100),
description TEXT,
logo VARCHAR(255),
CONSTRAINT pk_fil PRIMARY KEY (id),
CONSTRAINT fk_createur FOREIGN KEY (createurEmail) REFERENCES Utilisateur(email)
ON DELETE SET NULL
......
uploads/Abr.png

22.2 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment