/** * Finaliza el ultimo Trayecto que se ha iniciado * * @param idVehiculo * @param idTrayecto * @param tipoVehiculo * @return ok con el Json del Trayecto que se finalizo, * @return badReques si no se está intentando finalizar el ultimo trayecto iniciado * @return notFound si no se encuentra alguno de los datos necesarios */ @BodyParser.Of(BodyParser.Json.class) public Result finalizarUltimoTrayecto(Long idVehiculo, Long idTrayecto, int tipoVehiculo) { Vehiculo vehiculoEncontrado = tipoVehiculo == Vehiculo.TRANVIA ? (Vehiculo) TranviaVehiculo.finder.byId(idVehiculo) : (Vehiculo) MoviBusVehiculo.finder.byId(idVehiculo); // Trayecto trayecoEncontrado = vehiculoEncontrado.getUltimoTrayecto(); Trayecto trayecoEncontrado = (Trayecto) Trayecto.finder.byId(idTrayecto); Trayecto ultimoTrayectoVeh = vehiculoEncontrado != null ? vehiculoEncontrado.getUltimoTrayecto() : null; if (trayecoEncontrado != null && vehiculoEncontrado != null) { if (ultimoTrayectoVeh != null && ultimoTrayectoVeh.getIdTrayecto() == idTrayecto) { JsonNode json = Controller.request().body().asJson(); Trayecto trayectoRecibido = Trayecto.bind(json); if (trayectoRecibido != null) { TrayectoController.finalizarTrayecto( trayecoEncontrado.getIdTrayecto(), trayectoRecibido.getHoraFin(), trayectoRecibido.getIncidentes()); } vehiculoEncontrado.setEstado(Vehiculo.DISPONIBLE); vehiculoEncontrado.save(); trayecoEncontrado = (Trayecto) Trayecto.finder.byId(idTrayecto); // trayectoRecibido.delete(); return ok(Json.toJson(trayecoEncontrado)); } else { return badRequest(); } } return notFound(); }
public Result readTrayectos(Long idVehiculo, int tipoVehiculo) { Vehiculo vehiculoEncontrado = tipoVehiculo == Vehiculo.TRANVIA ? (Vehiculo) TranviaVehiculo.finder.byId(idVehiculo) : (Vehiculo) MoviBusVehiculo.finder.byId(idVehiculo); if (vehiculoEncontrado != null) { return ok(Json.toJson(TrayectoController.getTrayectosVehiculo(idVehiculo))); } else { return notFound(); } }