38 lines
636 B
Go
38 lines
636 B
Go
package main
|
|
|
|
import "sync"
|
|
|
|
type MemoryPages struct {
|
|
m sync.RWMutex
|
|
pages map[string]string
|
|
}
|
|
|
|
//
|
|
// func NewMemoryPages() PagesRepository {
|
|
// return &MemoryPages{
|
|
// pages: make(map[string]string),
|
|
// }
|
|
// }
|
|
|
|
func (mp *MemoryPages) Get(p string) Page {
|
|
mp.m.RLock()
|
|
defer mp.m.RUnlock()
|
|
if pt, e := mp.pages[p]; e {
|
|
return Page{Content: pt}
|
|
}
|
|
return Page{}
|
|
}
|
|
|
|
func (mp *MemoryPages) Save(p string, page Page, summary, author string) {
|
|
mp.m.Lock()
|
|
defer mp.m.Unlock()
|
|
mp.pages[p] = page.Content
|
|
}
|
|
|
|
func (mp *MemoryPages) Exist(p string) bool {
|
|
mp.m.RLock()
|
|
defer mp.m.RUnlock()
|
|
_, e := mp.pages[p]
|
|
return e
|
|
}
|