bensin_site/app/api/views.py

122 lines
2.5 KiB
Python

from . import api
from ..models import Gas, Car
from flask import jsonify, request, abort
from .. import db
@api.route('/dummy')
def dummy():
return 'dummy, World!'
@api.route('/cars', methods=['GET', 'POST'])
def list_cars():
cars = Car.query.all()
return jsonify(result=[c.get_public() for c in cars])
@api.route('/car/add', methods=['POST'])
def add_car():
if not request.json:
abort(400)
if not 'name' in request.json:
abort(400)
car = request.json['name']
car_added = Car(name=car)
db.session.add(car_added)
db.session.commit()
return jsonify(result="OK")
@api.route('/car/edit/<int:id>', methods=['POST'])
def edit_car(id):
if not request.json:
abort(400)
car = Car.query.get_or_404(id)
car.name = request.json['name']
db.session.commit()
return jsonify(result="OK")
@api.route('/gas/del/<int:id>', methods=['POST'])
def del_car(id):
if not request.json:
abort(400)
gas = Gas.query.get_or_404(id)
db.session.delete(gas)
db.session.commit()
return jsonify(result="OK")
@api.route('/gas', methods=['GET', 'POST'])
def list_gas():
gas = Gas.query.all()
return jsonify(result=[g.get_public() for g in gas])
@api.route('/gas/add', methods=['POST'])
def add_gas():
if not request.json:
abort(400)
if not 'price' in request.json:
abort(400)
if not 'volume' in request.json:
abort(400)
if not 'milage' in request.json:
abort(400)
if not 'car' in request.json:
abort(400)
price = request.json['price']
volume = request.json['volume']
milage = request.json['milage']
car = request.json['car']
car_id = Car.query.get_or_404(car)
gas = Gas(price=price, volume=volume, milage=milage, car_id=car_id.id)
db.session.add(gas)
db.session.commit()
return jsonify(result="OK")
@api.route('/gas/edit/<int:id>', methods=['POST'])
def edit_gas(id):
if not request.json:
abort(400)
gas = Gas.query.get_or_404(id)
gas.price = request.json['price']
gas.volume = request.json['volume']
gas.milage = request.json['milage']
car_id = Car.query.get_or_404(request.json['car'])
gas.car_id = car_id.id
db.session.commit()
return jsonify(result="OK")
@api.route('/gas/del/<int:id>', methods=['POST'])
def del_gas(id):
if not request.json:
abort(400)
gas = Gas.query.get_or_404(id)
db.session.delete(gas)
db.session.commit()
return jsonify(result="OK")