added general logic for easydrop core
This commit is contained in:
34
src/main/java/de/rwu/easydrop/core/Core.java
Normal file
34
src/main/java/de/rwu/easydrop/core/Core.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import java.util.List;
|
||||
import de.rwu.easydrop.model.Offer;
|
||||
|
||||
public class Core {
|
||||
|
||||
private OfferIdentifier ident;
|
||||
private OfferProvisioner provis;
|
||||
private OfferReviewer review;
|
||||
private OfferUpdater update;
|
||||
|
||||
|
||||
public Core(){
|
||||
this.ident = new OfferIdentifier();
|
||||
this.provis = new OfferProvisioner();
|
||||
this.review = new OfferReviewer();
|
||||
this.update = new OfferUpdater();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void runCore(){
|
||||
List<Offer> identifiedOffers = ident.runIdentifier();
|
||||
provis.runProvisioner(identifiedOffers);
|
||||
List<Offer> updatingOffers = review.runReviewer();
|
||||
update.runUpdater(updatingOffers);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
31
src/main/java/de/rwu/easydrop/core/OfferIdentifier.java
Normal file
31
src/main/java/de/rwu/easydrop/core/OfferIdentifier.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import de.rwu.easydrop.model.Offer;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
|
||||
public class OfferIdentifier {
|
||||
|
||||
|
||||
|
||||
|
||||
public OfferIdentifier() {
|
||||
|
||||
}
|
||||
|
||||
public List<Offer> runIdentifier() {
|
||||
/* muss die Kataloge durchforsten nach vergleichbaren Produkten auf mehreren Händlerwebseiten (APIs)
|
||||
* muss Preisermittler als Abhängigkeit für jeden Katalog aufrufen
|
||||
* erhält dadurch Liste von Produkten, die auf verschiedenen Plattformen eingestellt werden können, gibt diese Liste zurück
|
||||
* muss Datenbank nach Produktangeboten durchforsten, ob diese Produkte schon eingestellt wurden vom OfferProvisioner
|
||||
* wenn ja, muss er die Liste um diese Angebote kürzen
|
||||
*
|
||||
*/
|
||||
return new ArrayList<Offer>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
24
src/main/java/de/rwu/easydrop/core/OfferProvisioner.java
Normal file
24
src/main/java/de/rwu/easydrop/core/OfferProvisioner.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import de.rwu.easydrop.model.Offer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OfferProvisioner {
|
||||
|
||||
public OfferProvisioner(/*OfferWriter for database? */) {
|
||||
|
||||
}
|
||||
|
||||
public void runProvisioner(List<Offer> offersToProvision) {
|
||||
/*
|
||||
* Bekommt vom Identifier eine Liste mit Angeboten, die er einstellen soll auf Zielplattformen
|
||||
* Stellt Angebote bei der Zielplattform ein
|
||||
* Schreibt eingestellte Angebote in die Datenbank
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
23
src/main/java/de/rwu/easydrop/core/OfferReviewer.java
Normal file
23
src/main/java/de/rwu/easydrop/core/OfferReviewer.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import de.rwu.easydrop.model.Offer;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class OfferReviewer {
|
||||
|
||||
public OfferReviewer(/*OfferReader/retriever for database? */){
|
||||
|
||||
}
|
||||
|
||||
public List<Offer> runReviewer() {
|
||||
/*
|
||||
* Liest eingestellte Angebote in der Datenbank
|
||||
* Prüft Zielplattformen der SourceProducts, ob diese noch verfügbar sind (Issue#12) bzw. ob sie sich im Preis geändert haben
|
||||
* Gibt Liste zurück von Offers, die geändert werden müssen, wird übergeben an OfferUpdater mit availability true oder false
|
||||
*/
|
||||
return new ArrayList<Offer>();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
21
src/main/java/de/rwu/easydrop/core/OfferUpdater.java
Normal file
21
src/main/java/de/rwu/easydrop/core/OfferUpdater.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package de.rwu.easydrop.core;
|
||||
|
||||
import java.util.List;
|
||||
import de.rwu.easydrop.model.Offer;
|
||||
|
||||
public class OfferUpdater {
|
||||
|
||||
public OfferUpdater() {
|
||||
|
||||
}
|
||||
|
||||
public void runUpdater(List<Offer> offersToUpdate) {
|
||||
/*
|
||||
* Bekommt vom OfferReviewer eine Liste mit zu ändernden Offers übergeben.
|
||||
* Bei availability=false löscht der Updater das Angebot aus der Datenbank und von der Zielplattform.
|
||||
* Der Updater ändert die geänderten Parameter in der Liste in der Datenbank und in der Zielplattform ab.
|
||||
* Er ändert das upDate in der Datenbank nach der Änderung.
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
52
src/main/java/de/rwu/easydrop/model/Offer.java
Normal file
52
src/main/java/de/rwu/easydrop/model/Offer.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package de.rwu.easydrop.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* An Offer.
|
||||
*
|
||||
* @since 0.3.0
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class Offer {
|
||||
/*
|
||||
* The product that our software buys
|
||||
*/
|
||||
Product sourceProduct;
|
||||
|
||||
/*
|
||||
* The product that our software sells
|
||||
*/
|
||||
Product saleProduct;
|
||||
|
||||
/*
|
||||
* Boolean to check if sourceProduct is still available on source website
|
||||
*/
|
||||
boolean availability;
|
||||
|
||||
/*
|
||||
* Date of the creation of the offer
|
||||
* NOTE: Use Timestamp? https://docs.oracle.com/javase/8/docs/api/java/sql/Timestamp.html
|
||||
*/
|
||||
Date creationDate;
|
||||
|
||||
/*
|
||||
* Date of last update of the offer on the destination website (API)
|
||||
*/
|
||||
Date upDate;
|
||||
|
||||
/*
|
||||
* Date of last check if offer is still valid
|
||||
*/
|
||||
Date checkDate;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user