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 }