package org.ebayopensource.turmeric.services.advertisinguniqueidservicev2.impl;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import com.ebay.marketplace.advertising.v1.services.GetMessagesForTheDayRequest;
import com.ebay.marketplace.advertising.v1.services.GetMessagesForTheDayResponse;
import com.ebay.marketplace.advertising.v1.services.GetNestedGenericClientInfoRequest;
import com.ebay.marketplace.advertising.v1.services.GetNestedGenericClientInfoResponse;
import com.ebay.marketplace.advertising.v1.services.GetNestedServiceRequestIDResponse;
import com.ebay.marketplace.advertising.v1.services.GetNestedTransportHeaders;
import com.ebay.marketplace.advertising.v1.services.GetNestedTransportHeadersResponse;
import com.ebay.marketplace.advertising.v1.services.GetVersionResponse;
import com.ebay.marketplace.advertising.v1.services.Messsage;
import com.ebay.marketplace.advertising.v1.services.TestSchemaValidationWithoutUPA;
import com.ebay.marketplace.advertising.v1.services.TestSchemaValidationWithoutUPAResponse;
import com.ebay.marketplace.catalog.v1.services.GetGenericClientInfoRequest;
import com.ebay.marketplace.catalog.v1.services.GetGenericClientInfoResponse;
import com.ebay.marketplace.services.AckValue;
import com.ebay.marketplace.services.advertisinguniqueidservicev2.AdvertisingUniqueIDServiceV2;
import com.ebay.soaframework.common.exceptions.ServiceException;
import com.ebay.soaframework.common.pipeline.Message;
import com.ebay.soaframework.common.pipeline.MessageContextAccessor;
import com.ebay.soaframework.sif.impl.internal.config.ClientConfigManager;
import com.ebay.soaframework.sif.service.Service;
import com.ebay.soaframework.sif.service.ServiceFactory;
public class AdvertisingUniqueIDServiceV2Impl
implements AdvertisingUniqueIDServiceV2
{
public GetVersionResponse getVersion() {
GetVersionResponse res = new GetVersionResponse();
res.setVersion("2.0.0");
return res;
}
@Override
public GetNestedServiceRequestIDResponse getNestedServiceRequestID() {
Message request = MessageContextAccessor.getContext().getRequestMessage();
GetNestedServiceRequestIDResponse res = new GetNestedServiceRequestIDResponse();
Map<String, String> requestHeaders = null;
try {
requestHeaders = request.getTransportHeaders();
} catch (ServiceException e) {
}
String requestId = requestHeaders.get("X-EBAY-SOA-REQUEST-ID");
res.setNestedSrvcRequestID(requestId);
return res;
}
@Override
public GetNestedTransportHeadersResponse getNestedTransportHeaders(
GetNestedTransportHeaders getNestedTransportHeaders) {
GetNestedTransportHeadersResponse response = new GetNestedTransportHeadersResponse();
try {
Message requestMsg = MessageContextAccessor.getContext().getRequestMessage();
Message responseMsg = MessageContextAccessor.getContext().getResponseMessage();
List <String> requestHeaders = getNestedTransportHeaders.getIn();
if (requestHeaders == null) return response;
for (String i:requestHeaders){
responseMsg.setTransportHeader(i, requestMsg.getTransportHeaders().get(i));
response.getOut().add(i + " " + requestMsg.getTransportHeaders().get(i));
}
return response;
} catch (ServiceException e) {
}
return response;
}
@Override
public GetNestedGenericClientInfoResponse getNestedGenericClientInfo(
GetNestedGenericClientInfoRequest getNestedGenericClientInfoRequest) {
GetNestedGenericClientInfoResponse resp = new GetNestedGenericClientInfoResponse();
GetGenericClientInfoResponse resp2 = null;
if(getNestedGenericClientInfoRequest.getId().equals("100")){
Service service = null;
try {
ClientConfigManager.getInstance().setConfigTestCase("ClientMetricsTest");
service = ServiceFactory
.createFromBase(
"CatalogSOAGenericClientTestServiceV1",
"CatalogSOAGenericClientTestServiceV1Consumer",
"feature",
"AdvertisingUniqueIDServiceV1",
new URL("http://localhost:8080/services/advertise/UniqueIDService/v1"),
false);
//service.setServiceLocation(new URL("http://localhost:8080/ws/spf"));
GetGenericClientInfoRequest req = new GetGenericClientInfoRequest();
req.setId("1");
resp2 = (GetGenericClientInfoResponse) service.createDispatch("getGenericClientInfo").invoke(req);
System.out.println(resp2.getId());
resp.setId(resp2.getId());
ClientConfigManager.getInstance().setConfigTestCase("config");
} catch (MalformedURLException e) {
} catch (ServiceException e) {
}
}
return resp;
}
@Override
public GetMessagesForTheDayResponse testSchemaValidationWithUPA(
GetMessagesForTheDayRequest testSchemaValidationWithUPA) {
GetMessagesForTheDayResponse resp = new GetMessagesForTheDayResponse();
List<Messsage> msgs = resp.getMessageList();
String clientid = "", siteid = "", lang = "";
Messsage msg = new Messsage();
if (testSchemaValidationWithUPA.getSiteId() != null) {
siteid = "siteid - " + testSchemaValidationWithUPA.getSiteId();
}
if (testSchemaValidationWithUPA.getClientId() != null) {
clientid = "clientid - " + testSchemaValidationWithUPA.getClientId();
}
if (testSchemaValidationWithUPA.getLanguage() != null) {
lang = "lang - " + testSchemaValidationWithUPA.getLanguage();
}
msg.setMessage("Call reached IMPL as schemaValidation went thru fine." + siteid + clientid + lang);
msgs.add(msg);
resp.setAck(AckValue.SUCCESS);
return resp;
}
@Override
public TestSchemaValidationWithoutUPAResponse testSchemaValidationWithoutUPA(
TestSchemaValidationWithoutUPA testSchemaValidationWithoutUPA) {
TestSchemaValidationWithoutUPAResponse response = new TestSchemaValidationWithoutUPAResponse();
System.out.println(testSchemaValidationWithoutUPA.getIn());
response.setOut(testSchemaValidationWithoutUPA.getIn()+
"Testing enhanced REST Feature relative mapping");
return response;
}
}