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"
|
||||
)
|
||||
|
||||
type (
|
||||
//RegistrierungsID -> ProductID -> Product
|
||||
ProductStore map[string]map[string]api.Product
|
||||
)
|
||||
|
||||
const (
|
||||
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) {
|
||||
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("Probiers mal damit: %s\n", curlhelp)
|
||||
|
||||
@ -61,7 +61,6 @@ func (d *DatabaseWriter) createWarehouseTableIfNotExist() error {
|
||||
}
|
||||
|
||||
func (d *DatabaseWriter) createDeliveryTableIfNotExist() error {
|
||||
|
||||
_, err := d.db.Exec(`
|
||||
CREATE TABLE IF NOT EXISTS deliverytimes (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
@ -75,6 +74,32 @@ func (d *DatabaseWriter) createDeliveryTableIfNotExist() error {
|
||||
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 {
|
||||
db := DatabaseWriter{log: logger.NewMarcoLogger()}
|
||||
sql, err := db.connectDB(connectionString)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user