package sde_novacoderse;
import java.util.List;
import com.ebay.services.client.ClientConfig;
import com.ebay.services.client.FindingServiceClientFactory;
import com.ebay.services.finding.FindItemsByKeywordsRequest;
import com.ebay.services.finding.FindItemsByKeywordsResponse;
import com.ebay.services.finding.FindingServicePortType;
import com.ebay.services.finding.PaginationInput;
import com.ebay.services.finding.SearchItem;
import java.util.ArrayList;
import java.sql.*;
import com.ebay.services.finding.ItemFilter;
import com.ebay.services.finding.ItemFilterType;
import com.ebay.services.finding.SortOrderType;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.h2.tools.Server;
public class EbayAppNovaCoders {
private final String APPID = "NovaCode-5235-43b0-8024-bb03fec1b6b5";
private FindItemsByKeywordsResponse result;
private String inputStr;
private int inputNum;
private List<SearchItem> item2;
ArrayList<String> arr = new ArrayList<>();
public FindingServicePortType createEbayConnection(String appID) {
try {
ClientConfig config = new ClientConfig();
config.setApplicationId(appID);
return FindingServiceClientFactory.getServiceClient(config);
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
return null;
}
public boolean isAuthenticatedUser(String uName, String pWord) {
//TODO: need to implement
return true;
}
public List<SearchItem> searchEbay(String inputStr, String inputNum) {
int inputNum1 = Integer.parseInt(inputNum);
result = getEbaySearchResults(inputStr, inputNum1, APPID);
System.out.println("FOUND " + result.getSearchResult().getCount() + " items.\n");
List<SearchItem> items = result.getSearchResult().getItem();
return items;
}
public void saveSearch(String inputStr) throws ClassNotFoundException, SQLException{
Connection conn = getConnection();
Statement select = conn.createStatement();
select.executeUpdate("INSERT INTO PREV_SEARCHES VALUES('" + inputStr + "')");
}
public ArrayList<String> previousFavoriteSearches() throws ClassNotFoundException, SQLException, IOException {
Connection conn = getConnection();
Statement select = conn.createStatement();
ResultSet resultSet = select.executeQuery("SELECT * FROM PREV_SEARCHES");
for (int j = 1; resultSet.next(); j++) {
String val = resultSet.getString("SEARCH_TERM");
arr.add(val);
}
return arr;
}
public List<SearchItem> searchSavedsearch (int inputNum) {
inputStr = arr.get(inputNum - 1);
result = getEbaySearchResults(inputStr, 5, APPID);
System.out.println("FOUND " + result.getSearchResult().getCount() + " items.\n");
List<SearchItem> items = result.getSearchResult().getItem();
return items;
}
public FindItemsByKeywordsResponse getEbaySearchResults(String searchTerm, int numItemsReturned, String appID) {
FindItemsByKeywordsResponse result = null;
try {
FindingServicePortType serviceClient = this.createEbayConnection(appID);
//create request object
FindItemsByKeywordsRequest request = new FindItemsByKeywordsRequest();
//set request parameters
request.setKeywords(searchTerm);
ItemFilter i = new ItemFilter();
i.setName(ItemFilterType.FREE_SHIPPING_ONLY);
i.getValue().add("true");
ItemFilter j = new ItemFilter();
j.setName(ItemFilterType.LISTED_IN);
j.getValue().add("EBAY-US");
ItemFilter k = new ItemFilter();
k.setName(ItemFilterType.LOCATED_IN);
k.getValue().add("US");
request.getItemFilter().add(i);
request.getItemFilter().add(j);
request.getItemFilter().add(k);
PaginationInput pi = new PaginationInput();
pi.setEntriesPerPage(numItemsReturned);
request.setPaginationInput(pi);
request.setBuyerPostalCode("19087");
request.setSortOrder(SortOrderType.BEST_MATCH);
//call service
result = serviceClient.findItemsByKeywords(request);
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
return result;
}
private Connection getConnection(){
Connection conn = null;
try {
Class.forName("org.h2.Driver");
Server server = Server.createTcpServer().start();
conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/C:/data/test", "sa", "");Statement select = conn.createStatement();
} catch (Exception ex) {
Logger.getLogger(EbayAppNovaCoders.class.getName()).log(Level.SEVERE, null, ex);
}
return conn;
}
}