FILE / ScuroNeko/H2Master

app/nodes.go

Исходный файл и его история в репозитории.
FILE 992db80ea327517890882867d4c24b826e3e94aa
This repository has been archived on 2026-04-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
H2Master/app/nodes.go
T
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
}