mirror of https://github.com/perkeep/perkeep.git
search: use a struct for recent items, not manual map
Change-Id: I443983b3689434afc0471a55357a78d03c0bb18f
This commit is contained in:
parent
cbc682e3b8
commit
c34fc8c345
|
@ -143,27 +143,38 @@ func (sh *Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
||||||
httputil.ReturnJSON(rw, ret)
|
httputil.ReturnJSON(rw, ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A RecentItem is an item returned from $searchRoot/camli/search/recent in the "recent" list.
|
||||||
|
type RecentItem struct {
|
||||||
|
BlobRef *blobref.BlobRef `json:"blobref"`
|
||||||
|
ModTime string `json:"modtime"` // RFC3339
|
||||||
|
Owner *blobref.BlobRef `json:"owner"`
|
||||||
|
}
|
||||||
|
|
||||||
func (sh *Handler) serveRecentPermanodes(rw http.ResponseWriter, req *http.Request) {
|
func (sh *Handler) serveRecentPermanodes(rw http.ResponseWriter, req *http.Request) {
|
||||||
ret := jsonMap()
|
ret := jsonMap()
|
||||||
defer httputil.ReturnJSON(rw, ret)
|
defer httputil.ReturnJSON(rw, ret)
|
||||||
|
|
||||||
|
n, _ := strconv.Atoi(req.FormValue("n"))
|
||||||
|
if n <= 0 || n > 1000 {
|
||||||
|
n = 50
|
||||||
|
}
|
||||||
|
|
||||||
ch := make(chan *Result)
|
ch := make(chan *Result)
|
||||||
errch := make(chan error)
|
errch := make(chan error)
|
||||||
go func() {
|
go func() {
|
||||||
errch <- sh.index.GetRecentPermanodes(ch, sh.owner, 50)
|
errch <- sh.index.GetRecentPermanodes(ch, sh.owner, n)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
dr := sh.NewDescribeRequest()
|
dr := sh.NewDescribeRequest()
|
||||||
|
|
||||||
recent := jsonMapList()
|
var recent []*RecentItem
|
||||||
for res := range ch {
|
for res := range ch {
|
||||||
dr.Describe(res.BlobRef, 2)
|
dr.Describe(res.BlobRef, 2)
|
||||||
jm := jsonMap()
|
recent = append(recent, &RecentItem{
|
||||||
jm["blobref"] = res.BlobRef.String()
|
BlobRef: res.BlobRef,
|
||||||
jm["owner"] = res.Signer.String()
|
Owner: res.Signer,
|
||||||
t := time.Unix(res.LastModTime, 0).UTC()
|
ModTime: time.Unix(res.LastModTime, 0).UTC().Format(time.RFC3339),
|
||||||
jm["modtime"] = t.Format(time.RFC3339)
|
})
|
||||||
recent = append(recent, jm)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err := <-errch
|
err := <-errch
|
||||||
|
|
Loading…
Reference in New Issue