From ac621026a507a21fe3c115b99c4be122f172232b Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Mon, 12 Sep 2016 02:22:02 +0200 Subject: [PATCH] Improved new-endpoint so it can create rows with NOT NULL-columns --- server.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/server.py b/server.py index dde9977..db58e4a 100644 --- a/server.py +++ b/server.py @@ -275,11 +275,9 @@ def edit(prefix='', ignore=[]): if not prefix and 'prefix' in request.args: prefix = request.args['prefix'] modify('BEGIN') + changes = request.values.items() if request.is_json: changes = request.get_json().items() - else: - changes = request.args.items() - created = {} for key, val in changes: if key in ignore: continue @@ -299,9 +297,19 @@ def edit(prefix='', ignore=[]): @mod_required def create(table): assert table in tabs - id = modify('INSERT INTO %s (created_by, time_created, time_updated) VALUES (?, ?, ?)'%tabs[table][0], - session['user']['dbid'], datetime.now(), datetime.now()) - edit(prefix=table+'.'+str(id)+'.') + columns = ['created_by', 'time_created', 'time_updated'] + values = [session['user']['dbid'], datetime.now(), datetime.now()] + args = request.values + if request.is_json: + args = request.get_json() + for column, val in args.items(): + if column == 'ref': + continue + assert column in tabs[table][2] + columns.append(column) + values.append(val) + id = modify('INSERT INTO %s (%s) VALUES (%s)'%(tabs[table][0], + ','.join(columns), ','.join(['?']*len(values))), *values) if 'ref' in request.values: return redirect(request.values['ref']) return str(id), 200 -- GitLab