implement ArchiveServer.bestSlugFor()

This commit is contained in:
mappu 2017-08-13 14:41:00 +12:00
parent 4a7a3ba867
commit 62cc053c10

View File

@ -1,6 +1,7 @@
package archive package archive
import ( import (
"errors"
"fmt" "fmt"
"net/http" "net/http"
"net/url" "net/url"
@ -36,6 +37,23 @@ func (this *ArchiveServer) lookupSource(slug string) *LogSource {
return nil // not found return nil // not found
} }
func (this *ArchiveServer) bestSlugFor(ls *LogSource) (string, error) {
for i := 0; i < len(this.cfg.Logs); i += 1 {
if ls != &this.cfg.Logs[i] {
continue
}
if len(this.cfg.Logs[i].Slugs) > 0 {
return this.cfg.Logs[i].Slugs[0], nil // first slug is preferred
} else {
return fmt.Sprintf(`%d`, i), nil // no slugs present? use numeric log index
}
}
return "", errors.New("Unregistered log source")
}
func (this *ArchiveServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (this *ArchiveServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Server", SERVER_VERSION) w.Header().Set("Server", SERVER_VERSION)