Example #1
0
  @GET
  @Path("suggestions")
  public Response getSuggestions(@Context SecurityContext sc, @Context UriInfo uriInfo) {

    try {

      String userId = getUserId(sc, uriInfo);
      if (userId == null) {
        return Response.status(HTTPStatus.INTERNAL_ERROR).cacheControl(cacheControl).build();
      }

      SpaceService spaceService =
          (SpaceService)
              ExoContainerContext.getCurrentContainer()
                  .getComponentInstanceOfType(SpaceService.class);
      List<Space> suggestedSpaces = spaceService.getPublicSpaces(userId);
      IdentityManager identityManager =
          (IdentityManager)
              ExoContainerContext.getCurrentContainer()
                  .getComponentInstanceOfType(IdentityManager.class);
      Identity identity =
          identityManager.getOrCreateIdentity(OrganizationIdentityProvider.NAME, userId);
      List<Identity> connections = identityManager.getConnections(identity);

      JSONArray jsonArray = new JSONArray();

      for (Space space : suggestedSpaces) {

        if (space.getVisibility().equals(Space.HIDDEN)) continue;
        if (space.getRegistration().equals(Space.CLOSE)) continue;
        List<Identity> identityListMember = new ArrayList<Identity>();
        String avatar = space.getAvatarUrl();
        if (avatar == null) {
          avatar = "/social-resources/skin/ShareImages/SpaceImages/SpaceLogoDefault_61x61.gif";
        }
        for (String mem : space.getMembers()) {
          Identity identityMem =
              identityManager.getOrCreateIdentity(OrganizationIdentityProvider.NAME, mem);
          identityListMember.add(identityMem);
        }
        int k = 0;
        for (Identity i : identityListMember) {
          for (Identity j : connections) {
            if (j.equals(i)) {
              k++;
            }
          }
        }
        String spaceType = "";
        if (space.getRegistration().equals(Space.OPEN)) {
          spaceType = "Public";
        } else {
          spaceType = "Private";
        }
        JSONObject json = new JSONObject();
        json.put("name", space.getName());
        json.put("spaceId", space.getId());
        json.put("displayName", space.getDisplayName());
        json.put("spaceUrl", space.getUrl());
        json.put("avatarUrl", avatar);
        json.put("registration", space.getRegistration());
        json.put("members", space.getMembers().length);
        json.put("privacy", spaceType);
        json.put("number", k);
        jsonArray.put(json);
      }

      return Response.ok(jsonArray.toString(), MediaType.APPLICATION_JSON)
          .cacheControl(cacheControl)
          .build();

    } catch (Exception e) {
      log.error("Error in space invitation rest service: " + e.getMessage(), e);
      return Response.ok("error").cacheControl(cacheControl).build();
    }
  }