Files
H2Master/app/nodes.go
2026-03-05 12:21:18 +03:00

33 lines
768 B
Go

package app
import (
"github.com/vinovest/sqlx"
)
type NodeRepository struct {
db *sqlx.DB
}
func NewNodeRepository(db *sqlx.DB) *NodeRepository { return &NodeRepository{db} }
func (r *NodeRepository) All() ([]Node, error) {
nodes := make([]Node, 0)
sql := "SELECT * FROM nodes;"
err := r.db.Select(&nodes, sql)
return nodes, err
}
func (r *NodeRepository) Find(id int) (Node, error) {
var node Node
sql := "SELECT * FROM nodes WHERE id=?;"
sql = r.db.Rebind(sql)
err := r.db.Select(&node, sql, id)
return node, err
}
func (r *NodeRepository) Create(token, url string) (Node, error) {
sql := "INSERT INTO nodes (token, url) VALUES (?, ?) RETURNING *;"
sql = r.db.Rebind(sql)
var node Node
err := r.db.Get(&node, sql, token, url)
return node, err
}