def resetPassword(): status = 200 dynamoDBInstance = getDatabaseClient() res = user_ctrl.resetUserPassword(request.json, dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res,status)
def public_class_list(): status = 200 dynamoDBInstance = getDatabaseClient() res = class_ctrl.getPublicClassList(dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res, status)
def getClass(classCode): status = 200 dynamoDBInstance = getDatabaseClient() res = class_ctrl.getClass(classCode, dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res, status)
def activate(activationid): logger.info(str(request)) dynamoDBInstance = getDatabaseClient() res = user_ctrl.activate(activationid, dynamoDBInstance) status = 200 if res.hasErrors(): status = 400 flaskResponse = ResponseCreation.createResponse(res, status) logger.info(str(flaskResponse)) return flaskResponse
def createBook(): status = 200 res = ResponseCreation.ControllerResponse() if g.authenticatedUser['userRole'] != "admin": res.addError('Role Error', 'Only admins can create books') status = 403 else: dynamoDBInstance = getDatabaseClient() res = book_ctrl.createBook(request.json, dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res,status)
def register(): logger.info(str(request)) status = 200 dynamoDBInstance = getDatabaseClient() httpOrigin = request.environ.get('HTTP_ORIGIN') jsonData = request.json res = user_ctrl.register(httpOrigin, jsonData, mail, dynamoDBInstance) status = 201 if res.hasErrors(): status = 400 flaskResponse = ResponseCreation.createResponse(res, status) logger.info(str(flaskResponse)) return flaskResponse
def updateClassDetails(): status = 200 res = ResponseCreation.ControllerResponse() role = g.authenticatedUser['userRole'] if role != 'admin' and role != 'teacher': res.addError('Role Error', 'Only teachers or admins can update class details') status = 403 else: dynamoDBInstance = getDatabaseClient() res = class_ctrl.updateClassDetails(request.json, dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res,status)
def getBookList(): status = 200 res = ResponseCreation.ControllerResponse() role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res.addError('Role error', 'Only those with teacher privileges can get all books.') status = 403 else: dynamoDBInstance = getDatabaseClient() res = book_ctrl.getBookList(dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res,status)
def taughtClassList(): status = 200 res = ResponseCreation.ControllerResponse() role = g.authenticatedUser['userRole'] if role != 'teacher' and role != 'admin' : res.addError('Role error', 'Only teachers can view a list of classes they are teaching') status = 403 else: dynamoDBInstance = getDatabaseClient() res = class_ctrl.getTaughtClassList(dynamoDBInstance) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res, status)
def create_class(): status = 200 role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res = ResponseCreation.ControllerResponse() res.addError('Role error', 'Only teachers can create classes') status = 403 else: dynamoDBInstance = getDatabaseClient() res = class_ctrl.createClass(dynamoDBInstance, request.json) if res.hasErrors(): status = 400 return ResponseCreation.createResponse(res, status)
def getBook(bookId): status = 200 res = ResponseCreation.ControllerResponse() role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res.addError('Role error', 'Only those with teacher privileges can get a book.') status = 403 else: dynamoDBInstance = getDatabaseClient() book = book_ctrl.getBook(bookId, dynamoDBInstance) if not book: res.addError('Data error', 'Unable to retrive book.') status = 400 else: res.addToPayload('book', book) return ResponseCreation.createResponse(res,status)
def removeStudentFromClass(): status = 200 role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res = ResponseCreation.ControllerResponse() res.addError('Role error', 'Only those with teacher privileges can remove students from classes') status = 403 else: dynamoDBInstance = getDatabaseClient() res = class_ctrl.removeStudent(dynamoDBInstance, request.json) if res.hasErrors(): status = 400 else: #send email class_ctrl.sendClassRemovalEmail(dynamoDBInstance, mail, request.json) return ResponseCreation.createResponse(res, status)
def getSampleProblems(bookId, chapterTitle, sectionTitle): status = 200 res = ResponseCreation.ControllerResponse() role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res.addError('Role error', 'Only those with teacher privileges can get sample problems from a book.') status = 403 else: dynamoDBInstance = getDatabaseClient() problemCount = 4 sampleProblems = set() #prevent duplicates for _ in range(problemCount): template = problem_ctrl.getProblemFromBook( bookId, chapterTitle, sectionTitle, g.authenticatedUser['email'], dynamoDBInstance)[1] sampleProblems.add(algebra.getProblem(template)) sampleProblems = list(sampleProblems) if 'Bad Problem' in sampleProblems: status = 400 else: res.addToPayload('problems', sampleProblems) return ResponseCreation.createResponse(res, status)
def signin(): logger.info(str(request)) status = 200 email = request.authorization.username password = request.authorization.password dynamoDBInstance = getDatabaseClient() userRole = user_ctrl.getRole(email, dynamoDBInstance) if not userRole: userRole = 'student' userCredentials = { 'email': email, 'userRole': userRole, 'password': password } response = ResponseCreation.ControllerResponse() token = MentiiAuth.generateAuthToken(userCredentials, appSecret) response.addToPayload('token', token) flaskResponse = ResponseCreation.createResponse(response, status) logger.info(str(flaskResponse)) return flaskResponse
else: res.addToPayload('problemIndex', index) elif request.method == 'POST': #Post the students results dynamoDBInstance = getDatabaseClient() try: status = 200 problemIndex = int(request.json.get('problemIndex', '')) didSucceed = request.json.get('didSucceed', 'True') == 'True' res = problem_ctrl.updateUserTemplateHistory(classId, activity, userId, problemIndex, didSucceed, dynamoDBInstance) if res.hasErrors(): status = 462 except ValueError, TypeError: pass return ResponseCreation.createResponse(res,status) @app.route('/classes/remove', methods=['POST', 'OPTIONS']) @auth.login_required @handleOptionsRequest def removeStudentFromClass(): status = 200 role = g.authenticatedUser['userRole'] if role != "teacher" and role != "admin" : res = ResponseCreation.ControllerResponse() res.addError('Role error', 'Only those with teacher privileges can remove students from classes') status = 403 else: dynamoDBInstance = getDatabaseClient() res = class_ctrl.removeStudent(dynamoDBInstance, request.json)