From e44da64ed473f2a35e17bf1a5d753b2c51597c81 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Wed, 8 Jan 2020 18:43:07 +0000 Subject: [PATCH] Improved property and action style --- .../api/v2/views/actions/camera.py | 4 ++-- .../common/flask_labthings/decorators.py | 20 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/openflexure_microscope/api/v2/views/actions/camera.py b/openflexure_microscope/api/v2/views/actions/camera.py index 4169e042..4e8ef19e 100644 --- a/openflexure_microscope/api/v2/views/actions/camera.py +++ b/openflexure_microscope/api/v2/views/actions/camera.py @@ -6,7 +6,7 @@ from openflexure_microscope.common.flask_labthings.decorators import ( marshal_with, doc, tag, - ltaction, + ThingAction, doc_response, ) @@ -19,7 +19,7 @@ import logging from flask import jsonify, request, abort, url_for, redirect, send_file -@ltaction +@ThingAction class CaptureAPI(Resource): """ Create a new image capture. diff --git a/openflexure_microscope/common/flask_labthings/decorators.py b/openflexure_microscope/common/flask_labthings/decorators.py index 67e56eee..94ace85b 100644 --- a/openflexure_microscope/common/flask_labthings/decorators.py +++ b/openflexure_microscope/common/flask_labthings/decorators.py @@ -71,17 +71,21 @@ def marshal_task(f): return wrapper -def ltaction(f): +def ThingAction(viewcls): # Pass params to call function attribute for external access - update_spec(f, {"tags": ["actions"]}) - update_spec(f, {"_groups": ["actions"]}) - return f + update_spec(viewcls, {"tags": ["actions"]}) + update_spec(viewcls, {"_groups": ["actions"]}) + return viewcls -def ltproperty(f): +thing_action = ThingAction + +def ThingProperty(viewcls): # Pass params to call function attribute for external access - update_spec(f, {"tags": ["properties"]}) - update_spec(f, {"_groups": ["properties"]}) - return f + update_spec(viewcls, {"tags": ["properties"]}) + update_spec(viewcls, {"_groups": ["properties"]}) + return viewcls + +thing_property = ThingProperty class use_args(object): def __init__(self, schema, **kwargs):