implemented un-subscribe

This commit is contained in:
2022-04-17 11:30:02 +02:00
parent 9bd2cceb7d
commit 6d73018247
6 changed files with 222 additions and 94 deletions

View File

@@ -3,6 +3,7 @@ package de.srsoftware.widerhall.data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.crypto.Data;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -90,4 +91,27 @@ public class ListMember {
.run();
return this;
}
public static void unsubscribe(String listEmail, User user) throws SQLException {
var db = Database.open();
var rs = db.query("SELECT * FROM "+TABLE_NAME)
.where(LIST_EMAIL,listEmail)
.where(USER_EMAIL,user.email())
.exec();
while (rs.next()){
int state = rs.getInt(STATE) ^ STATE_SUBSCRIBER;
if (state < 1) { // drop entry
db.query("DELETE FROM "+TABLE_NAME)
.where(LIST_EMAIL,listEmail)
.where(USER_EMAIL,user.email())
.run();
} else { // update entry: whitdraw subscription
db.query("UPDATE "+TABLE_NAME)
.set(STATE,state)
.where(LIST_EMAIL,listEmail)
.where(USER_EMAIL,user.email())
.run();
}
}
}
}