From dd54eabd93e59728c10082f1bad9aeb044ae6c77 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Tue, 5 Jan 2021 14:02:08 -0800 Subject: [PATCH] Add api endpoint /tag/tagname/add_synonym. --- .../backend/endpoints/tag_endpoints.py | 33 ++++++++++++------- frontends/etiquette_flask/static/js/api.js | 9 +++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/frontends/etiquette_flask/backend/endpoints/tag_endpoints.py b/frontends/etiquette_flask/backend/endpoints/tag_endpoints.py index 4272e28..c7a63b3 100644 --- a/frontends/etiquette_flask/backend/endpoints/tag_endpoints.py +++ b/frontends/etiquette_flask/backend/endpoints/tag_endpoints.py @@ -52,6 +52,17 @@ def post_tag_add_child(tagname): response = {'action': 'add_child', 'tagname': f'{parent.name}.{child.name}'} return jsonify.make_json_response(response) +@site.route('/tag//add_synonym', methods=['POST']) +@decorators.required_fields(['syn_name'], forbid_whitespace=True) +def post_tag_add_synonym(tagname): + syn_name = request.form['syn_name'] + + master_tag = common.P_tag(tagname, response_type='json') + syn_name = master_tag.add_synonym(syn_name, commit=True) + + response = {'action': 'add_synonym', 'synonym': syn_name} + return jsonify.make_json_response(response) + @site.route('/tag//remove_child', methods=['POST']) @decorators.required_fields(['child_name'], forbid_whitespace=True) def post_tag_remove_child(tagname): @@ -61,6 +72,17 @@ def post_tag_remove_child(tagname): response = {'action': 'remove_child', 'tagname': f'{parent.name}.{child.name}'} return jsonify.make_json_response(response) +@site.route('/tag//remove_synonym', methods=['POST']) +@decorators.required_fields(['syn_name'], forbid_whitespace=True) +def post_tag_remove_synonym(tagname): + syn_name = request.form['syn_name'] + + master_tag = common.P_tag(tagname, response_type='json') + syn_name = master_tag.remove_synonym(syn_name, commit=True) + + response = {'action': 'delete_synonym', 'synonym': syn_name} + return jsonify.make_json_response(response) + # Tag listings ##################################################################################### @site.route('/all_tags.json') @@ -159,14 +181,3 @@ def post_tag_delete(tagname): tag.delete(commit=True) response = {'action': 'delete_tag', 'tagname': tag.name} return jsonify.make_json_response(response) - -@site.route('/tag//remove_synonym', methods=['POST']) -@decorators.required_fields(['syn_name'], forbid_whitespace=True) -def post_tag_remove_synonym(tagname): - syn_name = request.form['syn_name'] - - master_tag = common.P_tag(tagname, response_type='json') - master_tag.remove_synonym(syn_name, commit=True) - - response = {'action': 'delete_synonym', 'synonym': syn_name} - return jsonify.make_json_response(response) diff --git a/frontends/etiquette_flask/static/js/api.js b/frontends/etiquette_flask/static/js/api.js index 2d21201..83fed7f 100644 --- a/frontends/etiquette_flask/static/js/api.js +++ b/frontends/etiquette_flask/static/js/api.js @@ -312,6 +312,15 @@ function add_child(tag_name, child_name, callback) common.post(url, data, callback); } +api.tags.add_synonym = +function add_synonym(tag_name, syn_name, callback) +{ + const url = `/tag/${tag_name}/add_synonym`; + const data = new FormData(); + data.append("syn_name", syn_name); + common.post(url, data, callback); +} + api.tags.create = function create(name, description, callback) {