mirror of https://github.com/nucypher/nucypher.git
Implements new input scheme API on Webcontrollers.
parent
71a7fc7a1c
commit
e70ba7eb18
|
@ -304,9 +304,16 @@ class WebController(CharacterControlServer):
|
|||
|
||||
_400_exceptions = (MissingField,
|
||||
InvalidInputField,
|
||||
)
|
||||
TypeError,
|
||||
JSONDecodeError)
|
||||
|
||||
try:
|
||||
response = interface(request=control_request.data, *args, **kwargs) # < ------- INLET
|
||||
request_body = control_request.data or dict()
|
||||
if request_body:
|
||||
request_body = json.loads(request_body)
|
||||
request_body.update(kwargs)
|
||||
|
||||
response = self._perform_action(action=interface.__name__, request=request_body)
|
||||
|
||||
#
|
||||
# Client Errors
|
||||
|
@ -350,4 +357,4 @@ class WebController(CharacterControlServer):
|
|||
#
|
||||
else:
|
||||
self.log.debug(f"{interface_name} [200 - OK]")
|
||||
return response
|
||||
return self.emitter.respond(response=response)
|
||||
|
|
|
@ -212,11 +212,9 @@ class WebEmitter:
|
|||
self.log = Logger('web-emitter')
|
||||
|
||||
@staticmethod
|
||||
def assemble_response(response: dict, request_id: int, duration) -> dict:
|
||||
def assemble_response(response: dict) -> dict:
|
||||
response_data = {'result': response,
|
||||
'version': str(nucypher.__version__),
|
||||
'id': str(request_id),
|
||||
'duration': str(duration)}
|
||||
'version': str(nucypher.__version__)}
|
||||
return response_data
|
||||
|
||||
def exception(drone_character,
|
||||
|
@ -232,10 +230,8 @@ class WebEmitter:
|
|||
raise e
|
||||
return drone_character.sink(str(e), status=response_code)
|
||||
|
||||
def ipc(drone_character, response, request_id, duration) -> Response:
|
||||
assembled_response = drone_character.assemble_response(response=response,
|
||||
request_id=request_id,
|
||||
duration=duration)
|
||||
def respond(drone_character, response) -> Response:
|
||||
assembled_response = drone_character.assemble_response(response=response)
|
||||
serialized_response = WebEmitter.transport_serializer(assembled_response)
|
||||
|
||||
# ---------- HTTP OUTPUT
|
||||
|
|
|
@ -125,7 +125,7 @@ class AliceInterface(CharacterPublicInterface):
|
|||
label=label
|
||||
)
|
||||
|
||||
plaintexts = self.alice.decrypt_message_kit(
|
||||
plaintexts = self.character.decrypt_message_kit(
|
||||
message_kit=message_kit,
|
||||
data_source=data_source,
|
||||
label=label
|
||||
|
|
|
@ -9,4 +9,4 @@ class EncryptMessage(BaseSchema):
|
|||
|
||||
# output
|
||||
message_kit = fields.UmbralMessageKit(dump_only=True)
|
||||
signature = fields.Str(dump_only=True) # maybe we need a signature field?
|
||||
signature = fields.String(dump_only=True) # maybe we need a signature field?
|
||||
|
|
|
@ -718,7 +718,8 @@ class Bob(Character):
|
|||
app_name = bytes(drone_bob.stamp).hex()[:6]
|
||||
controller = WebController(app_name=app_name,
|
||||
character_controller=drone_bob.controller,
|
||||
crash_on_error=crash_on_error)
|
||||
crash_on_error=crash_on_error,
|
||||
interface=drone_bob._interface_class(character=drone_bob))
|
||||
|
||||
drone_bob.controller = controller.make_control_transport()
|
||||
|
||||
|
@ -1338,7 +1339,8 @@ class Enrico(Character):
|
|||
app_name = bytes(drone_enrico.stamp).hex()[:6]
|
||||
controller = WebController(app_name=app_name,
|
||||
character_controller=drone_enrico.controller,
|
||||
crash_on_error=crash_on_error)
|
||||
crash_on_error=crash_on_error,
|
||||
interface=drone_enrico._interface_class(character=drone_enrico))
|
||||
|
||||
drone_enrico.controller = controller
|
||||
|
||||
|
|
Loading…
Reference in New Issue