graphicek/server/services/dashboards_service.go

93 lines
1.8 KiB
Go

package services
type DashboardsService struct {
ctx *Context
}
type DashboardItem struct {
Id int64 `json:"id"`
Name string `json:"name"`
Contents string `json:"contents"`
}
func (s *DashboardsService) GetList() ([]DashboardItem, error) {
items := make([]DashboardItem, 0)
rows, err := s.ctx.DB.Query("SELECT id, name, contents FROM dashboards")
if err != nil {
return nil, err
}
defer rows.Close()
for rows.Next() {
item := DashboardItem{}
err := rows.Scan(&item.Id, &item.Name, &item.Contents)
if err != nil {
return nil, err
}
items = append(items, item)
}
err = rows.Err()
if err != nil {
return nil, err
}
return items, nil
}
func (s *DashboardsService) Create(id int64, name string, contents string) (*DashboardItem, error) {
item := DashboardItem{
Id: id,
Name: name,
Contents: contents,
}
_, err := s.ctx.DB.Exec("INSERT INTO dashboards (id, name, contents) VALUES (?, ?, ?)", item.Id, item.Name, item.Contents)
if err != nil {
return nil, err
}
return &item, nil
}
func (s *DashboardsService) Update(id int64, name string, contents string) (*DashboardItem, error) {
item := DashboardItem{
Id: id,
Name: name,
Contents: contents,
}
_, err := s.ctx.DB.Exec("UPDATE dashboards SET contents = ?, name = ? WHERE id = ?", item.Contents, item.Name, item.Id)
if err != nil {
return nil, err
}
return &item, nil
}
func (s *DashboardsService) Delete(id int64) error {
_, err := s.ctx.DB.Exec("DELETE FROM dashboards WHERe id = ?", id)
return err
}
func (s *DashboardsService) GetById(id int64) (*DashboardItem, error) {
item := DashboardItem{}
row := s.ctx.DB.QueryRow("SELECT id, name, contents FROM dashboards WHERE id = ?", id)
err := row.Scan(&item.Id, &item.Name, &item.Contents)
if err != nil {
return nil, err
}
return &item, nil
}