Files
2023-05-18 18:21:00 -04:00

54 lines
2.0 KiB
Python

from flask import Blueprint, request
from app.extensions import db
from app.models.vehicle import Vehicle, VehicleSchema
vehicle_routes = Blueprint('vehicle_routes', __name__)
@vehicle_routes.route('/vehicles')
def list_vehicles():
vehicles_schema = VehicleSchema(many=True)
vehicles = Vehicle.query.all()
return vehicles_schema.dumps(vehicles)
@vehicle_routes.route('/vehicles/<id>')
def get_vehicle(id):
vehicles_schema = VehicleSchema(many=False)
vehicle = Vehicle.query.get_or_404(id)
return vehicles_schema.dumps(vehicle)
@vehicle_routes.route('/vehicles', methods=['POST'])
def create_vehicle():
new_vehicle = Vehicle(**{
"license_plate": request.form.get('license_plate'),
"battery_level": request.form.get('battery_level', 100),
"in_use": bool(request.form.get('in_use', True)),
"model": request.form.get('model'),
"location_lat": request.form.get('location_lat'),
"location_long": request.form.get('location_long'),
})
db.session.add(new_vehicle)
db.session.commit()
vehicles_schema = VehicleSchema(many=False)
return vehicles_schema.dumps(new_vehicle)
@vehicle_routes.route('/vehicles/<id>', methods=['POST'])
def update_vehicle(id):
vehicles_schema = VehicleSchema(many=False)
vehicle = Vehicle.query.get_or_404(id)
vehicle.license_plate = request.form.get('license_plate', vehicle.license_plate)
vehicle.battery_level = request.form.get('battery_level', vehicle.battery_level)
vehicle.in_use = request.form.get('in_use', vehicle.in_use)
vehicle.model = request.form.get('model', vehicle.model)
vehicle.location_lat = request.form.get('location_lat', vehicle.location_lat)
vehicle.location_long = request.form.get('location_long', vehicle.location_long)
db.session.commit()
return vehicles_schema.dumps(vehicle)
@vehicle_routes.route('/vehicles/<id>', methods=['DELETE'])
def delete_vehicle(id):
vehicle = Vehicle.query.get_or_404(id)
db.session.delete(vehicle)
db.session.commit()
return id