Georg Spar
4 years ago
16 changed files with 115 additions and 29 deletions
@ -1,5 +0,0 @@ |
|||||||
module spargcom/gocart |
|
||||||
|
|
||||||
go 1.16 |
|
||||||
|
|
||||||
require github.com/gorilla/mux v1.8.0 // indirect |
|
@ -1,5 +0,0 @@ |
|||||||
module rest.go |
|
||||||
|
|
||||||
go 1.16 |
|
||||||
|
|
||||||
require github.com/gorilla/mux v1.8.0 // indirect |
|
@ -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= |
|
@ -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")) |
|
||||||
} |
|
@ -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 |
||||||
|
} |
@ -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 |
@ -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= |
@ -0,0 +1,3 @@ |
|||||||
|
module spargcom/gocart/domain |
||||||
|
|
||||||
|
go 1.16 |
@ -0,0 +1,5 @@ |
|||||||
|
module spargcom/gocart |
||||||
|
|
||||||
|
go 1.16 |
||||||
|
|
||||||
|
require github.com/gorilla/mux v1.8.0 |
@ -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 |
@ -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= |
@ -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) |
||||||
|
} |
Loading…
Reference in new issue