package com.yks.ets.api.client; import java.lang.reflect.Type; import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.emt.bus.common.BlockSeatPaxDetails; import com.emt.bus.common.BoardingPoint; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; import com.sun.jersey.api.client.filter.HTTPDigestAuthFilter; import com.yks.ets.api.common.APIBlockTicketRequest; import com.yks.ets.api.common.APIBlockTicketResponse; import com.yks.ets.api.common.APICancelRequest; public class EtsAPI { //private static String baseURL="http://49.156.159.26:9085/etsAPI/api/"; private static String baseURL="http://localhost:8080/etsAPI/api/"; private static final Logger log = LoggerFactory.getLogger(EtsAPI.class); public static Client client=null; public static Client getClient() { if(client==null) { ClientConfig clientConfig = new DefaultClientConfig(); clientConfig.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, true); client = Client.create(clientConfig); client.addFilter(new HTTPDigestAuthFilter("test", "test123")); } return client; } private void getStations() { try { String response1 = getClient().resource(baseURL).path("getStations").accept(MediaType.APPLICATION_JSON_TYPE).get(String.class); System.out.println(response1); } catch (Exception e) { e.printStackTrace(); } } private void getAvailableBuses() { try { WebResource webResource = getClient().resource(baseURL+"getAvailableBuses?sourceCity=Hyderabad&destinationCity=Bangalore&doj=2014-04-11"); String response = webResource.get(String.class); System.out.println("getAvailableBuses::"+response); } catch (Exception e) { e.printStackTrace(); } } private void getBusLayout() { try { WebResource webResource = getClient().resource(baseURL+"getBusLayout?sourceCity=Hyderabad&destinationCity=Bangalore&doj=2014-04-11&inventoryType=0&routeScheduleId=6320"); String response = webResource.get(String.class); System.out.println("getBusLayout ::"+response); } catch (Exception e) { e.printStackTrace(); } } private void blockTicket() { try { APIBlockTicketRequest apiBlockTicketRequest=new APIBlockTicketRequest(); List blockSeatPaxDetailsList=new ArrayList(); BlockSeatPaxDetails blockSeatPaxDetails=new BlockSeatPaxDetails(); BoardingPoint boardingPoint=new BoardingPoint(); apiBlockTicketRequest.setSourceCity("Hyderabad"); apiBlockTicketRequest.setDestinationCity("Bangalore"); apiBlockTicketRequest.setDoj("2014-04-11"); apiBlockTicketRequest.setCustomerName("test"); apiBlockTicketRequest.setCustomerLastName("test123"); apiBlockTicketRequest.setCustomerAddress("Hyderabad"); apiBlockTicketRequest.setCustomerPhone("1212121212"); apiBlockTicketRequest.setEmergencyPhNumber("2122122121"); apiBlockTicketRequest.setCustomerEmail("test@gmail.com"); apiBlockTicketRequest.setInventoryType(0); apiBlockTicketRequest.setRouteScheduleId("6310"); boardingPoint.setId("6"); boardingPoint.setLocation("Ameerpet,|Jeans Corner"); boardingPoint.setTime("09:00PM"); apiBlockTicketRequest.setBoardingPoint(boardingPoint); blockSeatPaxDetails.setAc(false); blockSeatPaxDetails.setAge("22"); blockSeatPaxDetails.setEmail("test@gmail.com"); blockSeatPaxDetails.setFare(new BigDecimal(800)); blockSeatPaxDetails.setIdNumber("1258UUJJ"); blockSeatPaxDetails.setIdType("PAN"); blockSeatPaxDetails.setLadiesSeat(false); blockSeatPaxDetails.setLastName("mollala"); blockSeatPaxDetails.setMobile("1212121212"); blockSeatPaxDetails.setName("test"); blockSeatPaxDetails.setNameOnId("reddy"); blockSeatPaxDetails.setPrimary(true); blockSeatPaxDetails.setSeatNbr("R2"); blockSeatPaxDetails.setSex("M"); blockSeatPaxDetails.setSleeper(false); blockSeatPaxDetails.setTitle("ok"); blockSeatPaxDetailsList.add(blockSeatPaxDetails); apiBlockTicketRequest.setBlockSeatPaxDetails(blockSeatPaxDetailsList); WebResource webResource = getClient().resource(baseURL+"blockTicket"); ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class,new Gson().toJson(apiBlockTicketRequest)); String output = response.getEntity(String.class); System.out.println("blockResponse :"+output); Type collectionType = new TypeToken() { }.getType(); APIBlockTicketResponse apiBlockTicketResponse =new Gson().fromJson(output,collectionType); System.out.println("block ticket key ::: "+apiBlockTicketResponse.getBlockTicketKey()); //seatBooking(apiBlockTicketResponse.getBlockTicketKey()); } catch (Exception e) { e.printStackTrace(); } } private void seatBooking(String blockTicketKey){ try { WebResource service = getClient().resource(baseURL+"seatBooking?blockTicketKey="+blockTicketKey); ClientResponse response = service.get(ClientResponse.class); String output = response.getEntity(String.class); System.out.println("output;;;;"+output); } catch (Exception e) { e.printStackTrace(); } } private void cancelTicketConfirmation(){ try { APICancelRequest apiCancelRequest = new APICancelRequest(); apiCancelRequest.setEtsTicketNo("ETS112B0PT72"); List seatNbrs = new ArrayList(); seatNbrs.add("L4"); seatNbrs.add("L5"); apiCancelRequest.setSeatNbrsToCancel(seatNbrs); WebResource webResource = getClient().resource(baseURL+"cancelTicketConfirmation"); ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class,new Gson().toJson(apiCancelRequest)); String output = response.getEntity(String.class); System.out.println("cancel Response :"+output); } catch (Exception e) { e.printStackTrace(); } } private void cancelTicket(){ try { APICancelRequest apiCancelRequest = new APICancelRequest(); apiCancelRequest.setEtsTicketNo("ETS112B0PT72"); List seatNbrs = new ArrayList(); seatNbrs.add("L4"); seatNbrs.add("L5"); apiCancelRequest.setSeatNbrsToCancel(seatNbrs); WebResource webResource = getClient().resource(baseURL+"cancelTicket"); ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class,new Gson().toJson(apiCancelRequest)); String output = response.getEntity(String.class); System.out.println("cancel Response :"+output); } catch (Exception e) { e.printStackTrace(); } } public void getMyPlanAndBalance(){ try { String response1 = getClient().resource(baseURL).path("getMyPlanAndBalance").accept(MediaType.APPLICATION_JSON_TYPE).get(String.class); System.out.println("MyPlanAndBalance response:"+response1); } catch (Exception e) { e.printStackTrace(); } } public void getTicketByETSTNumber(String ETSTNumber){ try { WebResource webResource = getClient().resource(baseURL+"getTicketByETSTNumber?ETSTNumber="+ETSTNumber); String response = webResource.get(String.class); System.out.println("getTicketByETSTNumber response::"+response); } catch (Exception e) { e.printStackTrace(); } } private void getOperatorCommissions() { try { String response1 = getClient().resource(baseURL).path("getOperatorCommissions").accept(MediaType.APPLICATION_JSON_TYPE).get(String.class); System.out.println(response1); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { EtsAPI etsApi = new EtsAPI(); etsApi.getStations(); etsApi.getAvailableBuses(); etsApi.getBusLayout(); etsApi.blockTicket(); //etsApi.seatBooking("ETS0S28333657"); //etsApi.cancelTicketConfirmation(); /*etsApi.cancelTicket();*/ //etsApi.getMyPlanAndBalance(); //etsApi.getTicketByETSTNumber("ETS876B0PT80"); //etsApi.getOperatorCommissions(); } }