Package org.eurekaj.plugins.riak.dao

Source Code of org.eurekaj.plugins.riak.dao.RiakAccountDao

package org.eurekaj.plugins.riak.dao;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.client.utils.URIBuilder;
import org.apache.log4j.Logger;
import org.eurekaj.api.dao.AccountDao;
import org.eurekaj.api.datatypes.AccessToken;
import org.eurekaj.api.datatypes.Account;
import org.eurekaj.api.datatypes.Session;
import org.eurekaj.api.datatypes.User;
import org.eurekaj.api.datatypes.basic.BasicAccessToken;
import org.eurekaj.api.datatypes.basic.BasicAccount;
import org.eurekaj.api.datatypes.basic.BasicSession;
import org.eurekaj.api.datatypes.basic.BasicUser;

import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakRetryFailedException;
import com.basho.riak.client.bucket.Bucket;
import com.basho.riak.client.query.indexes.BucketIndex;

public class RiakAccountDao implements AccountDao {
  private static Logger logger = Logger.getLogger(RiakAccountDao.class.getName());
  private IRiakClient riakClient;
 
  public RiakAccountDao(IRiakClient riakClient) {
    this.riakClient = riakClient;
  }
 
  @Override
  public List<Account> getAccounts() {
    List<Account> accountList = new ArrayList<Account>();

        Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("Account").execute();

            for (String key : myBucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
              accountList.add(myBucket.fetch(key, BasicAccount.class).execute());
            }
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }

        return accountList;
  }

  @Override
  public Account getAccount(String id) {
    Account account = null;
   
    Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("Account").execute();
          account = myBucket.fetch(this.encodeUri(id), BasicAccount.class).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }
       
    return account;
  }

  @Override
  public void persistAccount(Account account) {
    Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("Account").execute();
            myBucket.store(this.encodeUri(account.getId()), account).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }
  }

  @Override
  public User getUser(String username, String accountName) {
    BasicUser user = null;
   
    Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("User;" + this.encodeUri(username)).execute();
            user = myBucket.fetch(this.encodeUri(accountName), BasicUser.class).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }
       
    return user;
  }
 
  @Override
  public List<User> getUsers(String username) {
    List<User> userList = new ArrayList<>();
   
    Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("User;" + this.encodeUri(username)).execute();
            for (String key : myBucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
              userList.add(myBucket.fetch(key, BasicUser.class).execute());
            }
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }
       
    return userList;
  }

  @Override
  public void persistUser(User user) {
    Bucket myBucket = null;
        try {
            myBucket = riakClient.fetchBucket("User;" + this.encodeUri(user.getUserName())).execute();
            myBucket.store(this.encodeUri(user.getAccountName()), new BasicUser(user)).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }   
  }

  @Override
  public void persistSession(Session session) {
    logger.info("persisting session: " + session.getUuid());
    Bucket myBucket = null;
        try {
          myBucket = riakClient.fetchBucket("Session").execute();
          myBucket.store(this.encodeUri(session.getUuid()), new BasicSession(session)).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }
  }
 
  @Override
  public Session getSession(String uuid) {
    logger.info("getting session: " + uuid);
    BasicSession session = null;
   
    Bucket myBucket = null;
        try {
          myBucket = riakClient.fetchBucket("Session").execute();
            session = myBucket.fetch(this.encodeUri(uuid), BasicSession.class).execute();
        } catch(RiakRetryFailedException rrfe) {
          rrfe.printStackTrace();
        }
       
        return session;
  }
 
  @Override
  public AccessToken getAccessToken(String accessToken) {
    BasicAccessToken session = null;
   
    Bucket myBucket = null;
        try {
          myBucket = riakClient.fetchBucket("AccessToken").execute();
            session = myBucket.fetch(this.encodeUri(accessToken), BasicAccessToken.class).execute();
        } catch(RiakRetryFailedException rrfe) {
          rrfe.printStackTrace();
        }
       
        return session;
  }
 
  @Override
  public void persistAccessToken(AccessToken accessToken) {
    Bucket myBucket = null;
        try {
          myBucket = riakClient.fetchBucket("AccessToken").execute();
          myBucket.store(this.encodeUri(accessToken.getId()), new BasicAccessToken(accessToken)).execute();
        } catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }
  }
 
  private String encodeUri(String s) {
    String encoded = s;
   
    if (encoded != null) {
      //encoded = encoded.replace(" ", "_");
    }
   
    return encoded;
  }
}
TOP

Related Classes of org.eurekaj.plugins.riak.dao.RiakAccountDao

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.