swh.coarnotify.server.handlers module#
Module dedicated to the handlers of COAR Notifications.
- swh.coarnotify.server.handlers.get_handler(notification: InboundNotification) Callable[[InboundNotification], None] | None[source]#
Get a CN handler from its type.
The list of handlers by type is defined in the
handlersdict.- Parameters:
notification – an inbound CN
- Raises:
UnprocessableException – no handler available for cn
- Returns:
A COAR Notification handler if one matches
- swh.coarnotify.server.handlers.mention(notification: InboundNotification) None[source]#
Handle a mention COAR Notification.
The software identifier sent in
object.as:objectcould be an Origin URL or a SWHID. We need to check if it exists in the storage before saving the Raw Extrinsic Metadata.For an Origin URL we use storage.origin_get with and without a trailing slash which returns an ExtendedSWHID. For a SWHID we first check it’s valid (it must be a CoreSWHID or QualifiedSWHID) then we convert it to an ExtendedSWHID so we can use it with swhid_is_known.
If these checks fail the mention is rejected.
Otherwise we send the CN with its context to the REM storage and send an Accept CN.
- Parameters:
cn – an inbound CN