def getAllCoursesByCampus(token, campusId): """ <span class="card-title">>This Call will return an array of all courses in a given campus</span> <br> <b>Route Parameters</b><br> - campusId: 1234567890 <br> <br> <b>Payload</b><br> - NONE <br> <br> <b>Response</b> <br> 200 - JSON Example:<br> <code> {<br> 'courseName': 'Advance Math',<br> 'campusId': 1234567890,<br> 'startDate': '2015-14-3'<br> 'endDate': '2015-29-6'<br> 'taskFlag': 'False'<br> 'id' : 1234567890<br> } </code> <br> """ if get_user_by_token(token) is None: return bad_request("Bad User Token") arr = [] query = Course.all() try: query.filter("campusId = ", int(campusId)) except Exception as e: return bad_request("Bad id format") for c in query.run(): arr.append(dict(json.loads(c.to_JSON()))) print arr if len(arr) != 0: return Response(response=json.dumps(arr), status=200, mimetype="application/json") else: return Response(response=[], status=200, mimetype="application/json")
def create_course(token): """ <span class="card-title">This call will create a new course in the DB</span> <br> <b>Route Parameters</b><br> - seToken: 'seToken' <br> <br> <b>Payload</b><br> - JSON Object, Example: <br> {<br> 'courseName': 'Advance Math',<br> 'campusId': 1234567890,<br> 'startDate': {'year': 2015, 'month' : 4, 'day' : 3},<br> 'endDate': {'year': 2016, 'month' : 5, 'day' : 14}<br> }<br> <br> <br> <b>Response</b> <br> 201 - Created <br> 400 - Bad Request <br> 403 - Invalid token or not a lecturer """ if not request.data: return bad_request("no data") if not is_lecturer(token): #todo: change to lecturer id return forbidden("Invalid token or not a lecturer!") user = get_user_by_token(token) #try to parse payload try: payload = json.loads(request.data) except Exception as e: return bad_request("incorrect JSON format") try: start_date = datetime.date(payload['startDate']['year'],payload['startDate']['month'],payload['startDate']['day']) end_date = datetime.date(payload['endDate']['year'],payload['endDate']['month'],payload['endDate']['day']) if end_date <= start_date: return bad_request("end date cant be before (or same day) start date") course = Course(courseName=payload['courseName'], campusId=payload['campusId'], master_id=user.key().id(), startDate=start_date, endDate=end_date) #check if name already exists try: query = Course.all() query.filter('campusId = ', payload['campusId']) query.filter("courseName = ", payload['courseName']) for c in query.run(limit=1): return forbidden("Course with same name already exists") except Exception as e: print e except Exception as e: print e return bad_request(2) #add user to course membersId list course.membersId.append(str(user.key().id())) db.put(course) #add course to user course list user.courses_id_list.append(str(course.key().id())) db.put(user) db.save return Response(response=course.to_JSON(), status=201, mimetype="application/json")