MCPcopy Index your code
hub / github.com/writefreely/writefreely / handleFetchCollectionFollowers

Function handleFetchCollectionFollowers

activitypub.go:217–270  ·  view source on GitHub ↗
(app *App, w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

215}
216
217func handleFetchCollectionFollowers(app *App, w http.ResponseWriter, r *http.Request) error {
218 w.Header().Set("Server", serverSoftware)
219
220 vars := mux.Vars(r)
221 alias := vars["alias"]
222
223 // TODO: enforce visibility
224 // Get base Collection data
225 var c *Collection
226 var err error
227 if app.cfg.App.SingleUser {
228 c, err = app.db.GetCollectionByID(1)
229 } else {
230 c, err = app.db.GetCollection(alias)
231 }
232 if err != nil {
233 return err
234 }
235 silenced, err := app.db.IsUserSilenced(c.OwnerID)
236 if err != nil {
237 log.Error("fetch collection followers: %v", err)
238 return ErrInternalGeneral
239 }
240 if silenced {
241 return ErrCollectionNotFound
242 }
243 c.hostName = app.cfg.App.Host
244
245 accountRoot := c.FederatedAccount()
246
247 folls, err := app.db.GetAPFollowers(c)
248 if err != nil {
249 return err
250 }
251
252 page := r.FormValue("page")
253 p, err := strconv.Atoi(page)
254 if err != nil || p < 1 {
255 // Return outbox
256 oc := activitystreams.NewOrderedCollection(accountRoot, "followers", len(*folls))
257 return impart.RenderActivityJSON(w, oc, http.StatusOK)
258 }
259
260 // Return outbox page
261 ocp := activitystreams.NewOrderedCollectionPage(accountRoot, "followers", len(*folls), p)
262 ocp.OrderedItems = []interface{}{}
263 /*
264 for _, f := range *folls {
265 ocp.OrderedItems = append(ocp.OrderedItems, f.ActorID)
266 }
267 */
268 setCacheControl(w, apCacheTime)
269 return impart.RenderActivityJSON(w, ocp, http.StatusOK)
270}
271
272func handleFetchCollectionFollowing(app *App, w http.ResponseWriter, r *http.Request) error {
273 w.Header().Set("Server", serverSoftware)

Callers

nothing calls this directly

Calls 6

FederatedAccountMethod · 0.95
setCacheControlFunction · 0.85
IsUserSilencedMethod · 0.80
GetCollectionByIDMethod · 0.65
GetCollectionMethod · 0.65
GetAPFollowersMethod · 0.65

Tested by

no test coverage detected