42 lines
1 KiB
Go
42 lines
1 KiB
Go
package db
|
|
|
|
type Article struct {
|
|
Title string `json:"title"`
|
|
LinkTitle string `json:"-"`
|
|
Search string `json:"search"`
|
|
Index template.HTML `json:"index"`
|
|
Text template.HTML `json:"text"`
|
|
MD string `json:"md"`
|
|
Created string `json:"created"`
|
|
Updated string `json:"updated"`
|
|
Public bool `json:"public"`
|
|
}
|
|
|
|
type Permission int
|
|
|
|
const (
|
|
Public Permission = iota
|
|
Internal
|
|
Private
|
|
)
|
|
|
|
type Page struct {
|
|
Title string `json:"title"`
|
|
Markdown string `json:"markdown"`
|
|
Index template.HTML `json:"index"`
|
|
Text template.HTML `json:"text"`
|
|
Created string `json:"created"`
|
|
Updated string `json:"updated"`
|
|
Perm Permission `json:"perm"`
|
|
}
|
|
|
|
func (bs *BoltStore) GetPage(title string) (p Page, err error) {
|
|
err = bs.db.View(func(tx *bolt.Tx) error {
|
|
v := tx.Bucket([]byte(pageTable)).Get([]byte(username))
|
|
if v == nil {
|
|
return errUserNotExists
|
|
}
|
|
return bs.Unmarshal(v, &u)
|
|
})
|
|
return
|
|
}
|