github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/pages/pagesdbr/pagesdbr.go (about) 1 package pagesdbr 2 3 import ( 4 "fmt" 5 6 "github.com/gocaveman/caveman/dbutil" 7 "github.com/gocaveman/caveman/pages" 8 "github.com/gocraft/dbr" 9 ) 10 11 type PageMeta struct { 12 Path string `db:"path" json:"path"` 13 TitleTag string `db:"title_tag" json:"title_tag"` 14 MetaDesc string `db:"meta_desc" json:"meta_desc"` 15 Data dbutil.StringObjMap `db:"data" json:"data"` 16 } 17 18 func (p *PageMeta) GetTitleTag() string { 19 return p.TitleTag 20 } 21 22 func (p *PageMeta) GetMetaDesc() string { 23 return p.MetaDesc 24 } 25 26 func (p *PageMeta) GetData() map[string]interface{} { 27 return p.Data 28 } 29 30 type Index struct { 31 Driver string 32 DSN string 33 Connection *dbr.Connection 34 TableName string 35 } 36 37 func NewIndex(driver, dsn string) (*Index, error) { 38 conn, err := dbr.Open(driver, dsn, nil) 39 if err != nil { 40 return nil, err 41 } 42 return &Index{ 43 Driver: driver, 44 DSN: dsn, 45 Connection: conn, 46 TableName: "page", 47 }, nil 48 } 49 50 func (i *Index) PageMetaByPath(path string) (ret pages.PageMeta, reterr error) { 51 // var pageMeta PageMeta 52 // sess := i.Connection.NewSession(nil) 53 // err := sess.Select("*").From("").Where("path = ?", path).LoadOne(&pageMeta) 54 // if err == dbr.ErrNotFound { 55 // err = dbutil.ErrNotFound 56 // } 57 // return &pageMeta, err 58 return ret, fmt.Errorf("not implemented") 59 } 60 61 func (i *Index) PageListByPrefix(prefix string, limit int, startAfterToken string) (result []string, token string, err error) { 62 return nil, "", fmt.Errorf("not implemented") 63 }