Beispiel #1
0
    def post(self):
        train_args = add_train_parser.parse_args()
        ordered = Train.query.order_by(Train.id.desc()).all()
        if ordered and Train.query.filter_by(name=train_args['name']).first():
            abort(
                400, 'Train %s already exists. Please choose a new name.' %
                train_args['name'])

        if 'id' not in train_args:
            if ordered:
                highest = ordered[0].id
            else:
                highest = 0
            train_id = highest + 1
        else:
            train_id = train_args['id']

        train = Train(id=train_id, name=train_args['name'])
        train.speed = 0.0
        train.length = trainLength
        train.width = trainWidth
        train.height = trainHeight
        train.mass = trainMass
        train.crewCount = 0
        train.passengerCount = 0

        db.session.add(train)
        db.session.commit()

        return train, 201