You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.6 KiB

package database
import (
"database/sql"
"log"
"spargcom/senuma/domain"
_ "github.com/go-sql-driver/mysql"
)
var (
dbConnection = "gosenuma:hurtz@tcp(10.1.1.6:3300)/senuma"
dbType = "mysql"
)
func CreateArtikel(art domain.Artikel) (resArt domain.Artikel, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
log.Println("Error while connecting DB: ", err)
}
log.Println("Verbindung hergestellt")
log.Println("Bezeichnung = ", art.Bezeichnung)
defer conn.Close()
res, err := conn.Exec("INSERT INTO artikel VALUES(?,?,?)", art.Id, art.Bezeichnung, art.ArtNrExt)
if err != nil {
log.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
art.Id = uint64(lastId)
resArt = art
return resArt, err
}
/*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)
}
fmt.Println("Verbindung hergestellt")
defer conn.Close()
stmt, err := conn.Prepare("INSERT INTO `user` (`id`, `username`, `full_name`, `email`, `group_id`, `is_active`, `is_admin`, `password`) VALUES(?,?,?,?,?,?,?,?)")
res, err := stmt.Exec(us.Id, us.Username, us.FullName, us.Email, us.GroupId, us.IsActive, us.IsAdmin, us.Password)
if err != nil {
fmt.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
us.Id = uint(lastId)
resUs = us
return resUs, err
}
func CreateGroup(grp domain.Group) (resGrp domain.Group, err error) {
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
fmt.Println("Error while connecting DB: ", err)
}
fmt.Println("Verbindung hergestellt")
defer conn.Close()
stmt, err := conn.Prepare("INSERT INTO `group` (`id`, `name`, `booked_package`, `billing_address`, `auth_token`, `is_active`, `billing_user`) VALUES(?,?,?,?,?,?,?)")
res, err := stmt.Exec(grp.Id, grp.Name, grp.BookedPackage, grp.BillingAddress, grp.AuthToken, grp.IsActive, grp.BillingUser)
if err != nil {
fmt.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
grp.Id = uint(lastId)
resGrp = grp
return resGrp, err
}
func CreateAccount(us domain.User) (resAcc domain.Account, err error) {
var acc domain.Account
fmt.Println("User ID:", us.Id)
fmt.Println("Group ID:", us.GroupId)
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
fmt.Println("Error while connecting DB: ", err)
}
fmt.Println("Verbindung hergestellt")
defer conn.Close()
stmt, err := conn.Prepare("INSERT INTO `account` (`id`, `group_id`, `created`, `is_active`) VALUES(?,?,?,?)")
res, err := stmt.Exec(acc.Id, us.GroupId, time.Now(), acc.IsActive)
if err != nil {
fmt.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
acc.Id = uint(lastId)
resAcc = acc
fmt.Println("Created")
return resAcc, err
}
func CreateTunnel(tun domain.Tunnel) (resTun domain.Tunnel, err error) {
fmt.Println("Adding tunnel to database...")
conn, err := sql.Open(dbType, dbConnection)
if err != nil {
fmt.Println("Error while connecting DB: ", err)
}
fmt.Println("Verbindung hergestellt")
defer conn.Close()
stmt, err := conn.Prepare("INSERT INTO `tunnels` (`id`, `name`, `port`, `is_active`, `created`, `routed_name`, `routed_port`, `account_id`) VALUES(?,?,?,?,?,?,?,?)")
res, err := stmt.Exec(tun.Id, tun.Name, tun.Port, tun.IsActive, time.Now(), tun.RoutedName, tun.RoutedPort, tun.AccountId)
if err != nil {
fmt.Println("Error while executing insert statement", err)
}
lastId, err := res.LastInsertId()
tun.Id = uint64(lastId)
resTun = tun
fmt.Println("Created")
return resTun, err
}*/