Monorepo for Tangled tangled.org
6

Configure Feed

Select the types of activity you want to include in your feed.

1package xrpc 2 3import ( 4 "fmt" 5 "net/http" 6 "strconv" 7 8 "tangled.org/core/knotserver/db" 9) 10 11func parseListParams(r *http.Request) (db.ListPage, error) { 12 q := r.URL.Query() 13 p := db.ListPage{Limit: db.ListDefaultLimit, Desc: true} 14 15 if s := q.Get("limit"); s != "" { 16 n, err := strconv.Atoi(s) 17 if err != nil { 18 return p, fmt.Errorf("limit must be an integer") 19 } 20 p.Limit = min(max(n, 1), db.ListMaxLimit) 21 } 22 23 if s := q.Get("cursor"); s != "" { 24 n, err := strconv.Atoi(s) 25 if err != nil { 26 return p, fmt.Errorf("cursor must be an integer") 27 } 28 p.Cursor = &n 29 } 30 31 switch q.Get("order") { 32 case "", "desc": 33 p.Desc = true 34 case "asc": 35 p.Desc = false 36 default: 37 return p, fmt.Errorf("order must be 'asc' or 'desc'") 38 } 39 40 return p, nil 41} 42 43func mapSlice[T, U any](items []T, f func(T) U) []U { 44 out := make([]U, len(items)) 45 for i, it := range items { 46 out[i] = f(it) 47 } 48 return out 49}