Search in sources :

Example 1 with SingeLookupReplyJson

use of io.kamax.mxisd.controller.identity.v1.io.SingeLookupReplyJson in project mxisd by kamax-io.

the class MappingController method lookup.

@RequestMapping(value = "/lookup", method = GET)
String lookup(HttpServletRequest request, @RequestParam String medium, @RequestParam String address) {
    SingleLookupRequest lookupRequest = new SingleLookupRequest();
    setRequesterInfo(lookupRequest, request);
    lookupRequest.setType(medium);
    lookupRequest.setThreePid(address);
    log.info("Got single lookup request from {} with client {} - Is recursive? {}", lookupRequest.getRequester(), lookupRequest.getUserAgent(), lookupRequest.isRecursive());
    Optional<SingleLookupReply> lookupOpt = strategy.find(lookupRequest);
    if (!lookupOpt.isPresent()) {
        log.info("No mapping was found, return empty JSON object");
        return "{}";
    }
    SingleLookupReply lookup = lookupOpt.get();
    if (lookup.isSigned()) {
        log.info("Lookup is already signed, sending as-is");
        return lookup.getBody();
    } else {
        log.info("Lookup is not signed, signing");
        JsonObject obj = gson.toJsonTree(new SingeLookupReplyJson(lookup)).getAsJsonObject();
        obj.add("signatures", signMgr.signMessageGson(gson.toJson(obj)));
        return gson.toJson(obj);
    }
}
Also used : SingeLookupReplyJson(io.kamax.mxisd.controller.identity.v1.io.SingeLookupReplyJson) JsonObject(com.google.gson.JsonObject) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

JsonObject (com.google.gson.JsonObject)1 SingeLookupReplyJson (io.kamax.mxisd.controller.identity.v1.io.SingeLookupReplyJson)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1