changeset 68:4cb946982fca

Added POST endpoint to revert a page. Fixed a stupid dictionary bug.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 12 Feb 2013 20:52:58 -0800
parents 048ef0681e42
children 0adac3bc079e
files wikked/views.py
diffstat 1 files changed, 24 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/wikked/views.py	Tue Feb 12 20:52:26 2013 -0800
+++ b/wikked/views.py	Tue Feb 12 20:52:58 2013 -0800
@@ -57,7 +57,7 @@
     meta['url'] = page.url
     for name in COERCE_META:
         if name in meta:
-            meta[name] = COERCE_META(meta[name])
+            meta[name] = COERCE_META[name](meta[name])
     return meta
 
 
@@ -218,7 +218,7 @@
     return make_auth_response(result)
 
 
-@app.route('/api/edit/<path:url>', methods=['GET', 'PUT', 'POST'])
+@app.route('/api/edit/<path:url>', methods=['GET', 'POST'])
 def api_edit_page(url):
     if request.method == 'GET':
         page = get_page_or_none(url)
@@ -266,6 +266,28 @@
     return make_auth_response(result)
 
 
+@app.route('/api/revert/<path:url>', methods=['POST'])
+def api_revert_page(url):
+    if not 'rev' in request.form:
+        abort(400)
+    rev = request.form['rev']
+    author = request.remote_addr
+    if 'author' in request.form and len(request.form['author']) > 0:
+        author = request.form['author']
+    message = 'Reverted %s to revision %s' % (url, rev)
+    if 'message' in request.form and len(request.form['message']) > 0:
+        message = request.form['message']
+
+    page_fields = {
+            'rev': rev,
+            'author': author,
+            'message': message
+            }
+    g.wiki.revertPage(url, page_fields)
+    result = {'reverted': 1}
+    return make_auth_response(result)
+
+
 @app.route('/api/rename/<path:url>', methods=['POST'])
 def api_rename_page(url):
     pass