2017-01-25 20:01:02 +01:00
|
|
|
package datastore
|
|
|
|
|
|
|
|
import (
|
2018-04-24 10:28:23 +02:00
|
|
|
"github.com/usefathom/fathom/pkg/models"
|
2017-01-25 20:01:02 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
var p models.Page
|
|
|
|
|
|
|
|
// GetPage ...
|
|
|
|
func GetPage(id int64) (*models.Page, error) {
|
2017-01-25 22:48:24 +01:00
|
|
|
return &p, nil
|
2017-01-25 20:01:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// GetPageByHostnameAndPath ...
|
|
|
|
func GetPageByHostnameAndPath(hostname, path string) (*models.Page, error) {
|
2017-01-25 22:48:24 +01:00
|
|
|
stmt, err := DB.Prepare("SELECT p.id, p.hostname, p.path FROM pages p WHERE p.hostname = ? AND p.path = ? LIMIT 1")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2017-01-25 20:01:02 +01:00
|
|
|
defer stmt.Close()
|
|
|
|
err = stmt.QueryRow(hostname, path).Scan(&p.ID, &p.Hostname, &p.Path)
|
|
|
|
return &p, err
|
|
|
|
}
|
|
|
|
|
|
|
|
// SavePage ...
|
|
|
|
func SavePage(p *models.Page) error {
|
|
|
|
// prepare statement for inserting data
|
2017-01-25 22:48:24 +01:00
|
|
|
stmt, err := DB.Prepare(`INSERT INTO pages(
|
2017-01-25 20:01:02 +01:00
|
|
|
hostname,
|
|
|
|
path,
|
|
|
|
title
|
|
|
|
) VALUES( ?, ?, ? )`)
|
|
|
|
defer stmt.Close()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2017-01-25 22:48:24 +01:00
|
|
|
result, err := stmt.Exec(p.Hostname, p.Path, p.Title)
|
2017-01-25 20:01:02 +01:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
p.ID, err = result.LastInsertId()
|
|
|
|
return err
|
|
|
|
}
|