implemented un-subscribe
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user