Subversion Repositories SmartDukaan

Rev

Rev 12112 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.creation.controllers;

import in.shop2020.metamodel.util.ContentPojo;
import in.shop2020.metamodel.util.ItemPojo;
import in.shop2020.model.v1.catalog.CatalogService.Client;
import in.shop2020.model.v1.catalog.Item;
import in.shop2020.storage.mongo.StorageManager;
import in.shop2020.thrift.clients.CatalogClient;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Arrays;

import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;

public class NewsLetterController {

    private List<Item> privateDealItems;
    private Map<Long, Item> privateDealItemMap = new HashMap<Long,Item>();
    private String itemIds;
    private String htmlContent;
    private Map<Long,ItemPojo> ItemPojoMap = new HashMap<Long,ItemPojo>();
    private Map<Long,ContentPojo> ContentPojoMap = new HashMap<Long,ContentPojo>();

    public List<Item> getPrivateDealItems() {
        return privateDealItems;
    }

    public void setPrivateDealItems(List<Item> privateDealItems) {
        this.privateDealItems = privateDealItems;
    }

    public void setItemIds(String itemIds) {
        this.itemIds = itemIds;
    }

    public String getitemIds() {
        return itemIds;
    }

    public void setHtmlContent(String htmlContent) {
        this.htmlContent = htmlContent;
    }

    public String getHtmlContent() {
        return htmlContent;
    }

    public void setItemPojoMap(Map<Long,ItemPojo> itemPojoMap) {
        ItemPojoMap = itemPojoMap;
    }

    public Map<Long,ItemPojo> getItemPojoMap() {
        return ItemPojoMap;
    }
    
    public void setContentPojoMap(Map<Long,ContentPojo> contentPojoMap) {
        ContentPojoMap = contentPojoMap;
    }

    public Map<Long,ContentPojo> getContentPojoMap() {
        return ContentPojoMap;
    }


    public void populateContent() throws IOException{
        ContentPojo cp;
        List<String> items = Arrays.asList(itemIds.split(","));
        System.out.println(items);
        for(String itemid:items){
            System.out.println("Item ID "+itemid);
            System.out.println("Catalog Item ID "+privateDealItemMap.get(Long.parseLong(itemid)).getCatalogItemId());
            cp = getProductAttributes(privateDealItemMap.get(Long.parseLong(itemid)).getCatalogItemId());
            if(cp==null){
                continue;
            }
            System.out.println("Content Pojo "+cp.getTitle());
            for(ItemPojo itemPojo:cp.getItems()){
                System.out.println("Item ID in list "+Long.parseLong(itemid) +" Item ID in item pojo "+itemPojo.getId().longValue());
                if(Long.parseLong(itemid)==itemPojo.getId().longValue()){
                    ItemPojoMap.put(itemPojo.getId(),itemPojo);
                }
            }
            cp.setUrl("http://saholic.com/"+cp.getUrl());
            ContentPojoMap.put(new Long(itemid),cp);
        }
    }

    public NewsLetterController() {
        try {
            Client CatalogClient = new CatalogClient().getClient();
            privateDealItems = CatalogClient.getPrivateDealItems(0,0);
            System.out.println("Init Private Deals Map");
            for(Item privateDealItem:privateDealItems){
                System.out.println("Putting "+ privateDealItem.getId());
                privateDealItemMap.put(privateDealItem.getId(),privateDealItem);
            }
            setPrivateDealItems(privateDealItems);
        } catch (TTransportException e) {
            e.printStackTrace();        
        } catch (TException e) {
            e.printStackTrace();
        }
    }

    public String index() {
        return "index";
    }

    public ContentPojo getProductAttributes(long catalog_item_id){
        return StorageManager.getById(StorageManager.views.siteContent, new Long(catalog_item_id),ContentPojo.class);
    }

    public String createPrivateDealsNewsLetter() throws IOException{
        populateContent();
        return "edit";
    }
}