Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.hotspotstore.storage;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import com.google.gson.Gson;
import com.hotspotstore.model.Banner;
import com.hotspotstore.model.Snippet;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.util.JSON;


public class Mongo {

        private static MongoClient mongo;
        private static final String HOTSPOT_DB = "Hotspot";
        private static final String BANNERS = "Banners";
        private static final String CONTENT ="CONTENT";
        private static final String SITE_CONTENT = "siteContent";
        private static final String HOTSPOT_ENTITES = "HotspotEntity";
        private static final String SNIPPETS = "Snippets";

        static {
                try {
                        mongo = new MongoClient( "localhost" , 27017 );
                } catch (UnknownHostException e) {
                        e.printStackTrace();
                }
        }


        public static void addBanner(Banner b){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                BasicDBObject orderBy = new BasicDBObject();
                orderBy.put("_id", -1);
                DBCursor cursor = collection.find().sort(orderBy).limit(1);
                long id = 1l;
                while (cursor.hasNext()) {
                        Gson gson = new Gson();
                        Banner bannerObj = gson.fromJson(cursor.next().toString(), Banner.class);
                        id = bannerObj.get_id() + 1;
                }
                b.set_id(id);
                Gson gs = new Gson();
                DBObject dbObject = (DBObject) JSON.parse(gs.toJson(b));
                collection.insert(dbObject);
        }

        public static Banner getBannerById(long id) throws Exception{
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                BasicDBObject obj = new BasicDBObject();
                obj.append("_id", id);
                DBObject result = collection.findOne(obj);
                if (result==null){
                        throw new Exception();
                }
                Gson gson = new Gson();
                Banner banner = gson.fromJson(result.toString(), Banner.class);
                return banner;
        }

        public static ArrayList<Banner> getAllBanners(){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                ArrayList<Banner> banners = new ArrayList<Banner>();
                DBCursor result = collection.find();
                Gson gson = new Gson();
                while (result.hasNext()) {
                        Banner banner = gson.fromJson(result.next().toString(), Banner.class);
                        banners.add(banner);
                }
                return banners;
        }

        public static ArrayList<Banner> getAllActiveBanners(){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                ArrayList<Banner> banners = new ArrayList<Banner>();
                BasicDBObject obj = new BasicDBObject();
                obj.append("active", true);
                BasicDBObject orderBy = new BasicDBObject();
                orderBy.put("priority", 1);
                DBCursor result = collection.find(obj).sort(orderBy);
                Gson gson = new Gson();
                while (result.hasNext()) {
                        Banner banner = gson.fromJson(result.next().toString(), Banner.class);
                        banners.add(banner);
                }
                return banners;
        }

        public static void deleteBanner(long id){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                BasicDBObject obj = new BasicDBObject();
                obj.append("_id", id);
                collection.remove(obj);
        }

        public static void updateBanner(Banner b){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(BANNERS);
                Gson gs = new Gson();
                DBObject dbObject = (DBObject) JSON.parse(gs.toJson(b));
                collection.update(new BasicDBObject().append("_id", b.get_id()), dbObject);
        }

        public static JSONObject getEntityById(long id) throws Exception{
                DB db = mongo.getDB(CONTENT);
                DBCollection collection = db.getCollection(SITE_CONTENT);
                BasicDBObject obj = new BasicDBObject();
                obj.append("_id", id);
                DBObject result = collection.findOne(obj);
                if (result==null){
                        throw new Exception();
                }
                return new JSONObject(JSON.serialize(result));
        }

        public static void addEntityToHotspot(long entityId, String title){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(HOTSPOT_ENTITES);
                BasicDBObject obj = new BasicDBObject();
                obj.append("_id", entityId);
                obj.append("title", title);
                collection.insert(obj);
        }

        public static void addSnippetInfo(Snippet s){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(SNIPPETS);
                Gson gs = new Gson();
                DBObject dbObject = (DBObject) JSON.parse(gs.toJson(s));
                collection.insert(dbObject);
        }

        public static JSONObject getHotspotEntity(Long entityId) throws Exception{
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(HOTSPOT_ENTITES);
                BasicDBObject obj = new BasicDBObject();
                obj.append("_id", entityId);
                DBObject result = collection.findOne(obj);
                if (result==null){
                        throw new Exception();
                }
                return new JSONObject(JSON.serialize(result));
        }

        public static List<Snippet> getSnippets(){
                DB db = mongo.getDB(HOTSPOT_DB);
                DBCollection collection = db.getCollection(SNIPPETS);
                ArrayList<Snippet> snippets = new ArrayList<Snippet>();
                DBCursor result = collection.find();
                Gson gson = new Gson();
                while (result.hasNext()) {
                        Snippet snippet = gson.fromJson(result.next().toString(), Snippet.class);
                        snippets.add(snippet);
                }
                return snippets;
        }

        public static JSONArray getTermsForAutoSuggest(){
                DB db = mongo.getDB(CONTENT);
                DBCollection collection = db.getCollection(SITE_CONTENT);
                BasicDBObject obj = new BasicDBObject();
                obj.append("title", 1);
                JSONArray jsonArray = new JSONArray(); 
                DBCursor result = collection.find(new BasicDBObject(),obj);
                System.out.println(result.getQuery());
                while (result.hasNext()) {
                        jsonArray.put(result);
                }
                return jsonArray;
        }

        public static void main(String[] args) throws Exception{
                JSONArray x = getTermsForAutoSuggest();
                System.out.println(x);
        }

}