# retoor from .._shared import endpoint, field GROUP = { "slug": "notifications", "title": "Notifications", "intro": """ # Notifications Read your notification feed and mark items read. The unread counts endpoint backs the badges in the navigation bar. Deliver these to the browser with [Web Push](/docs/push.html). Every endpoint follows the shared [Conventions & Errors](/docs/conventions.html) (auth, content negotiation, pagination, status codes); see [Authentication](/docs/authentication.html) for the four ways to sign requests. """, "endpoints": [ endpoint( id="notifications-list", method="GET", path="/notifications", title="View notifications", summary="Render your notifications. Returns an HTML page.", auth="user", interactive=True, params=[ field("before", "query", "string", False, "", "Pagination cursor.") ], ), endpoint( id="notifications-counts", method="GET", path="/notifications/counts", title="Unread counts", summary="Unread notification and message counts.", auth="public", notes=[ 'Guests receive `{ "notifications": 0, "messages": 0 }` instead of an error, so the navigation badge works before login.' ], sample_response={"notifications": 2, "messages": 1}, ), endpoint( id="notifications-open", method="GET", path="/notifications/open/{notification_uid}", title="Open a notification", summary="Mark a notification read and redirect to its target.", auth="user", interactive=False, params=[ field( "notification_uid", "path", "string", True, "NOTIFICATION_UID", "UID of the notification.", ) ], ), endpoint( id="notifications-mark-read", method="POST", path="/notifications/mark-read/{notification_uid}", title="Mark one read", summary="Mark a single notification as read.", auth="user", params=[ field( "notification_uid", "path", "string", True, "NOTIFICATION_UID", "UID of the notification.", ) ], ), endpoint( id="notifications-mark-all-read", method="POST", path="/notifications/mark-all-read", title="Mark all read", summary="Mark every notification as read.", auth="user", ), ], }