Add give_token, catch_etiquette_exception to all endpoints at once.
This commit is contained in:
parent
f7e5b639e3
commit
42d4b7fafb
7 changed files with 22 additions and 63 deletions
|
@ -10,6 +10,7 @@ from voussoirkit import pathclass
|
||||||
import etiquette
|
import etiquette
|
||||||
|
|
||||||
from . import caching
|
from . import caching
|
||||||
|
from . import decorators
|
||||||
from . import jinja_filters
|
from . import jinja_filters
|
||||||
from . import jsonify
|
from . import jsonify
|
||||||
from . import sessions
|
from . import sessions
|
||||||
|
@ -45,6 +46,27 @@ file_cache_manager = caching.FileCacheManager(
|
||||||
max_age=BROWSER_CACHE_DURATION,
|
max_age=BROWSER_CACHE_DURATION,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Flask provides decorators for before_request and after_request, but not for
|
||||||
|
# wrapping the whole request. The decorators I am using need to wrap the whole
|
||||||
|
# request, either to catch exceptions (which don't get passed through
|
||||||
|
# after_request) or to maintain some state before running the function and
|
||||||
|
# adding it to the response after.
|
||||||
|
# Instead of copy-pasting my decorators onto every single function and
|
||||||
|
# forgetting to keep up with them in the future, let's just hijack the
|
||||||
|
# decorator I know every endpoint will have: site.route.
|
||||||
|
_original_route = site.route
|
||||||
|
def decorate_and_route(*route_args, **route_kwargs):
|
||||||
|
def wrapper(endpoint):
|
||||||
|
if not hasattr(endpoint, '_fully_decorated'):
|
||||||
|
endpoint = decorators.catch_etiquette_exception(endpoint)
|
||||||
|
endpoint = session_manager.give_token(endpoint)
|
||||||
|
|
||||||
|
endpoint = _original_route(*route_args, **route_kwargs)(endpoint)
|
||||||
|
endpoint._fully_decorated = True
|
||||||
|
return endpoint
|
||||||
|
return wrapper
|
||||||
|
site.route = decorate_and_route
|
||||||
|
|
||||||
gzip_minimum_size = 500
|
gzip_minimum_size = 500
|
||||||
gzip_level = 3
|
gzip_level = 3
|
||||||
@site.after_request
|
@site.after_request
|
||||||
|
|
|
@ -14,7 +14,6 @@ session_manager = common.session_manager
|
||||||
# Individual albums ################################################################################
|
# Individual albums ################################################################################
|
||||||
|
|
||||||
@site.route('/album/<album_id>')
|
@site.route('/album/<album_id>')
|
||||||
@session_manager.give_token
|
|
||||||
def get_album_html(album_id):
|
def get_album_html(album_id):
|
||||||
album = common.P_album(album_id, response_type='html')
|
album = common.P_album(album_id, response_type='html')
|
||||||
response = common.render_template(
|
response = common.render_template(
|
||||||
|
@ -26,7 +25,6 @@ def get_album_html(album_id):
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/album/<album_id>.json')
|
@site.route('/album/<album_id>.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_album_json(album_id):
|
def get_album_json(album_id):
|
||||||
album = common.P_album(album_id, response_type='json')
|
album = common.P_album(album_id, response_type='json')
|
||||||
album = etiquette.jsonify.album(album)
|
album = etiquette.jsonify.album(album)
|
||||||
|
@ -56,7 +54,6 @@ def get_album_zip(album_id):
|
||||||
return flask.Response(streamed_zip, headers=outgoing_headers)
|
return flask.Response(streamed_zip, headers=outgoing_headers)
|
||||||
|
|
||||||
@site.route('/album/<album_id>/add_child', methods=['POST'])
|
@site.route('/album/<album_id>/add_child', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['child_id'], forbid_whitespace=True)
|
@decorators.required_fields(['child_id'], forbid_whitespace=True)
|
||||||
def post_album_add_child(album_id):
|
def post_album_add_child(album_id):
|
||||||
album = common.P_album(album_id, response_type='json')
|
album = common.P_album(album_id, response_type='json')
|
||||||
|
@ -66,7 +63,6 @@ def post_album_add_child(album_id):
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/album/<album_id>/remove_child', methods=['POST'])
|
@site.route('/album/<album_id>/remove_child', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['child_id'], forbid_whitespace=True)
|
@decorators.required_fields(['child_id'], forbid_whitespace=True)
|
||||||
def post_album_remove_child(album_id):
|
def post_album_remove_child(album_id):
|
||||||
album = common.P_album(album_id, response_type='json')
|
album = common.P_album(album_id, response_type='json')
|
||||||
|
@ -76,7 +72,6 @@ def post_album_remove_child(album_id):
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/album/<album_id>/refresh_directories', methods=['POST'])
|
@site.route('/album/<album_id>/refresh_directories', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_album_refresh_directories(album_id):
|
def post_album_refresh_directories(album_id):
|
||||||
album = common.P_album(album_id, response_type='json')
|
album = common.P_album(album_id, response_type='json')
|
||||||
for directory in album.get_associated_directories():
|
for directory in album.get_associated_directories():
|
||||||
|
@ -87,8 +82,6 @@ def post_album_refresh_directories(album_id):
|
||||||
# Album photo operations ###########################################################################
|
# Album photo operations ###########################################################################
|
||||||
|
|
||||||
@site.route('/album/<album_id>/add_photo', methods=['POST'])
|
@site.route('/album/<album_id>/add_photo', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['photo_id'], forbid_whitespace=True)
|
@decorators.required_fields(['photo_id'], forbid_whitespace=True)
|
||||||
def post_album_add_photo(album_id):
|
def post_album_add_photo(album_id):
|
||||||
'''
|
'''
|
||||||
|
@ -103,8 +96,6 @@ def post_album_add_photo(album_id):
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/album/<album_id>/remove_photo', methods=['POST'])
|
@site.route('/album/<album_id>/remove_photo', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['photo_id'], forbid_whitespace=True)
|
@decorators.required_fields(['photo_id'], forbid_whitespace=True)
|
||||||
def post_album_remove_photo(album_id):
|
def post_album_remove_photo(album_id):
|
||||||
'''
|
'''
|
||||||
|
@ -121,8 +112,6 @@ def post_album_remove_photo(album_id):
|
||||||
# Album tag operations #############################################################################
|
# Album tag operations #############################################################################
|
||||||
|
|
||||||
@site.route('/album/<album_id>/add_tag', methods=['POST'])
|
@site.route('/album/<album_id>/add_tag', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
def post_album_add_tag(album_id):
|
def post_album_add_tag(album_id):
|
||||||
'''
|
'''
|
||||||
Apply a tag to every photo in the album.
|
Apply a tag to every photo in the album.
|
||||||
|
@ -146,8 +135,6 @@ def post_album_add_tag(album_id):
|
||||||
# Album metadata operations ########################################################################
|
# Album metadata operations ########################################################################
|
||||||
|
|
||||||
@site.route('/album/<album_id>/edit', methods=['POST'])
|
@site.route('/album/<album_id>/edit', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_album_edit(album_id):
|
def post_album_edit(album_id):
|
||||||
'''
|
'''
|
||||||
Edit the title / description.
|
Edit the title / description.
|
||||||
|
@ -168,7 +155,6 @@ def get_albums_core():
|
||||||
return albums
|
return albums
|
||||||
|
|
||||||
@site.route('/albums')
|
@site.route('/albums')
|
||||||
@session_manager.give_token
|
|
||||||
def get_albums_html():
|
def get_albums_html():
|
||||||
albums = get_albums_core()
|
albums = get_albums_core()
|
||||||
response = common.render_template(
|
response = common.render_template(
|
||||||
|
@ -180,7 +166,6 @@ def get_albums_html():
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/albums.json')
|
@site.route('/albums.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_albums_json():
|
def get_albums_json():
|
||||||
albums = get_albums_core()
|
albums = get_albums_core()
|
||||||
albums = [etiquette.jsonify.album(album, minimal=True) for album in albums]
|
albums = [etiquette.jsonify.album(album, minimal=True) for album in albums]
|
||||||
|
@ -189,8 +174,6 @@ def get_albums_json():
|
||||||
# Album create and delete ##########################################################################
|
# Album create and delete ##########################################################################
|
||||||
|
|
||||||
@site.route('/albums/create_album', methods=['POST'])
|
@site.route('/albums/create_album', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_albums_create():
|
def post_albums_create():
|
||||||
title = request.form.get('title', None)
|
title = request.form.get('title', None)
|
||||||
description = request.form.get('description', None)
|
description = request.form.get('description', None)
|
||||||
|
@ -209,8 +192,6 @@ def post_albums_create():
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/album/<album_id>/delete', methods=['POST'])
|
@site.route('/album/<album_id>/delete', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_album_delete(album_id):
|
def post_album_delete(album_id):
|
||||||
album = common.P_album(album_id, response_type='json')
|
album = common.P_album(album_id, response_type='json')
|
||||||
album.delete(commit=True)
|
album.delete(commit=True)
|
||||||
|
|
|
@ -10,7 +10,6 @@ session_manager = common.session_manager
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
@site.route('/')
|
@site.route('/')
|
||||||
@session_manager.give_token
|
|
||||||
def root():
|
def root():
|
||||||
motd = random.choice(common.P.config['motd_strings'])
|
motd = random.choice(common.P.config['motd_strings'])
|
||||||
return common.render_template(request, 'root.html', motd=motd)
|
return common.render_template(request, 'root.html', motd=motd)
|
||||||
|
@ -21,7 +20,6 @@ def favicon():
|
||||||
return flask.send_file(common.FAVICON_PATH.absolute_path)
|
return flask.send_file(common.FAVICON_PATH.absolute_path)
|
||||||
|
|
||||||
@site.route('/apitest')
|
@site.route('/apitest')
|
||||||
@session_manager.give_token
|
|
||||||
def apitest():
|
def apitest():
|
||||||
response = flask.Response('testing')
|
response = flask.Response('testing')
|
||||||
return response
|
return response
|
||||||
|
|
|
@ -13,15 +13,12 @@ session_manager = common.session_manager
|
||||||
# Individual bookmarks #############################################################################
|
# Individual bookmarks #############################################################################
|
||||||
|
|
||||||
@site.route('/bookmark/<bookmark_id>.json')
|
@site.route('/bookmark/<bookmark_id>.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_bookmark_json(bookmark_id):
|
def get_bookmark_json(bookmark_id):
|
||||||
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
||||||
response = etiquette.jsonify.bookmark(bookmark)
|
response = etiquette.jsonify.bookmark(bookmark)
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/bookmark/<bookmark_id>/edit', methods=['POST'])
|
@site.route('/bookmark/<bookmark_id>/edit', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_bookmark_edit(bookmark_id):
|
def post_bookmark_edit(bookmark_id):
|
||||||
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
||||||
# Emptystring is okay for titles, but not for URL.
|
# Emptystring is okay for titles, but not for URL.
|
||||||
|
@ -36,13 +33,11 @@ def post_bookmark_edit(bookmark_id):
|
||||||
# Bookmark listings ################################################################################
|
# Bookmark listings ################################################################################
|
||||||
|
|
||||||
@site.route('/bookmarks')
|
@site.route('/bookmarks')
|
||||||
@session_manager.give_token
|
|
||||||
def get_bookmarks_html():
|
def get_bookmarks_html():
|
||||||
bookmarks = list(common.P.get_bookmarks())
|
bookmarks = list(common.P.get_bookmarks())
|
||||||
return common.render_template(request, 'bookmarks.html', bookmarks=bookmarks)
|
return common.render_template(request, 'bookmarks.html', bookmarks=bookmarks)
|
||||||
|
|
||||||
@site.route('/bookmarks.json')
|
@site.route('/bookmarks.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_bookmarks_json():
|
def get_bookmarks_json():
|
||||||
bookmarks = [etiquette.jsonify.bookmark(b) for b in common.P.get_bookmarks()]
|
bookmarks = [etiquette.jsonify.bookmark(b) for b in common.P.get_bookmarks()]
|
||||||
return jsonify.make_json_response(bookmarks)
|
return jsonify.make_json_response(bookmarks)
|
||||||
|
@ -50,7 +45,6 @@ def get_bookmarks_json():
|
||||||
# Bookmark create and delete #######################################################################
|
# Bookmark create and delete #######################################################################
|
||||||
|
|
||||||
@site.route('/bookmarks/create_bookmark', methods=['POST'])
|
@site.route('/bookmarks/create_bookmark', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['url'], forbid_whitespace=True)
|
@decorators.required_fields(['url'], forbid_whitespace=True)
|
||||||
def post_bookmark_create():
|
def post_bookmark_create():
|
||||||
url = request.form['url']
|
url = request.form['url']
|
||||||
|
@ -62,7 +56,6 @@ def post_bookmark_create():
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/bookmark/<bookmark_id>/delete', methods=['POST'])
|
@site.route('/bookmark/<bookmark_id>/delete', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_bookmark_delete(bookmark_id):
|
def post_bookmark_delete(bookmark_id):
|
||||||
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
bookmark = common.P_bookmark(bookmark_id, response_type='json')
|
||||||
bookmark.delete(commit=True)
|
bookmark.delete(commit=True)
|
||||||
|
|
|
@ -19,13 +19,11 @@ photo_download_zip_tokens = cacheclass.Cache(maxlen=100)
|
||||||
# Individual photos ################################################################################
|
# Individual photos ################################################################################
|
||||||
|
|
||||||
@site.route('/photo/<photo_id>')
|
@site.route('/photo/<photo_id>')
|
||||||
@session_manager.give_token
|
|
||||||
def get_photo_html(photo_id):
|
def get_photo_html(photo_id):
|
||||||
photo = common.P_photo(photo_id, response_type='html')
|
photo = common.P_photo(photo_id, response_type='html')
|
||||||
return common.render_template(request, 'photo.html', photo=photo)
|
return common.render_template(request, 'photo.html', photo=photo)
|
||||||
|
|
||||||
@site.route('/photo/<photo_id>.json')
|
@site.route('/photo/<photo_id>.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_photo_json(photo_id):
|
def get_photo_json(photo_id):
|
||||||
photo = common.P_photo(photo_id, response_type='json')
|
photo = common.P_photo(photo_id, response_type='json')
|
||||||
photo = etiquette.jsonify.photo(photo)
|
photo = etiquette.jsonify.photo(photo)
|
||||||
|
@ -71,8 +69,6 @@ def get_thumbnail(photo_id):
|
||||||
# Photo create and delete ##########################################################################
|
# Photo create and delete ##########################################################################
|
||||||
|
|
||||||
@site.route('/photo/<photo_id>/delete', methods=['POST'])
|
@site.route('/photo/<photo_id>/delete', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
def post_photo_delete(photo_id):
|
def post_photo_delete(photo_id):
|
||||||
print(photo_id)
|
print(photo_id)
|
||||||
photo = common.P_photo(photo_id, response_type='json')
|
photo = common.P_photo(photo_id, response_type='json')
|
||||||
|
@ -83,7 +79,6 @@ def post_photo_delete(photo_id):
|
||||||
|
|
||||||
# Photo tag operations #############################################################################
|
# Photo tag operations #############################################################################
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_photo_add_remove_tag_core(photo_ids, tagname, add_or_remove):
|
def post_photo_add_remove_tag_core(photo_ids, tagname, add_or_remove):
|
||||||
if isinstance(photo_ids, str):
|
if isinstance(photo_ids, str):
|
||||||
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
||||||
|
@ -149,7 +144,6 @@ def post_batch_photos_remove_tag():
|
||||||
|
|
||||||
# Photo metadata operations ########################################################################
|
# Photo metadata operations ########################################################################
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@site.route('/photo/<photo_id>/generate_thumbnail', methods=['POST'])
|
@site.route('/photo/<photo_id>/generate_thumbnail', methods=['POST'])
|
||||||
def post_photo_generate_thumbnail(photo_id):
|
def post_photo_generate_thumbnail(photo_id):
|
||||||
special = request.form.to_dict()
|
special = request.form.to_dict()
|
||||||
|
@ -161,7 +155,6 @@ def post_photo_generate_thumbnail(photo_id):
|
||||||
response = jsonify.make_json_response({})
|
response = jsonify.make_json_response({})
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_photo_refresh_metadata_core(photo_ids):
|
def post_photo_refresh_metadata_core(photo_ids):
|
||||||
if isinstance(photo_ids, str):
|
if isinstance(photo_ids, str):
|
||||||
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
||||||
|
@ -193,21 +186,18 @@ def post_batch_photos_refresh_metadata():
|
||||||
response = post_photo_refresh_metadata_core(photo_ids=request.form['photo_ids'])
|
response = post_photo_refresh_metadata_core(photo_ids=request.form['photo_ids'])
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@site.route('/photo/<photo_id>/set_searchhidden', methods=['POST'])
|
@site.route('/photo/<photo_id>/set_searchhidden', methods=['POST'])
|
||||||
def post_photo_set_searchhidden(photo_id):
|
def post_photo_set_searchhidden(photo_id):
|
||||||
photo = common.P_photo(photo_id, response_type='json')
|
photo = common.P_photo(photo_id, response_type='json')
|
||||||
photo.set_searchhidden(True)
|
photo.set_searchhidden(True)
|
||||||
return jsonify.make_json_response({})
|
return jsonify.make_json_response({})
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@site.route('/photo/<photo_id>/unset_searchhidden', methods=['POST'])
|
@site.route('/photo/<photo_id>/unset_searchhidden', methods=['POST'])
|
||||||
def post_photo_unset_searchhidden(photo_id):
|
def post_photo_unset_searchhidden(photo_id):
|
||||||
photo = common.P_photo(photo_id, response_type='json')
|
photo = common.P_photo(photo_id, response_type='json')
|
||||||
photo.set_searchhidden(False)
|
photo.set_searchhidden(False)
|
||||||
return jsonify.make_json_response({})
|
return jsonify.make_json_response({})
|
||||||
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_batch_photos_searchhidden_core(photo_ids, searchhidden):
|
def post_batch_photos_searchhidden_core(photo_ids, searchhidden):
|
||||||
if isinstance(photo_ids, str):
|
if isinstance(photo_ids, str):
|
||||||
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
photo_ids = etiquette.helpers.comma_space_split(photo_ids)
|
||||||
|
@ -236,7 +226,6 @@ def post_batch_photos_unset_searchhidden():
|
||||||
# Clipboard ########################################################################################
|
# Clipboard ########################################################################################
|
||||||
|
|
||||||
@site.route('/clipboard')
|
@site.route('/clipboard')
|
||||||
@session_manager.give_token
|
|
||||||
def get_clipboard_page():
|
def get_clipboard_page():
|
||||||
return common.render_template(request, 'clipboard.html')
|
return common.render_template(request, 'clipboard.html')
|
||||||
|
|
||||||
|
@ -452,7 +441,6 @@ def get_search_core():
|
||||||
return final_results
|
return final_results
|
||||||
|
|
||||||
@site.route('/search')
|
@site.route('/search')
|
||||||
@session_manager.give_token
|
|
||||||
def get_search_html():
|
def get_search_html():
|
||||||
search_results = get_search_core()
|
search_results = get_search_core()
|
||||||
response = common.render_template(
|
response = common.render_template(
|
||||||
|
@ -468,7 +456,6 @@ def get_search_html():
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/search.json')
|
@site.route('/search.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_search_json():
|
def get_search_json():
|
||||||
search_results = get_search_core()
|
search_results = get_search_core()
|
||||||
search_kwargs = search_results['search_kwargs']
|
search_kwargs = search_results['search_kwargs']
|
||||||
|
|
|
@ -31,7 +31,6 @@ def get_tag_id_redirect(tag_id):
|
||||||
return flask.redirect(url)
|
return flask.redirect(url)
|
||||||
|
|
||||||
@site.route('/tag/<specific_tag>/edit', methods=['POST'])
|
@site.route('/tag/<specific_tag>/edit', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
def post_tag_edit(specific_tag):
|
def post_tag_edit(specific_tag):
|
||||||
tag = common.P_tag(specific_tag, response_type='json')
|
tag = common.P_tag(specific_tag, response_type='json')
|
||||||
name = request.form.get('name', '').strip()
|
name = request.form.get('name', '').strip()
|
||||||
|
@ -46,8 +45,6 @@ def post_tag_edit(specific_tag):
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/tag/<tagname>/add_child', methods=['POST'])
|
@site.route('/tag/<tagname>/add_child', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['child_name'], forbid_whitespace=True)
|
@decorators.required_fields(['child_name'], forbid_whitespace=True)
|
||||||
def post_tag_add_child(tagname):
|
def post_tag_add_child(tagname):
|
||||||
parent = common.P_tag(tagname, response_type='json')
|
parent = common.P_tag(tagname, response_type='json')
|
||||||
|
@ -57,8 +54,6 @@ def post_tag_add_child(tagname):
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/tag/<tagname>/remove_child', methods=['POST'])
|
@site.route('/tag/<tagname>/remove_child', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['child_name'], forbid_whitespace=True)
|
@decorators.required_fields(['child_name'], forbid_whitespace=True)
|
||||||
def post_tag_remove_child(tagname):
|
def post_tag_remove_child(tagname):
|
||||||
parent = common.P_tag(tagname, response_type='json')
|
parent = common.P_tag(tagname, response_type='json')
|
||||||
|
@ -79,7 +74,6 @@ def get_all_tag_names():
|
||||||
|
|
||||||
@site.route('/tag/<specific_tag_name>')
|
@site.route('/tag/<specific_tag_name>')
|
||||||
@site.route('/tags')
|
@site.route('/tags')
|
||||||
@session_manager.give_token
|
|
||||||
def get_tags_html(specific_tag_name=None):
|
def get_tags_html(specific_tag_name=None):
|
||||||
if specific_tag_name is None:
|
if specific_tag_name is None:
|
||||||
specific_tag = None
|
specific_tag = None
|
||||||
|
@ -114,7 +108,6 @@ def get_tags_html(specific_tag_name=None):
|
||||||
|
|
||||||
@site.route('/tag/<specific_tag_name>.json')
|
@site.route('/tag/<specific_tag_name>.json')
|
||||||
@site.route('/tags.json')
|
@site.route('/tags.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_tags_json(specific_tag_name=None):
|
def get_tags_json(specific_tag_name=None):
|
||||||
if specific_tag_name is None:
|
if specific_tag_name is None:
|
||||||
specific_tag = None
|
specific_tag = None
|
||||||
|
@ -137,8 +130,6 @@ def get_tags_json(specific_tag_name=None):
|
||||||
# Tag create and delete ############################################################################
|
# Tag create and delete ############################################################################
|
||||||
|
|
||||||
@site.route('/tags/create_tag', methods=['POST'])
|
@site.route('/tags/create_tag', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['name'], forbid_whitespace=True)
|
@decorators.required_fields(['name'], forbid_whitespace=True)
|
||||||
def post_tag_create():
|
def post_tag_create():
|
||||||
name = request.form['name']
|
name = request.form['name']
|
||||||
|
@ -149,8 +140,6 @@ def post_tag_create():
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/tags/easybake', methods=['POST'])
|
@site.route('/tags/easybake', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['easybake_string'], forbid_whitespace=True)
|
@decorators.required_fields(['easybake_string'], forbid_whitespace=True)
|
||||||
def post_tag_easybake():
|
def post_tag_easybake():
|
||||||
easybake_string = request.form['easybake_string']
|
easybake_string = request.form['easybake_string']
|
||||||
|
@ -160,8 +149,6 @@ def post_tag_easybake():
|
||||||
return jsonify.make_json_response(notes)
|
return jsonify.make_json_response(notes)
|
||||||
|
|
||||||
@site.route('/tag/<tagname>/delete', methods=['POST'])
|
@site.route('/tag/<tagname>/delete', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
def post_tag_delete(tagname):
|
def post_tag_delete(tagname):
|
||||||
tag = common.P_tag(tagname, response_type='json')
|
tag = common.P_tag(tagname, response_type='json')
|
||||||
tag.delete(commit=True)
|
tag.delete(commit=True)
|
||||||
|
@ -169,8 +156,6 @@ def post_tag_delete(tagname):
|
||||||
return jsonify.make_json_response(response)
|
return jsonify.make_json_response(response)
|
||||||
|
|
||||||
@site.route('/tag/<tagname>/remove_synonym', methods=['POST'])
|
@site.route('/tag/<tagname>/remove_synonym', methods=['POST'])
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['syn_name'], forbid_whitespace=True)
|
@decorators.required_fields(['syn_name'], forbid_whitespace=True)
|
||||||
def post_tag_remove_synonym(tagname):
|
def post_tag_remove_synonym(tagname):
|
||||||
syn_name = request.form['syn_name']
|
syn_name = request.form['syn_name']
|
||||||
|
|
|
@ -14,13 +14,11 @@ session_manager = common.session_manager
|
||||||
# Individual users #################################################################################
|
# Individual users #################################################################################
|
||||||
|
|
||||||
@site.route('/user/<username>')
|
@site.route('/user/<username>')
|
||||||
@session_manager.give_token
|
|
||||||
def get_user_html(username):
|
def get_user_html(username):
|
||||||
user = common.P_user(username, response_type='html')
|
user = common.P_user(username, response_type='html')
|
||||||
return common.render_template(request, 'user.html', user=user)
|
return common.render_template(request, 'user.html', user=user)
|
||||||
|
|
||||||
@site.route('/user/<username>.json')
|
@site.route('/user/<username>.json')
|
||||||
@session_manager.give_token
|
|
||||||
def get_user_json(username):
|
def get_user_json(username):
|
||||||
user = common.P_user(username, response_type='json')
|
user = common.P_user(username, response_type='json')
|
||||||
user = etiquette.jsonify.user(user)
|
user = etiquette.jsonify.user(user)
|
||||||
|
@ -41,7 +39,6 @@ def get_user_id_redirect(user_id):
|
||||||
# Login and logout #################################################################################
|
# Login and logout #################################################################################
|
||||||
|
|
||||||
@site.route('/login', methods=['GET'])
|
@site.route('/login', methods=['GET'])
|
||||||
@session_manager.give_token
|
|
||||||
def get_login():
|
def get_login():
|
||||||
response = common.render_template(
|
response = common.render_template(
|
||||||
request,
|
request,
|
||||||
|
@ -52,7 +49,6 @@ def get_login():
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@site.route('/login', methods=['POST'])
|
@site.route('/login', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.required_fields(['username', 'password'])
|
@decorators.required_fields(['username', 'password'])
|
||||||
def post_login():
|
def post_login():
|
||||||
session = session_manager.get(request)
|
session = session_manager.get(request)
|
||||||
|
@ -82,7 +78,6 @@ def post_login():
|
||||||
return jsonify.make_json_response({})
|
return jsonify.make_json_response({})
|
||||||
|
|
||||||
@site.route('/logout', methods=['POST'])
|
@site.route('/logout', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
def logout():
|
def logout():
|
||||||
session_manager.remove(request)
|
session_manager.remove(request)
|
||||||
response = jsonify.make_json_response({})
|
response = jsonify.make_json_response({})
|
||||||
|
@ -95,8 +90,6 @@ def get_register():
|
||||||
return flask.redirect('/login')
|
return flask.redirect('/login')
|
||||||
|
|
||||||
@site.route('/register', methods=['POST'])
|
@site.route('/register', methods=['POST'])
|
||||||
@session_manager.give_token
|
|
||||||
@decorators.catch_etiquette_exception
|
|
||||||
@decorators.required_fields(['username', 'password_1', 'password_2'])
|
@decorators.required_fields(['username', 'password_1', 'password_2'])
|
||||||
def post_register():
|
def post_register():
|
||||||
session = session_manager.get(request)
|
session = session_manager.get(request)
|
||||||
|
|
Loading…
Reference in a new issue