fathom/pkg/datastore/pages.go

31 lines
742 B
Go

package datastore
import (
"github.com/usefathom/fathom/pkg/models"
)
// GetPageByHostnameAndPath retrieves a page from the connected database
func GetPageByHostnameAndPath(hostname, path string) (*models.Page, error) {
p := &models.Page{}
sql := dbx.Rebind(`SELECT * FROM pages WHERE hostname = ? AND path = ? LIMIT 1`)
err := dbx.Get(p, sql, hostname, path)
if err != nil {
return nil, err
}
return p, nil
}
// SavePage inserts the page model in the connected database
func SavePage(p *models.Page) error {
sql := dbx.Rebind(`INSERT INTO pages(hostname, path, title) VALUES(?, ?, ?)`)
result, err := dbx.Exec(sql, p.Hostname, p.Path, p.Title)
if err != nil {
return err
}
p.ID, _ = result.LastInsertId()
return nil
}