wire-api-0.1.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Wire.API.Routes.Public.Galley.TeamNotification

Documentation

type TeamNotificationAPI = Named "get-team-notifications" (Summary "Read recently added team members from team queue" :> (Description GetTeamNotificationsDescription :> ("teams" :> ("notifications" :> (ZUser :> (CanThrow 'TeamNotFound :> (CanThrow 'InvalidTeamNotificationId :> (QueryParam' [Optional, Strict, Description "Notification id to start with in the response (UUIDv1)"] "since" NotificationId :> (QueryParam' [Optional, Strict, Description "Maximum number of events to return (1..10000; default: 1000)"] "size" (Range 1 10000 Int32) :> Get '[JSON] QueuedNotificationList))))))))) Source #

type GetTeamNotificationsDescription = "This is a work-around for scalability issues with gundeck user event fan-out. It does not track all team-wide events, but only `member-join`.\nNote that `/teams/notifications` behaves differently from `/notifications`:\n- If there is a gap between the notification id requested with `since` and the available data, team queues respond with 200 and the data that could be found. They do NOT respond with status 404, but valid data in the body.\n- The notification with the id given via `since` is included in the response if it exists. You should remove this and only use it to decide whether there was a gap between your last request and this one.\n- If the notification id does *not* exist, you get the more recent events from the queue (instead of all of them). This can be done because a notification id is a UUIDv1, which is essentially a time stamp.\n- There is no corresponding `/last` end-point to get only the most recent event. That end-point was only useful to avoid having to pull the entire queue. In team queues, if you have never requested the queue before and have no prior notification id, just pull with timestamp 'now'." Source #