Erzeugung der Datenbank Reservations und Erzeugung der REST Methode für Abort
This commit is contained in:
parent
e2697cee5b
commit
1f9fea0bb6
|
|
@ -14,6 +14,11 @@ var (
|
||||||
port = ":8080"
|
port = ":8080"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
//RegistrierungsID -> ProductID -> Product
|
||||||
|
ProductStore map[string]map[string]api.Product
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
curlhelp = `curl -X POST localhost:8080/api/products -d '{ "products": { "A6053": 2, "B3009": 1200 }, "context": { "country": "EU", "state": "" } }'`
|
curlhelp = `curl -X POST localhost:8080/api/products -d '{ "products": { "A6053": 2, "B3009": 1200 }, "context": { "country": "EU", "state": "" } }'`
|
||||||
)
|
)
|
||||||
|
|
@ -36,6 +41,9 @@ func main() {
|
||||||
http.HandleFunc("/api/products/release", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/products/release", func(w http.ResponseWriter, r *http.Request) {
|
||||||
fmt.Println("In Arbeit: release")
|
fmt.Println("In Arbeit: release")
|
||||||
})
|
})
|
||||||
|
http.HandleFunc("/api/products/abort", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
fmt.Println("In Arbeit: abort")
|
||||||
|
})
|
||||||
|
|
||||||
log.Printf("Easy Peasy: Die Party startet auf Port %s\n", port)
|
log.Printf("Easy Peasy: Die Party startet auf Port %s\n", port)
|
||||||
log.Printf("Probiers mal damit: %s\n", curlhelp)
|
log.Printf("Probiers mal damit: %s\n", curlhelp)
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,6 @@ func (d *DatabaseWriter) createWarehouseTableIfNotExist() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DatabaseWriter) createDeliveryTableIfNotExist() error {
|
func (d *DatabaseWriter) createDeliveryTableIfNotExist() error {
|
||||||
|
|
||||||
_, err := d.db.Exec(`
|
_, err := d.db.Exec(`
|
||||||
CREATE TABLE IF NOT EXISTS deliverytimes (
|
CREATE TABLE IF NOT EXISTS deliverytimes (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
|
@ -75,6 +74,32 @@ func (d *DatabaseWriter) createDeliveryTableIfNotExist() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Die Idee ist, dass ich die Reservierungen via mit Verweisen auf die Primärschlüssel
|
||||||
|
// von deliverytimes und warehouseproducts verknüpfe. Ziel ist es, über den Status
|
||||||
|
// das Fetch Select SQL Statement für die Abfrage der Reservierungen zu erweitern um
|
||||||
|
// über die SUM Methode im SQL Query bei STATUS RESERVED, den reduzierten Mengenwert anzuzuzeigen
|
||||||
|
// für das Registrierte Produkt
|
||||||
|
func (d *DatabaseWriter) createReservationTableIfNotExist() error {
|
||||||
|
_, err := d.db.Exec(`
|
||||||
|
CREATE TABLE IF NOT EXISTS reservations (
|
||||||
|
id CHAR(36) PRIMARY KEY,
|
||||||
|
deliveryId INT,
|
||||||
|
warehouseId INT,
|
||||||
|
amount INT DEFAULT 0,
|
||||||
|
status VARCHAR(30) CHECK(status IN ('RESERVED', 'CONFIRMED', 'ABORTED')),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT fk_delivery_id
|
||||||
|
FOREIGN KEY (deliveryId) REFERENCES deliverytimes (id)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT fk_warehouse_id
|
||||||
|
FOREIGN KEY (warehouseId) REFERENCES warehouseproducts (id)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB;`)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func NewDatabaseWriter(connectionString string) *DatabaseWriter {
|
func NewDatabaseWriter(connectionString string) *DatabaseWriter {
|
||||||
db := DatabaseWriter{log: logger.NewMarcoLogger()}
|
db := DatabaseWriter{log: logger.NewMarcoLogger()}
|
||||||
sql, err := db.connectDB(connectionString)
|
sql, err := db.connectDB(connectionString)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue