57 lines
944 B
Go
57 lines
944 B
Go
package database
|
|
|
|
import (
|
|
"database/sql"
|
|
)
|
|
|
|
type Service struct {
|
|
Name string `json:"name"`
|
|
Desc string `json:"desc"`
|
|
Url string `json:"url"`
|
|
}
|
|
|
|
func (s *Service) Load(rows *sql.Rows) error {
|
|
return rows.Scan(&s.Name, &s.Desc, &s.Url)
|
|
}
|
|
|
|
func (s *Service) Get(db *sql.DB, name string) (bool, error) {
|
|
var (
|
|
success bool
|
|
rows *sql.Rows
|
|
err error
|
|
)
|
|
|
|
if rows, err = db.Query("SELECT * FROM services WHERE name = ?", name); err != nil {
|
|
return false, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
if success = rows.Next(); !success {
|
|
return false, nil
|
|
}
|
|
|
|
if err = s.Load(rows); err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return true, nil
|
|
}
|
|
|
|
func (s *Service) Remove(db *sql.DB) error {
|
|
_, err := db.Exec(
|
|
"DELETE FROM services WHERE name = ?",
|
|
s.Name,
|
|
)
|
|
|
|
return err
|
|
}
|
|
|
|
func (s *Service) Save(db *sql.DB) error {
|
|
_, err := db.Exec(
|
|
"INSERT INTO services(name, desc, url) values(?, ?, ?)",
|
|
s.Name, s.Desc, s.Url,
|
|
)
|
|
|
|
return err
|
|
}
|