package org.cacert.gigi.api;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.email.EmailProvider;
import org.cacert.gigi.pages.account.FindAgentAccess;
import org.cacert.gigi.util.ServerConstants;
+import org.json.JSONWriter;
public class FindAgent extends APIPoint {
resp.setContentType("text/plain; charset=UTF-8");
resp.getWriter().print(us.getId());
} else if (pi.equals(PATH_INFO)) {
- resp.setContentType("text/plain; charset=UTF-8");
+ resp.setContentType("application/json; charset=UTF-8");
+ PrintWriter out = resp.getWriter();
String[] uids = req.getParameterValues("id");
+ JSONWriter jw = new JSONWriter(out);
+ jw.array();
for (String i : uids) {
User u1 = User.getById(Integer.parseInt(i));
if ( !u1.isInGroup(Group.LOCATE_AGENT)) {
continue;
}
// date, recheck(?), name
- resp.getWriter().println(i + "," + u1.canAssure() + "," + u1.getPreferredName().toAbbreviatedString());
+ jw.object();
+ jw.key("id");
+ jw.value(u1.getId());
+
+ jw.key("canAssure");
+ jw.value(u1.canAssure());
+
+ jw.key("name");
+ jw.value(u1.getPreferredName().toAbbreviatedString());
+ jw.endObject();
}
+ jw.endArray();
} else if (pi.equals(PATH_MAIL)) {
String id = req.getParameter("from");
String rid = req.getParameter("to");
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.security.GeneralSecurityException;
+import java.util.Arrays;
import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.dbObjects.Certificate;
import org.cacert.gigi.testUtils.IOUtils;
import org.cacert.gigi.testUtils.RestrictedApiTest;
import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.json.JSONTokener;
import org.junit.Test;
public class TestFindAgent extends RestrictedApiTest {
int u2 = createVerifiedUser("f", "l", createUniqueName() + "@email.com", TEST_PASSWORD);
String res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
- assertEquals(res, "");
+ res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
+ assertEquals(new JSONArray().toString(), new JSONArray(new JSONTokener(res)).toString());
grant(u, Group.LOCATE_AGENT);
grant(User.getById(u2), Group.LOCATE_AGENT);
res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
- assertEquals(id + ",true," + u.getPreferredName().toAbbreviatedString() + "\n" + u2 + ",false," + User.getById(u2).getPreferredName().toAbbreviatedString() + "\n", res);
+ JSONTokener jt = new JSONTokener(res);
+ JSONObject j1 = new JSONObject();
+ j1.put("id", id);
+ j1.put("canAssure", true);
+ j1.put("name", u.getPreferredName().toAbbreviatedString());
+ JSONObject j2 = new JSONObject();
+ j2.put("id", u2);
+ j2.put("canAssure", false);
+ j2.put("name", User.getById(u2).getPreferredName().toAbbreviatedString());
+ JSONArray ja = new JSONArray(Arrays.asList(j1, j2));
+ assertEquals(ja.toString(), new JSONArray(jt).toString());
}
}