Package org.eurekaj.manager.server.handlers

Source Code of org.eurekaj.manager.server.handlers.AccessTokenHandler

package org.eurekaj.manager.server.handlers;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.eurekaj.api.datatypes.AccessToken;
import org.eurekaj.api.datatypes.Account;
import org.eurekaj.api.datatypes.User;
import org.eurekaj.api.datatypes.basic.BasicAccessToken;
import org.eurekaj.api.datatypes.basic.BasicAccount;
import org.eurekaj.manager.json.BuildJsonObjectsUtil;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent;
import org.json.JSONException;
import org.json.JSONObject;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

public class AccessTokenHandler extends EurekaJGenericChannelHandler {
  private Logger logger = Logger.getLogger(AccessTokenHandler.class.getName());
 
  @Override
  public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    String jsonResponse = "";
        String uri = getUri(e);
        String cookieUuidToken = getCookieValue(e, "uuidToken");
        User loggedInUser = getLoggedInUser(cookieUuidToken);
       
        logger.info("cookieUuidToken: " + cookieUuidToken);
       
        String id = getUrlId(e, "accessTokens");
       
      logger.info("Http Message Content: " + getHttpMessageContent(e));
        JSONObject jsonObject = BuildJsonObjectsUtil.extractJsonContents(getHttpMessageContent(e));
       
        if ((isPost(e) || isPut(e)) && isAdmin(loggedInUser)) {
          AccessTokenModel accessTokenModel = new Gson().fromJson(getHttpMessageContent(e), AccessTokenModel.class);
          BasicAccessToken newAccessToken = accessTokenModel.getAccessToken();
         
          Account account = getAccountService().getAccount(loggedInUser.getAccountName());
         
          if (account != null && newAccessToken != null && newAccessToken.getId() != null && newAccessToken.getId().length() >= 16) {
            newAccessToken.setAccountName(account.getId());
            logger.info("Persisting AccessToken: " + new Gson().toJson(newAccessToken));
            getAccountService().persistAccessToken(newAccessToken);
            if (account.getAccessTokens() == null) {
              BasicAccount newAccount = new BasicAccount(account);
              newAccount.setAccessTokens(new ArrayList<String>());
              account = newAccount;
            }
            account.getAccessTokens().add(newAccessToken.getId());
            getAccountService().persistAccount(account);
          }
         
          jsonResponse = new Gson().toJson(accessTokenModel);
        } else if (isGet(e) && isAdmin(loggedInUser)) {
          logger.info("Account Name: " + loggedInUser.getAccountName());
          Account account = getAccountService().getAccount(loggedInUser.getAccountName());
          logger.info("Account: " + account);
          List<String> accessTokens = account.getAccessTokens();
          if (accessTokens == null) {
            accessTokens = new ArrayList<>();
          }
         
          JsonArray accessTokenArray = new JsonArray();
          for (String accessToken : accessTokens) {
            AccessToken accessTokenObject = getAccountService().getAccessToken(accessToken);
            if (accessTokenObject != null && accessTokenObject.getAccountName().equals(account.getId())) {
              accessTokenArray.add(new Gson().toJsonTree(accessTokenObject));
            }
          }
         
          JsonObject accessTokensJson = new JsonObject();
          accessTokensJson.add("accessTokens", accessTokenArray);
          jsonResponse = accessTokensJson.toString();
        } else if (isDelete(e) && isAdmin(loggedInUser) && id != null) {
         
        }
             
       

        logger.info("jsonResponse: " + jsonResponse);
        writeContentsToBuffer(ctx, jsonResponse, "text/json");
  }
 
  private class AccessTokenModel {
    private BasicAccessToken accessToken;
   
    public BasicAccessToken getAccessToken() {
      return accessToken;
    }
   
    public void setAccessToken(BasicAccessToken accessToken) {
      this.accessToken = accessToken;
    }
  }
}
TOP

Related Classes of org.eurekaj.manager.server.handlers.AccessTokenHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.