package edu.ncsu.dlf.servlet;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import edu.ncsu.dlf.utils.HttpUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String search = req.getParameter("search");
String accessToken = req.getParameter("access_token");
// Search for users...
List<String> users = new ArrayList<>();
try {
HttpClient client = HttpClients.createDefault();
URIBuilder builder = new URIBuilder("https://api.github.com/search/users");
builder.addParameter("q", search);
builder.addParameter("access_token", accessToken);
HttpGet request = new HttpGet(builder.build());
request.setHeader("accept", "application/json");
HttpResponse response = client.execute(request);
String body = HttpUtils.getResponseBody(response);
JSONObject json = new JSONObject(body);
JSONArray usersJ = json.getJSONArray("items");
for(int i=0; i<usersJ.length(); i++) {
JSONObject userJ = usersJ.getJSONObject(i);
users.add(userJ.getString("login"));
}
} catch(URISyntaxException | JSONException e) {}
JSONArray logins = new JSONArray();
for(String user : users) {
logins.put(user);
}
resp.setContentType("application/json");
resp.getWriter().write(logins.toString());
}
}