add PATCH method
This commit is contained in:
parent
1661aee023
commit
2d27836e29
@ -1,8 +1,8 @@
|
||||
import pickle
|
||||
from flask import Flask
|
||||
from flask import render_template, jsonify, request
|
||||
import time
|
||||
import random
|
||||
import ulid
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.update(
|
||||
DEBUG=True,
|
||||
@ -12,11 +12,19 @@ app.config.update(
|
||||
try:
|
||||
with open("save.p", "rb") as f:
|
||||
database = pickle.load(f)
|
||||
# Can be commented out after non-id languages are all converted
|
||||
for item in database['values']:
|
||||
if not 'id' in item:
|
||||
item['id'] = ulid.new().str
|
||||
except (FileNotFoundError) as e:
|
||||
database = {'languages': [],
|
||||
'phonemes': [],
|
||||
'values': []}
|
||||
|
||||
def saveDatabase():
|
||||
# Save copy under separate name
|
||||
with open("newestsave.p", "wb") as f:
|
||||
pickle.dump(database, f)
|
||||
|
||||
# Render the client at the default URL
|
||||
@app.route("/")
|
||||
@ -24,16 +32,17 @@ def initial():
|
||||
return render_template('index.html')
|
||||
|
||||
# Place for client to communicate with the server
|
||||
@app.route("/server", methods=["GET", "POST"])
|
||||
@app.route("/server", methods=["GET", "POST", "PATCH"])
|
||||
# TODO add more methods
|
||||
def backend():
|
||||
# Get method returns the latest database
|
||||
# GET method returns the latest database
|
||||
if request.method == "GET":
|
||||
return jsonify(database)
|
||||
|
||||
# Post method currently appends to the languages
|
||||
# TODO add more methods
|
||||
# POST method currently appends to the languages
|
||||
elif request.method == "POST":
|
||||
newlanguage = request.get_json()
|
||||
newlanguage['id'] = ulid.new().str
|
||||
database['values'].append(newlanguage)
|
||||
|
||||
# Add new phonemes
|
||||
@ -42,14 +51,18 @@ def backend():
|
||||
database['phonemes'] = database['phonemes'] + uniquephonemes
|
||||
|
||||
# Add new language
|
||||
newlang = {newlanguage['name']}
|
||||
uniquelanguages = list(newlang - set(database['languages']))
|
||||
newlangname = {newlanguage['name']}
|
||||
uniquelanguages = list(newlangname - set(database['languages']))
|
||||
database['languages'] = database['languages'] + uniquelanguages
|
||||
|
||||
# Save copy under separate name
|
||||
with open("newestsave.p", "wb") as f:
|
||||
pickle.dump(database, f)
|
||||
saveDatabase()
|
||||
return jsonify(database)
|
||||
|
||||
# PATCH method inputs edited language and returns updated database
|
||||
elif request.method == "PATCH":
|
||||
newlanguage = request.get_json()
|
||||
database['values'] = [newlanguage if language['id'] == newlanguage['id'] else language for language in database['values']]
|
||||
saveDatabase()
|
||||
return jsonify(database)
|
||||
|
||||
else:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user