2021-08-19 21:04:35 +00:00
|
|
|
from .schema import gatekeeper
|
|
|
|
from .during import During
|
2021-12-25 21:59:21 +00:00
|
|
|
from . import turn
|
2021-08-19 21:04:35 +00:00
|
|
|
|
|
|
|
# decorator
|
2021-12-25 21:59:21 +00:00
|
|
|
def resolve(gk, cap, *args, **kwargs):
|
2021-08-19 21:04:35 +00:00
|
|
|
def configure_handler(handler):
|
2021-12-25 21:59:21 +00:00
|
|
|
def unwrapping_handler(wrapped_ref):
|
|
|
|
return handler(wrapped_ref.embeddedValue)
|
|
|
|
return _resolve(gk, cap)(During(*args, **kwargs).add_handler(unwrapping_handler))
|
2021-08-19 21:04:35 +00:00
|
|
|
return configure_handler
|
|
|
|
|
|
|
|
# decorator
|
2021-12-25 21:59:21 +00:00
|
|
|
def _resolve(gk, cap):
|
2021-08-19 21:04:35 +00:00
|
|
|
def publish_resolution_request(entity):
|
|
|
|
turn.publish(gk, gatekeeper.Resolve(cap, turn.ref(entity)))
|
|
|
|
return entity
|
|
|
|
return publish_resolution_request
|