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.
120 lines
3.6 KiB
120 lines
3.6 KiB
package database |
|
|
|
import ( |
|
"database/sql" |
|
"fmt" |
|
"spargcom/gocart/domain" |
|
"time" |
|
|
|
_ "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() |
|
|
|
res, 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) |
|
} |
|
lastId, err := res.LastInsertId() |
|
pk.Id = uint(lastId) |
|
resPk = pk |
|
|
|
return resPk, 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 |
|
}
|
|
|