diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2017-10-05 18:05:21 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2017-10-05 18:05:21 +0200 |
commit | 9994319ea5c86bad2f88ab737b9b82dfae43cd6a (patch) | |
tree | 92943c5ef789d3be375f630e74040535d01cc37e /archivist/server | |
parent | 975b647a3274f299df7260b6597aa88be90a7bb8 (diff) | |
download | archivist-9994319ea5c86bad2f88ab737b9b82dfae43cd6a.tar.gz archivist-9994319ea5c86bad2f88ab737b9b82dfae43cd6a.tar.bz2 archivist-9994319ea5c86bad2f88ab737b9b82dfae43cd6a.zip |
Webservice to create a new tag
Diffstat (limited to 'archivist/server')
-rw-r--r-- | archivist/server/__init__.py | 14 | ||||
-rw-r--r-- | archivist/server/tag.py | 14 |
2 files changed, 26 insertions, 2 deletions
diff --git a/archivist/server/__init__.py b/archivist/server/__init__.py index f5ae194..913cff3 100644 --- a/archivist/server/__init__.py +++ b/archivist/server/__init__.py @@ -4,6 +4,9 @@ from flask.cli import FlaskGroup, ScriptInfo from flask import Flask from flask_restplus import Api, Resource, fields +from ..model import db + +app = Flask('archivist') api = Api(version='0.1', title='Archivist API', description='API for the Archivist Document System') @@ -12,9 +15,16 @@ NAMESPACES=( 'prefix', ) -def create_app(info): - app = Flask('archivist') +@app.before_request +def before_request(): + db.connect() +@app.after_request +def after_request(response): + db.close() + return response + +def create_app(info): for ns in NAMESPACES: mod = import_module('.' + ns, __name__) api.add_namespace(mod.api) diff --git a/archivist/server/tag.py b/archivist/server/tag.py index 96fafcd..8142cd1 100644 --- a/archivist/server/tag.py +++ b/archivist/server/tag.py @@ -1,6 +1,8 @@ +from flask import request from flask_restplus import Resource, fields, Namespace from .. import model as m +from .. import bl api = Namespace('tag', description = 'Operations on tags') @@ -17,3 +19,15 @@ class TagList(Resource): def get(self): """List all available tags.""" return list(m.Tag.select().where(~m.Tag.default).dicts().iterator()) + + @api.expect(tag, validate=True) + @api.response(201, "Tag created") + @api.response(409, "Tag already exists") + def put(self): + """Create a new tag.""" + data = request.get_json() + tag, created = bl.PrefixTag(**data).create() + if created: + return '',201 + else: + return '',409 |