package com.rjconsultores.ventaboletos.rest;

import javax.annotation.security.RolesAllowed;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.rjconsultores.ventaboletos.rest.bean.ParamsSincronizarDispositivo;
import com.rjconsultores.ventaboletos.rest.service.SincronizarService;
import com.rjconsultores.ventaboletos.rest.service.exception.ServiceEmbarcadaException;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;

@Path("/sincronizarDispositivo")
public class SincronizarDispositivo {
	
	@POST
	@Consumes({ MediaType.APPLICATION_JSON })
	@RolesAllowed("EMBARCADA")
	@Produces({ MediaType.APPLICATION_JSON })
	public Response buscarDispositivo(ParamsSincronizarDispositivo params) throws Exception {
		SincronizarService service = (SincronizarService) AppContext.getApplicationContext().getBean("sincronizarService");

		try {
			return Response.ok(service.getDispositivoEmbarcada(params), MediaType.APPLICATION_JSON).build();
		} catch (ServiceEmbarcadaException e) {
			return Response.status(Response.Status.NOT_FOUND).entity(e.getMessage()).build();
		}
	}
}
