You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
903 B
28 lines
903 B
from flask import request, jsonify, Blueprint
|
|
from app import db, LogService
|
|
from app.models import Train
|
|
from app.models.train_lib import buildTrain
|
|
from presenter.train import TrainPresenter
|
|
from utils import create_response, StateCode
|
|
|
|
trains_bp = Blueprint('trains', __name__)
|
|
|
|
|
|
@trains_bp.route('/trains', methods=['GET'])
|
|
def queryAllTrains():
|
|
trains = Train.query.all()
|
|
trains_presenters = [TrainPresenter(train).as_dict() for train in trains]
|
|
LogService.log()
|
|
return jsonify(create_response(StateCode.SUCCESS, data=trains_presenters)), 200
|
|
|
|
|
|
@trains_bp.route('/trains', methods=['POST'])
|
|
def createTrain():
|
|
data = request.json
|
|
new_train = buildTrain(data)
|
|
db.session.add(new_train)
|
|
db.session.commit()
|
|
train_presenter = TrainPresenter(new_train).as_dict()
|
|
LogService.log()
|
|
return jsonify(create_response(StateCode.SUCCESS, data=train_presenter)), 200
|