MCPcopy Create free account
hub / github.com/driangle/taskmd / handleTracks

Function handleTracks

apps/cli/internal/web/handlers.go:303–339  ·  view source on GitHub ↗
(dp *DataProvider)

Source from the content-addressed store, hash-verified

301}
302
303func handleTracks(dp *DataProvider) http.HandlerFunc {
304 return func(w http.ResponseWriter, r *http.Request) {
305 dp := effectiveDP(r, dp)
306 tasks, err := getFilteredTasks(dp, r)
307 if err != nil {
308 http.Error(w, err.Error(), http.StatusInternalServerError)
309 return
310 }
311
312 archivedTasks, err := dp.GetArchivedTasks()
313 if err != nil {
314 http.Error(w, err.Error(), http.StatusInternalServerError)
315 return
316 }
317
318 filters := r.URL.Query()["filter"]
319 scope := r.URL.Query().Get("scope")
320
321 result, err := tracks.Assign(tasks, tracks.Options{
322 Filters: filters,
323 ArchivedTasks: archivedTasks,
324 Scope: scope,
325 })
326 if err != nil {
327 http.Error(w, err.Error(), http.StatusBadRequest)
328 return
329 }
330
331 if v := r.URL.Query().Get("limit"); v != "" {
332 if n, parseErr := strconv.Atoi(v); parseErr == nil && n > 0 && n < len(result.Tracks) {
333 result.Tracks = result.Tracks[:n]
334 }
335 }
336
337 writeJSON(w, result)
338 }
339}
340
341func handleValidate(dp *DataProvider) http.HandlerFunc {
342 return func(w http.ResponseWriter, r *http.Request) {

Callers 3

registerRoutesMethod · 0.85
fetchTracksResultFunction · 0.85

Calls 5

effectiveDPFunction · 0.85
getFilteredTasksFunction · 0.85
writeJSONFunction · 0.85
ErrorMethod · 0.80
GetArchivedTasksMethod · 0.80

Tested by 2

fetchTracksResultFunction · 0.68