Commit 2dd1b71d authored by Noel Alonso's avatar Noel Alonso
Browse files

Permite recibir solo id de vessel en tracking

De esta manera permite que se pueda realizar una inserción vía post
enviando solo el id de la relación
parent 822a76d4
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -6,14 +6,14 @@ import org.joda.time.DateTime;

import es.redmic.commandslib.commands.Command;
import es.redmic.exception.databinding.FieldNotValidException;
import es.redmic.vesselscommands.commands.vessel.CreateVesselCommand;
import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO;
import es.redmic.vesselslib.dto.vessel.VesselDTO;
import es.redmic.vesselslib.utils.VesselTrackingUtil;
import es.redmic.vesselslib.utils.VesselTypeUtil;
import es.redmic.vesselslib.utils.VesselUtil;

public class CreateVesselTrackingCommand extends Command {

	private final String PREFIX = "vesseltracking-mmsi-tstamp-";

	private VesselTrackingDTO vesselTracking;

	public CreateVesselTrackingCommand() {
@@ -23,21 +23,23 @@ public class CreateVesselTrackingCommand extends Command {

		VesselDTO vessel = vesselTracking.getProperties().getVessel();

		if (vessel == null || (vessel.getMmsi() == null && vessel.getId() == null))
			throw new FieldNotValidException("mmsi", "null");

		// Se añade id generado a vessel para poder buscarlo
		if (vessel != null && vessel.getId() == null) {
			vesselTracking.getProperties().getVessel().setId(new CreateVesselCommand(vessel).getVessel().getId());
			vesselTracking.getProperties().getVessel().setId(VesselUtil.generateId(vessel.getMmsi()));
			vesselTracking.getProperties().getVessel().getType()
					.setId(VesselTypeUtil.generateId(vessel.getType().getCode()));
		}

		if (vessel.getMmsi() == null)
			throw new FieldNotValidException("mmsi", "null");

		if (vesselTracking.getProperties().getDate() == null)
			throw new FieldNotValidException("date", "null");

		if (vesselTracking.getId() == null) {
			// Se crea un id único para vesselTracking
			vesselTracking.setId(PREFIX + vesselTracking.getProperties().getVessel().getMmsi() + "-"
					+ vesselTracking.getProperties().getDate().getMillis());
			vesselTracking.setId(VesselTrackingUtil.generateId(vesselTracking.getProperties().getVessel().getMmsi(),
					vesselTracking.getProperties().getDate().getMillis()));
		}

		if (vesselTracking.getUuid() == null) {