MCPcopy Create free account
hub / github.com/perkeep/perkeep / handleRoot

Method handleRoot

app/scanningcabinet/handler.go:215–290  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

213}
214
215func (h *handler) handleRoot(w http.ResponseWriter, r *http.Request) {
216 topMessage := ""
217 if saved_doc := r.FormValue("saved_doc"); saved_doc != "" {
218 topMessage = fmt.Sprintf("Saved <a href='doc/%s'>doc %s</a>", saved_doc, saved_doc)
219 }
220 errorMessage := r.FormValue("error_message")
221
222 limit := maxScan
223 if limitparam := r.FormValue("limit"); limitparam != "" {
224 newlimit, err := strconv.Atoi(limitparam)
225 if err == nil {
226 limit = newlimit
227 }
228 }
229
230 var (
231 movm []MediaObjectVM
232 searchedDocs []DocumentVM
233 )
234 tags := newSeparatedString(r.FormValue("tags"))
235 docs, err := h.fetchDocuments(limit, searchOpts{tags: tags})
236 if err != nil {
237 httputil.ServeError(w, r, err)
238 return
239 }
240
241 if len(tags) != 0 {
242 searchedDocs = MakeDocumentViewModels(docs)
243 // We've just done a search, in which case we don't show the scans,
244 // so no need to look for them.
245 } else {
246 // fetch media objects
247 mediaObjects, err := h.fetchScans(limit)
248 if err != nil {
249 httputil.ServeError(w, r, err)
250 return
251 }
252 movm = MakeMediaObjectViewModels(mediaObjects)
253 }
254 allTags, err := h.fetchTags()
255 if err != nil {
256 httputil.ServeError(w, r, err)
257 return
258 }
259
260 // fetch upcoming documents
261 upcoming, err := h.fetchDocuments(maxDue, searchOpts{due: true})
262 if err != nil {
263 httputil.ServeError(w, r, err)
264 return
265 }
266
267 // fetch untagged documents
268 untagged, err := h.fetchDocuments(limit, searchOpts{untagged: true})
269 if err != nil {
270 httputil.ServeError(w, r, err)
271 return
272 }

Callers

nothing calls this directly

Calls 8

fetchDocumentsMethod · 0.95
fetchScansMethod · 0.95
fetchTagsMethod · 0.95
ServeErrorFunction · 0.92
newSeparatedStringFunction · 0.85
MakeDocumentViewModelsFunction · 0.85
baseURLFunction · 0.70

Tested by

no test coverage detected