Initial checkin
This commit is contained in:
54
app/routes/vehicle.py
Normal file
54
app/routes/vehicle.py
Normal file
@@ -0,0 +1,54 @@
|
||||
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
|
||||
Reference in New Issue
Block a user