def add_climbers(): error = False try: name = request.json['name'] state = request.json['state'] visited_spots = request.json['visited_spots'] climber_id = request.get_json().get('id', None) if (climber_id): climber = Climber(id=climber_id, name=name, state=state) else: climber = Climber(name=name, state=state) db.session.add(climber) db.session.flush() for spot_id in visited_spots: visitedspots = VisitedSpot(climbing_spot_id=spot_id, climber_id=climber.id) db.session.add(visitedspots) db.session.commit() climbers = get_climbers() except: db.session.rollback() error = True finally: db.session.close() if error: # flash('An error occurred. Climbing spot ' + request.json['name'] + ' could not be added.') abort(400) else: # flash('Climbing spot ' + request.json['name'] + ' was successfully added!') if request.path == '/api/climbers': return jsonify({'success': True, 'climbers': climbers}), 200 return render_template('climbers.html', climbers=climbers)