diff --git a/gocart/go.mod b/gocart/go.mod deleted file mode 100644 index 8002991..0000000 --- a/gocart/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module spargcom/gocart - -go 1.16 - -require github.com/gorilla/mux v1.8.0 // indirect diff --git a/gocart/rester/go.mod b/gocart/rester/go.mod deleted file mode 100644 index 2882644..0000000 --- a/gocart/rester/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module rest.go - -go 1.16 - -require github.com/gorilla/mux v1.8.0 // indirect diff --git a/gocart/rester/go.sum b/gocart/rester/go.sum deleted file mode 100644 index 5350288..0000000 --- a/gocart/rester/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= diff --git a/gocart/rester/rest.go b/gocart/rester/rest.go deleted file mode 100644 index d81d53c..0000000 --- a/gocart/rester/rest.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import ( - "net/http" - - "github.com/gorilla/mux" -) - -func main() { - r := mux.NewRouter() - r.HandleFunc("/rhabarber", rhab) - http.ListenAndServe(":8081", r) -} - -func rhab(writer http.ResponseWriter, req *http.Request) { - writer.Write([]byte("Babablub")) -} diff --git a/spargcom/gocart/database/database.go b/spargcom/gocart/database/database.go new file mode 100644 index 0000000..b996db5 --- /dev/null +++ b/spargcom/gocart/database/database.go @@ -0,0 +1,32 @@ +package database + +import ( + "database/sql" + "fmt" + "spargcom/gocart/domain" + + _ "github.com/go-sql-driver/mysql" +) + +var ( + dbConnection = "gocuser:123456@tcp(10.1.1.6:3300)/gocart" + dbType = "mysql" +) + +func CreatePackage(pk domain.Package) (resPk domain.Package, err error) { + conn, err := sql.Open(dbType, dbConnection) + if err != nil { + fmt.Println("Error while connecting DB: ", err) + } + fmt.Println("Verbindung hergestellt") + fmt.Println("Name = ", pk.Name) + defer conn.Close() + + _, err = conn.Exec("INSERT INTO package VALUES(?,?,?,?,?)", pk.Id, pk.Name, pk.Amount, pk.Price, pk.IsActive) + if err != nil { + fmt.Println("Error while executing insert statement", err) + } + resPk = pk + + return resPk, err +} diff --git a/spargcom/gocart/database/go.mod b/spargcom/gocart/database/go.mod new file mode 100644 index 0000000..8c79649 --- /dev/null +++ b/spargcom/gocart/database/go.mod @@ -0,0 +1,10 @@ +module spargcom/gocart/database + +go 1.16 + +require ( + github.com/go-sql-driver/mysql v1.5.0 + spargcom/gocart/domain v0.0.0-00010101000000-000000000000 +) + +replace spargcom/gocart/domain => ../domain diff --git a/spargcom/gocart/database/go.sum b/spargcom/gocart/database/go.sum new file mode 100644 index 0000000..d314899 --- /dev/null +++ b/spargcom/gocart/database/go.sum @@ -0,0 +1,2 @@ +github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= diff --git a/gocart/domain/domain.go b/spargcom/gocart/domain/domain.go similarity index 100% rename from gocart/domain/domain.go rename to spargcom/gocart/domain/domain.go diff --git a/spargcom/gocart/domain/go.mod b/spargcom/gocart/domain/go.mod new file mode 100644 index 0000000..c29fcc7 --- /dev/null +++ b/spargcom/gocart/domain/go.mod @@ -0,0 +1,3 @@ +module spargcom/gocart/domain + +go 1.16 diff --git a/spargcom/gocart/go.mod b/spargcom/gocart/go.mod new file mode 100644 index 0000000..1fbc6ff --- /dev/null +++ b/spargcom/gocart/go.mod @@ -0,0 +1,5 @@ +module spargcom/gocart + +go 1.16 + +require github.com/gorilla/mux v1.8.0 diff --git a/gocart/go.sum b/spargcom/gocart/go.sum similarity index 100% rename from gocart/go.sum rename to spargcom/gocart/go.sum diff --git a/gocart/gocart.go b/spargcom/gocart/gocart.go similarity index 100% rename from gocart/gocart.go rename to spargcom/gocart/gocart.go diff --git a/spargcom/gocart/rester/go.mod b/spargcom/gocart/rester/go.mod new file mode 100644 index 0000000..539afcf --- /dev/null +++ b/spargcom/gocart/rester/go.mod @@ -0,0 +1,13 @@ +module spargcom/gocart/rest + +go 1.16 + +require ( + github.com/gorilla/mux v1.8.0 + spargcom/gocart/database v0.0.0-00010101000000-000000000000 + spargcom/gocart/domain v0.0.0-00010101000000-000000000000 +) + +replace spargcom/gocart/domain => ../domain + +replace spargcom/gocart/database => ../database diff --git a/spargcom/gocart/rester/go.sum b/spargcom/gocart/rester/go.sum new file mode 100644 index 0000000..283e864 --- /dev/null +++ b/spargcom/gocart/rester/go.sum @@ -0,0 +1,4 @@ +github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= diff --git a/spargcom/gocart/rester/rest.go b/spargcom/gocart/rester/rest.go new file mode 100644 index 0000000..72bee03 --- /dev/null +++ b/spargcom/gocart/rester/rest.go @@ -0,0 +1,46 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "spargcom/gocart/database" + "spargcom/gocart/domain" + + "github.com/gorilla/mux" +) + +func main() { + r := mux.NewRouter() + r.HandleFunc("/packages", createPackagesHandler).Methods("POST") + http.ListenAndServe(":8081", r) + fmt.Println("running on localhost, Port 8081") + +} + +func createPackagesHandler(writer http.ResponseWriter, req *http.Request) { + body, err := ioutil.ReadAll(req.Body) + if err != nil { + writer.WriteHeader(http.StatusBadRequest) + } + var pk domain.Package + fmt.Println(body) + json.Unmarshal(body, &pk) + fmt.Println("Name = ", pk.Name) + res, err := database.CreatePackage(pk) + if err != nil { + writer.WriteHeader(http.StatusInternalServerError) + } + + b, err := json.Marshal(res) + if err != nil { + fmt.Println("Error: ", err) + } + + location := fmt.Sprintf("%s/%d", req.URL.String(), res.Id) + writer.Header().Set("Location:", location) + writer.Header().Set("Content-Type", "application/json") + writer.WriteHeader(http.StatusCreated) + writer.Write(b) +} diff --git a/gocart/rester/rester.uxf b/spargcom/gocart/rester/rester.uxf similarity index 100% rename from gocart/rester/rester.uxf rename to spargcom/gocart/rester/rester.uxf