diff --git a/spargcom/senuma/database/database.go b/spargcom/senuma/database/database.go index a7c227c..80b20af 100644 --- a/spargcom/senuma/database/database.go +++ b/spargcom/senuma/database/database.go @@ -4,37 +4,36 @@ import ( "database/sql" "fmt" "spargcom/senuma/domain" - "time" _ "github.com/go-sql-driver/mysql" ) var ( - dbConnection = "gocuser:123456@tcp(10.1.1.6:3300)/senuma" + dbConnection = "gosenuma:hurtz@tcp(10.1.1.6:3300)/senuma" dbType = "mysql" ) -func CreatePackage(pk domain.Package) (resPk domain.Package, err error) { +func CreateArtikel(art domain.Artikel) (resArt domain.Artikel, 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) + fmt.Println("Bezeichnung = ", art.Bezeichnung) defer conn.Close() - res, err := conn.Exec("INSERT INTO package VALUES(?,?,?,?,?)", pk.Id, pk.Name, pk.Amount, pk.Price, pk.IsActive) + res, err := conn.Exec("INSERT INTO artikel VALUES(?,?,?)", art.Id, art.Bezeichnung, art.ArtNrExt) if err != nil { fmt.Println("Error while executing insert statement", err) } lastId, err := res.LastInsertId() - pk.Id = uint(lastId) - resPk = pk + art.Id = uint64(lastId) + resArt = art - return resPk, err + return resArt, err } -func CreateUser(us domain.User) (resUs domain.User, err error) { +/*func CreateUser(us domain.User) (resUs domain.User, err error) { conn, err := sql.Open(dbType, dbConnection) if err != nil { fmt.Println("Error while connecting DB: ", err) @@ -117,4 +116,4 @@ func CreateTunnel(tun domain.Tunnel) (resTun domain.Tunnel, err error) { resTun = tun fmt.Println("Created") return resTun, err -} +}*/ diff --git a/spargcom/senuma/domain/domain.go b/spargcom/senuma/domain/domain.go index 0dc5529..41e5da0 100644 --- a/spargcom/senuma/domain/domain.go +++ b/spargcom/senuma/domain/domain.go @@ -1,48 +1,31 @@ package domain -type Package struct { - Id uint `json:"id"` - Name string `json:"name"` - Amount int `json:"amount"` - Price float32 `json:"price"` - IsActive bool `json:"isActive"` +type Artikel struct { + Id uint64 `json:"id"` + Bezeichnung string `json:"bezeichnung"` + ArtNrExt string `json:"artNrExt"` } -type Group struct { - Id uint `json:"id"` - Name string `json:"name"` - BookedPackage int `json:"bookedPackage"` - BillingAddress string `json:"billingAddress"` - AuthToken string `json:"authToken"` - IsActive bool `json:"isActive"` - BillingUser int `json:"billingUser"` +type Kunde struct { + Id uint `json:"id"` + Name string `json:"name"` + KdNrExt int `json:"kdNrExt"` } -type User struct { - Id uint `json:"id"` - Password string `json:"password"` - IsAdmin bool `json:"isAdmin"` - Username string `json:"username"` - FullName string `json:"fullName"` - Email string `json:"email"` - GroupId int `json:"groupId"` - IsActive bool `json:"isActive"` -} - -type Account struct { - Id uint `json:"id"` - GroupId int `json:"groupId"` - Created string `json:"createDate"` - IsActive bool `json:"isActive"` +type Lieferant struct { + Id uint `json:"id"` + Name string `json:"name"` + LiefNr_ext uint `json:"liefNrExt"` } -type Tunnel struct { - Id uint64 `json:"id"` - Name string `json:"name"` - Port int `json:"port"` - IsActive bool `json:"isActive"` - Created string `json:"created"` - RoutedName string `json:"routedName"` - RoutedPort int `json:"routedPort"` - AccountId uint `json:"accountId"` +type Seriennummer struct { + Id uint64 `json:"id"` + ArtId uint64 `json:"artId"` + KdId uint `json:"port"` + LiefId uint `json:"liefId"` + SerienNr string `json:"serienNr"` + EkDat string `json:"ekDat"` + VkDat string `json:"vkDat"` + GarantieBis string `json:"garantieBis"` + Bemerkung string `json:"bemerkung"` } diff --git a/spargcom/senuma/go.mod b/spargcom/senuma/go.mod index b04bcc4..bfdc8a7 100644 --- a/spargcom/senuma/go.mod +++ b/spargcom/senuma/go.mod @@ -1,3 +1,14 @@ -module senuma +module senuma.go go 1.16 + +require github.com/gorilla/mux v1.8.0 + +require ( + spargcom/senuma/database v0.0.0-00010101000000-000000000000 + spargcom/senuma/domain v0.0.0-00010101000000-000000000000 +) + +replace spargcom/senuma/domain => ./domain + +replace spargcom/senuma/database => ./database diff --git a/spargcom/senuma/go.sum b/spargcom/senuma/go.sum new file mode 100644 index 0000000..32342b2 --- /dev/null +++ b/spargcom/senuma/go.sum @@ -0,0 +1,4 @@ +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.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/senuma/senuma b/spargcom/senuma/senuma deleted file mode 100644 index e69de29..0000000 diff --git a/spargcom/senuma/senuma.exe b/spargcom/senuma/senuma.exe new file mode 100644 index 0000000..0847a10 Binary files /dev/null and b/spargcom/senuma/senuma.exe differ diff --git a/spargcom/senuma/senuma.go b/spargcom/senuma/senuma.go new file mode 100644 index 0000000..f4d0c6e --- /dev/null +++ b/spargcom/senuma/senuma.go @@ -0,0 +1,55 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "spargcom/senuma/database" + "spargcom/senuma/domain" + + "github.com/gorilla/mux" +) + +func main() { + r := mux.NewRouter() + r.HandleFunc("/artikel", createArtikelHandler).Methods("POST") + + //r.HandleFunc("/groups", createGroupHandler).Methods("POST") + + //r.HandleFunc("/users", createUserHandler).Methods("POST") + + //r.HandleFunc("/accounts", createAccountHandler).Methods("POST") + + //r.HandleFunc("/tunnels", createTunnelHandler).Methods("POST") + + http.ListenAndServe(":8081", r) + fmt.Println("running on localhost, Port 8081") + +} + +func createArtikelHandler(writer http.ResponseWriter, req *http.Request) { + body, err := ioutil.ReadAll(req.Body) + if err != nil { + writer.WriteHeader(http.StatusBadRequest) + } + var art domain.Artikel + json.Unmarshal(body, &art) + fmt.Println("Bezeichnung = ", art.Bezeichnung) + fmt.Println("externe Art-Nr = ", art.ArtNrExt) + res, err := database.CreateArtikel(art) + 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) +}