package com.rms.tfc.ws;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;

import com.rms.tfc.service.TiendaService;
import com.rms.tfc.types.ExpedicionPedido;
import com.rms.tfc.types.ExpedicionPedidoResponse;
import com.rms.tfc.types.ObjectFactory;
import com.rms.tfc.types.RecibeProducto;
import com.rms.tfc.types.RecibeProductoResponse;

@Endpoint
public class TiendaEndPoint {

	private static final String NAMESPACE_URI = "http://service.tfc.tienda";
	@Autowired
	TiendaService tiendaService;
	
	@PayloadRoot(namespace=NAMESPACE_URI, localPart="RecibeProducto")
	@ResponsePayload
	public RecibeProductoResponse invoke(@RequestPayload RecibeProducto recibeProducto){
		String result = tiendaService.creaActualizaProducto(recibeProducto);
		ObjectFactory objectFactory = new ObjectFactory();
		RecibeProductoResponse response = objectFactory.createRecibeProductoResponse();
		response.setStatus(result);
		return response;
	}
	
	@PayloadRoot(namespace=NAMESPACE_URI, localPart="ExpedicionPedido")
	@ResponsePayload
	public ExpedicionPedidoResponse invoke(@RequestPayload ExpedicionPedido expedicionPedido){
		String result = tiendaService.procesaExpedicion(expedicionPedido);
		ObjectFactory objectFactory = new ObjectFactory();
		ExpedicionPedidoResponse response = objectFactory.createExpedicionPedidoResponse();
		response.setStatus(result);
		return response;
	}

	public void setTiendaService(TiendaService tiendaService) {
		this.tiendaService = tiendaService;
	}
}