MCPcopy
hub / github.com/perkeep/perkeep / serveDiscovery

Method serveDiscovery

pkg/server/root.go:237–277  ·  view source on GitHub ↗
(rw http.ResponseWriter, req *http.Request)

Source from the content-addressed store, hash-verified

235}
236
237func (rh *RootHandler) serveDiscovery(rw http.ResponseWriter, req *http.Request) {
238 d := &camtypes.Discovery{
239 BlobRoot: rh.BlobRoot,
240 JSONSignRoot: rh.JSONSignRoot,
241 HelpRoot: rh.helpRoot,
242 ImporterRoot: rh.importerRoot,
243 SearchRoot: rh.SearchRoot,
244 ShareRoot: rh.shareRoot,
245 StatusRoot: rh.statusRoot,
246 OwnerName: rh.OwnerName,
247 UserName: rh.Username,
248 AuthToken: auth.DiscoveryToken(),
249 ThumbVersion: images.ThumbnailVersion(),
250 }
251 if gener, ok := rh.Storage.(blobserver.Generationer); ok {
252 initTime, gen, err := gener.StorageGeneration()
253 if err != nil {
254 d.StorageGenerationError = err.Error()
255 } else {
256 d.StorageInitTime = types.Time3339(initTime)
257 d.StorageGeneration = gen
258 }
259 } else {
260 log.Printf("Storage type %T is not a blobserver.Generationer; not sending storageGeneration", rh.Storage)
261 }
262 if rh.ui != nil {
263 d.UIDiscovery = rh.ui.discovery()
264 }
265 if rh.sigh != nil {
266 d.Signing = rh.sigh.Discovery(rh.JSONSignRoot)
267 }
268 if len(rh.sync) > 0 {
269 syncHandlers := make([]camtypes.SyncHandlerDiscovery, 0, len(rh.sync))
270 for _, sh := range rh.sync {
271 syncHandlers = append(syncHandlers, sh.discovery())
272 }
273 d.SyncHandlers = syncHandlers
274 }
275 d.HasLegacySHA1Index = rh.hasLegacySHA1
276 discoveryHelper(rw, req, d)
277}
278
279func discoveryHelper(rw http.ResponseWriter, req *http.Request, dr *camtypes.Discovery) {
280 rw.Header().Set("Content-Type", "text/javascript")

Callers 2

ServeHTTPMethod · 0.95
ServeHTTPMethod · 0.80

Calls 8

DiscoveryTokenFunction · 0.92
ThumbnailVersionFunction · 0.92
discoveryHelperFunction · 0.85
PrintfMethod · 0.80
DiscoveryMethod · 0.80
StorageGenerationMethod · 0.65
ErrorMethod · 0.45
discoveryMethod · 0.45

Tested by

no test coverage detected