at master 5.2 kB view raw
1from flask import Blueprint, Flask, render_template, request, Response, send_file 2import mysql.connector 3import json, time, uuid 4from markupsafe import escape 5from functions import isValidSession, getUserPermission 6 7grammar = Blueprint('grammar', __name__, template_folder='templates') 8@grammar.route('/api/v1/grammar/creategroup', methods=["PUT"]) 9def grammarcreategroup(): 10 if request.json == None: 11 return Response(json.dumps("No body was provided"), status=400, mimetype="application/json") 12 13 requestSessionid = request.json.get("sessionid") 14 requestGroupName = request.json.get("groupname") 15 requestType = request.json.get("type") 16 17 if requestSessionid == None: 18 return Response(json.dumps("No sessionid was provided"), status=400, mimetype="application/json") 19 if requestGroupName == None: 20 return Response(json.dumps("No groupname was provided"), status=400, mimetype="application/json") 21 if requestType == None: 22 return Response(json.dumps("No type was provided"), status=400, mimetype="application/json") 23 24 if not str(requestType).isdigit(): 25 return Response(json.dumps("Type is not an integer"), status=400, mimetype="application/json") 26 27 requestType = int(requestType) 28 29 user = isValidSession(requestSessionid) 30 if user == False: 31 return Response(json.dumps("Invalid session"), status=400, mimetype="application/json") 32 33 db = mysql.connector.connect( 34 host="localhost", 35 user="willem", 36 password="Dinkel2006!", 37 database="shykeiichicom" 38 ) 39 40 cursor = db.cursor() 41 42 cursor.execute(f"INSERT INTO grammar_groups (name, creatorid, type) VALUES ({requestGroupName}, {user[0]}, {requestType})") 43 44 db.commit() 45 46 return Response(json.dumps("Created Group"), status=201, mimetype="application/json") 47 48 49@grammar.route('/api/v1/grammar/createwords', methods=["PUT"]) 50def grammarcreatewords(): 51 if request.json == None: 52 return Response(json.dumps("No body was provided"), status=400, mimetype="application/json") 53 54 requestSessionid = request.json.get("sessionid") 55 requestWordList = json.loads(request.json.get("wordlist")) 56 requestWordGroup = request.json.get("group") 57 58 if requestSessionid == None: 59 return Response(json.dumps("No sessionid was provided"), status=400, mimetype="application/json") 60 if requestWordList == None: 61 return Response(json.dumps("No wordlist was provided"), status=400, mimetype="application/json") 62 if requestWordGroup == None: 63 return Response(json.dumps("No group was provided"), status=400, mimetype="application/json") 64 65 user = isValidSession(requestSessionid) 66 if user == False: 67 return Response(json.dumps("Invalid session"), status=400, mimetype="application/json") 68 69 db = mysql.connector.connect( 70 host="localhost", 71 user="willem", 72 password="Dinkel2006!", 73 database="shykeiichicom" 74 ) 75 76 cursor = db.cursor() 77 78 cursor.execute(f"SELECT * FROM grammar_groups WHERE id={requestWordGroup}") 79 80 grammar_group = cursor.fetchone() 81 82 if(grammar_group[2] != user[0]): 83 if(getUserPermission(user[0]) != 1): 84 return Response(json.dumps("You cannot modify this group"), status=400, mimetype="application/json") 85 86 for word in requestWordList: 87 cursor.execute(f"INSERT INTO grammar_gambling_words (word1, word2, correct_word, word_group) VALUES ({word['word1']}, {word['word2']}, {word['correct_word']}, {requestWordGroup})") 88 89 db.commit() 90 91 return Response(json.dumps("Created Words"), status=201, mimetype="application/json") 92 93@grammar.route('/api/v1/grammar/getgroups', methods=["GET"]) 94def grammargetgroups(): 95 db = mysql.connector.connect( 96 host="localhost", 97 user="willem", 98 password="Dinkel2006!", 99 database="shykeiichicom" 100 ) 101 102 cursor = db.cursor() 103 104 cursor.execute(f"SELECT * FROM grammar_groups") 105 106 grammar_groups = cursor.fetchall() 107 108 grammar_groups_list = [] 109 110 for x in grammar_groups: 111 grammar_groups_list.append({ 112 "id": x[0], 113 "name": x[1], 114 "creatorid": x[2], 115 "type": x[3] 116 }) 117 118 return grammar_groups_list 119 120@grammar.route('/api/v1/grammar/getgrammar', methods=["GET"]) 121def grammargetgrammar(): 122 requestGrammarGroup = request.args.get("group") 123 124 if(requestGrammarGroup == None): 125 return Response(json.dumps("No grammar group provided"), status=400, mimetype="application/json") 126 127 db = mysql.connector.connect( 128 host="localhost", 129 user="willem", 130 password="Dinkel2006!", 131 database="shykeiichicom" 132 ) 133 134 cursor = db.cursor() 135 136 cursor.execute(f"SELECT * FROM grammar_gambling_words WHERE word_group={requestGrammarGroup}") 137 138 grammar_groups = cursor.fetchall() 139 140 grammar_groups_list = [] 141 142 for x in grammar_groups: 143 grammar_groups_list.append({ 144 "id": x[0], 145 "word1": x[1], 146 "word2": x[2], 147 "correct_word": x[3], 148 "word_group": x[4] 149 }) 150 151 return grammar_groups_list