Browse Source

Senuma erste Version

master
Georg Spar 3 years ago
parent
commit
e04294cbba
  1. 19
      spargcom/senuma/database/database.go
  2. 61
      spargcom/senuma/domain/domain.go
  3. 13
      spargcom/senuma/go.mod
  4. 4
      spargcom/senuma/go.sum
  5. 0
      spargcom/senuma/senuma
  6. BIN
      spargcom/senuma/senuma.exe
  7. 55
      spargcom/senuma/senuma.go

19
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
}
}*/

61
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"`
}

13
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

4
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=

0
spargcom/senuma/senuma

BIN
spargcom/senuma/senuma.exe

Binary file not shown.

55
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)
}
Loading…
Cancel
Save