def numStudentOfSemester(): ''' PROCEDURE NumStudentOfSemester( @semesterId AS varchar(10), @departmentId AS varchar(10) ) ''' '''Define Schema''' schema = request_schema.numStudentOfSemester req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request(req_data, token, route_role, user_info, schema, required_data=True): return Response( response="Bad Request", status=400 ) '''Get request data''' params = list(req_data.values())[1:] did = execute_sp(engine, stored_procedure.getDId, user_info['sub'], True) if did['payload']: params += [did['payload'][0]['dId']] else: return Response( response="Invalid Token", status=400 ) '''Execute Stored Procedure''' res = execute_sp( engine, stored_procedure.numStudentOfSemester, params, True) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps(res['error']), status=500, mimetype='application/json' ) if not res['payload']: return Response( response=json.dumps({'res': []}), status=200, mimetype='application/json' ) else: return Response( response=json.dumps({'res': res['payload']}), status=200, mimetype='application/json' )
def addRegister(): '''PROCEDURE addRegister( @newStudentId AS varchar(10), @newClassId AS varchar(10), @newSemesterId AS varchar(10), @newSubjectId AS varchar(10) )''' '''Define Schema''' schema = request_schema.addRegister req_data = request.get_json() print(req_data) token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request( req_data, token, route_role, user_info, schema, required_data=True): return Response(response="Bad Request", status=400) '''Get request data''' newStudentId, newClassId, newSemesterId, newSubjectId = list( req_data.values())[1:] '''Execute Stored Procedure''' params = [newStudentId, newClassId, newSemesterId, newSubjectId] res = execute_sp(engine, stored_procedure.addRegister, params, False) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response(response=json.dumps(res['error']), status=500, mimetype='application/json') else: return Response(response=json.dumps('OK'), status=200, mimetype='application/json')
def numOfStudents_sub_dep(): '''PROCEDURE numOfStudents_sub_dep()''' '''Define Schema''' schema = request_schema.numOfStudents_sub_dep req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request( req_data, token, route_role, user_info, schema, required_data=False): return Response(response="Bad Request", status=400) '''Get request data''' '''Execute Stored Procedure''' params = [] res = execute_sp(engine, stored_procedure.numOfStudents_sub_dep, params) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response(response=json.dumps('INTERNAL SERVER ERROR'), status=500, mimetype='application/json') if not res['payload']: return Response(response=json.dumps({'res': []}), status=400, mimetype='application/json') else: return Response(response=json.dumps({'res': res['payload']}), status=200, mimetype='application/json')
def classOfSubject(): ''' PROCEDURE ClassOfSubject( @studentId AS VARCHAR(10), @semesterId AS VARCHAR(10) ) ''' '''Define Schema''' schema = request_schema.classOfSubject req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request(req_data, token, route_role, user_info, schema, required_data=True): return Response( response="Bad Request", status=400 ) '''Get request data''' studentId = user_info['sub'] # semesterId = req_data['semesterId'] '''Execute Stored Procedure''' # params = [studentId, semesterId] params = [studentId] res = execute_sp(engine, stored_procedure.classOfSubject, params) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps('INTERNAL SERVER ERROR'), status=500, mimetype='application/json' ) if not res['payload']: return Response( response=json.dumps({'res': []}), status=400, mimetype='application/json' ) else: return Response( response=json.dumps({'res': res['payload']}), status=200, mimetype='application/json' )
def login(): '''Define Schema''' schema = request_schema.login req_data = request.get_json() '''Validate Request''' if not validate_request_public(req_data, schema): return Response( response="Bad Request", status=400 ) '''Get Request Data''' username = req_data['username'] password = req_data['password'] role = req_data['role'] '''Execute Stored Procedure''' params = [username, role] res = execute_sp(engine, stored_procedure.login, params) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps('INTERNAL SERVER ERROR'), status=500, mimetype='application/json' ) if not res['payload']: # User does not exist return Response( response=json.dumps('User does not exist'), status=400, mimetype='application/json' ) else: user = res['payload'][0] if check_password(user['password'], password): token = encode_auth_token(username, role).decode("utf-8") return Response( response=json.dumps({'token': token}), status=200, mimetype='application/json' ) else: return Response( response=json.dumps('Wrong password'), status=400, mimetype='application/json' )
def sumCredit(): ''' PROCEDURE SumCredit( @studentId AS VARCHAR(10), @semesterId AS VARCHAR(10) ) ''' '''Define Schema''' schema = request_schema.sumCredit req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request(req_data, token, route_role, user_info, schema, required_data=True): return Response( response="Bad Request", status=400 ) '''Get request data''' params = [user_info['sub']] + list(req_data.values())[1:] '''Execute Stored Procedure''' res = execute_sp(engine, stored_procedure.sumCredit, params, getResult=True) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps('INTERNAL SERVER ERROR'), # (res['error']) status=500, mimetype='application/json' ) elif not res['payload']: return Response( response=json.dumps({'res': []}), status=200, mimetype='application/json' ) else: return Response( response=json.dumps({'res': res['payload']}), status=200, mimetype='application/json' )
def classOfTeacher(): ''' PROCEDURE ClassOfTeacher( @teacherSsn AS VARCHAR(10), @semesterId AS varchar(10) ) ''' '''Define Schema''' schema = request_schema.classOfTeacher req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request(req_data, token, route_role, user_info, schema, required_data=True): return Response( response="Bad Request", status=400 ) '''Get request data''' params = list(req_data.values())[1:] '''Execute Stored Procedure''' res = execute_sp(engine, stored_procedure.classOfTeacher, params, True) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps(res['error']), status=500, mimetype='application/json' ) if not res['payload']: return Response( response=json.dumps({'res': []}), status=200, mimetype='application/json' ) else: return Response( response=json.dumps({'res': res['payload']}), status=200, mimetype='application/json' )
def removeTeacherOfClass(): ''' PROCEDURE removeTeacherOfClass( @teacherSsn AS varchar(10), @classId AS VARCHAR(10), @subjectId AS VARCHAR(10), @semesterId AS VARCHAR(10), @weekId AS VARCHAR(10) ) ''' '''Define Schema''' schema = request_schema.removeTeacherOfClass req_data = request.get_json() # print(req_data) token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request(req_data, token, route_role, user_info, schema, required_data=True): return Response( response="Bad Request", status=400 ) '''Get request data''' params = list(req_data.values())[1:] # print(params) '''Execute Stored Procedure''' res = execute_sp( engine, stored_procedure.removeTeacherOfClass, params, False) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps(res['error']), status=500, mimetype='application/json' ) else: return Response( response=json.dumps('OK'), status=200, mimetype='application/json' )
def updateReferenceBook(): ''' PROCEDURE updateReferenceBook( @teacherSsn AS varchar(10), @subjectId AS varchar(10), @semesterId AS varchar(10), @classId AS varchar(10) @oldBookId AS varchar(10), @newBookId AS varchar(10) ) ''' '''Define Schema''' schema = request_schema.updateReferenceBook req_data = request.get_json() token = req_data['token'] route_role = request.url_rule.rule.split('/')[1] user_info = decode_auth_token(token) if not validate_request( req_data, token, route_role, user_info, schema, required_data=True): return Response(response="Bad Request", status=400) '''Get request data''' params = [user_info['sub']] + list(req_data.values())[1:] '''Execute Stored Procedure''' res = execute_sp(engine, stored_procedure.updateReferenceBook, params, getResult=False) '''IF SP FAILED''' if res['status'] == 'ERROR': return Response( response=json.dumps('INTERNAL SERVER ERROR'), # (res['error']) status=500, mimetype='application/json') else: return Response(response=json.dumps('OK'), status=200, mimetype='application/json')
def register(): '''Define request schema''' schema = request_schema.register req_data = request.get_json() '''Validate Request''' if not validate_request_public(req_data, schema): return Response( response="Bad Request", status=400 ) '''Get Request Data''' username = req_data['username'] password = hash_password(req_data['password']) role = req_data['role'] '''Execute Stored Procedure''' params = [username, password, role] res = execute_sp(engine, stored_procedure.register, params, getResult=False) '''IF SP FAILED''' if res['status'] == 'ERROR': print(res) return Response( response=json.dumps(res['error']),#'Registration Failed'), status=500, mimetype='application/json' ) return Response( response=json.dumps('Your account is ready'), status=200, mimetype='application/json' )