def create_challenge(challenge_id=None): if not ModuleAPI.can_write('challenge'): abort(403) # Gather all arguments if request.args.get('parent_id'): parent_id = request.args.get('parent_id') else: return "Error, no 'parent_id' given" if request.args.get('name'): name = request.args.get('name') else: return "Error, no 'name' given" if request.args.get('description'): description = request.args.get('description') else: return "Error, no 'description' given" if request.args.get('type'): type = request.args.get('type') else: return "Error, no 'type' given" if request.args.get('start_date'): start_date = datetime.datetime.strptime(request.args.get('start_date'), '%Y-%m-%d').date() else: return "Error, no 'start_date' given" if request.args.get('end_date'): end_date = datetime.datetime.strptime(request.args.get('end_date'), '%Y-%m-%d').date() else: return "Error, no 'end_date' given" if request.args.get('answer'): answer = request.args.get('answer') else: return "Error, no 'answer' given" if request.args.get('weight'): weight = request.args.get('weight') else: return "Error, no 'weight' given" if request.args.get('hint'): hint = request.args.get('hint') else: return "Error, no 'hint' given" # Check if the name of the challenge is unique if ChallengeAPI.challenge_exists(name): return "Error, challenge with name '" + name + "' already exists" return ChallengeAPI.create_challenge(name, description, hint, start_date, end_date, parent_id, weight, type, answer)