Parlamentarier sind auf 20. Legislaturperiode beschränkt
This commit is contained in:
parent
1e6c3954ce
commit
fe20c86c35
4 changed files with 47 additions and 7 deletions
|
@ -23,6 +23,7 @@ public class Membership_Mongo_Impl extends Membership implements MongoOperations
|
|||
fields.put("role", entity.getRole());
|
||||
fields.put("label", entity.getLabel());
|
||||
fields.put("member", entity.getMember()); // TODO: wahrscheinlich nicht nötig
|
||||
fields.put("wp", entity.getWp());
|
||||
|
||||
Document doc = MongoDBHandler.createDocument(false, fields);
|
||||
|
||||
|
|
|
@ -91,4 +91,31 @@ public class ParlamentarierController {
|
|||
attributes.put("speechesCount", pd.getReden() == null ? 0 : pd.getReden().size());
|
||||
ctx.render("parlamentarierDetails.ftl", attributes);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lösche alle Abgeordnete.
|
||||
* @param ctx JavaLin-Context
|
||||
*/
|
||||
|
||||
@OpenApi(
|
||||
summary = "Lösche alle Parlamentarier",
|
||||
description = "Lösche alle Parlamentarier aus der Datenbank",
|
||||
operationId = "deleteAllParlamentarier",
|
||||
path = "/deleteParlamentarier",
|
||||
methods = HttpMethod.DELETE,
|
||||
tags = {"Parlamentarier"},
|
||||
responses = {
|
||||
@OpenApiResponse(status = "204", content = {@OpenApiContent(from = Parlamentarier[].class)})
|
||||
})
|
||||
public static void deleteAllParlamentarier(Context ctx) {
|
||||
|
||||
MongoPprUtils.truncateSpeakerCollection();
|
||||
List<Parlamentarier> parlamentarier = MongoPprUtils.getAllParlamentarier("");
|
||||
|
||||
Map<String, Object> attributes = new HashMap<>();
|
||||
attributes.put("parlamentarier", parlamentarier);
|
||||
attributes.put("filter", "filter");
|
||||
ctx.render("parlamentarier.ftl", attributes);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ public class RESTHandler {
|
|||
// Parlamentarier
|
||||
app.get("/", ParlamentarierController::getAllParlamentarier);
|
||||
app.get("/portfolio/{id}", ParlamentarierController::getParlamentarierDetails);
|
||||
app.delete("/deleteParlamentarier", ParlamentarierController::deleteAllParlamentarier);
|
||||
|
||||
/* - TODO
|
||||
// Fotos
|
||||
|
|
|
@ -10,9 +10,11 @@ import org.texttechnologylab.project.gruppe_05_1.domain.html.Parlamentarier;
|
|||
import org.texttechnologylab.project.gruppe_05_1.domain.mdb.BiografischeAngaben;
|
||||
import org.texttechnologylab.project.gruppe_05_1.domain.mdb.Mdb;
|
||||
import org.texttechnologylab.project.gruppe_05_1.domain.mdb.MdbDocument;
|
||||
import org.texttechnologylab.project.gruppe_05_1.domain.speaker.Membership;
|
||||
import org.texttechnologylab.project.gruppe_05_1.domain.speaker.Speaker;
|
||||
import org.texttechnologylab.project.gruppe_05_1.nlp.NlpUtils;
|
||||
import org.texttechnologylab.project.gruppe_05_1.xml.FileObjectFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.xml.sax.InputSource;
|
||||
|
@ -116,17 +118,17 @@ public abstract class PPRUtils {
|
|||
Element rootElement = mdbRoot.getDocumentElement();
|
||||
// TODO: optional! persist the metadata of the <VERSION>1723434311</VERSION> element
|
||||
|
||||
MdbDocument doc = xmlFactory.createMdbDocument(rootElement);
|
||||
List<Mdb> mdbList = doc.getMdbs();
|
||||
|
||||
List<Node> mdbNodes = XmlUtils.getChildrenByName(rootElement, "MDB");
|
||||
|
||||
MongoCollection<org.bson.Document> speakerCollection = MongoPprUtils.getSpeakerCollection();
|
||||
for (Node mdbNode : mdbNodes) {
|
||||
Speaker speaker = xmlFactory.createSpeaker(mdbNode);
|
||||
System.out.println("Speaker " + speaker.getId() + " (" + speaker.getFirstName() + " " + speaker.getName() + ", " + speaker.getParty() + ")");
|
||||
// System.out.println("Speaker " + speaker.getId() + " (" + speaker.getFirstName() + " " + speaker.getName() + ", " + speaker.getParty() + ")");
|
||||
|
||||
org.bson.Document speakerDoc = mongoFactory.createSpeaker(speaker);
|
||||
|
||||
MongoDBHandler.insertDocument(MongoPprUtils.getSpeakerCollection(), speakerDoc);
|
||||
if (mdbActiveInWp(speaker, 20)) {
|
||||
org.bson.Document speakerDoc = mongoFactory.createSpeaker(speaker);
|
||||
MongoDBHandler.insertDocument(speakerCollection, speakerDoc);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: persist each speaker!
|
||||
|
@ -134,6 +136,15 @@ public abstract class PPRUtils {
|
|||
|
||||
}
|
||||
|
||||
// TODO - HERE
|
||||
private static boolean mdbActiveInWp(Speaker speaker, Integer legislaturPeriode) {
|
||||
List<Integer> wps = speaker.getMemberships().stream()
|
||||
.map(Membership::getWp)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return wps.contains(legislaturPeriode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Liest die MDB aus einer Zip-Datei der bundestag,de-Seite
|
||||
* @param zipUrl
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue