Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.ui.util;

import in.shop2020.model.v1.catalog.CatalogService.Client;
import in.shop2020.model.v1.catalog.Item;
import in.shop2020.thrift.clients.CatalogClient;

import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;

import com.google.gson.Gson;

public class CatalogUploderToGAE implements Serializable {
    private static final long serialVersionUID = -326425176723602170L;
    private static final String NAME_KEY = "name";
    private static final String ID_KEY = "id";
    private static final String CATALOG_ID_KEY = "catalog_id";
    private static final String BRAND_KEY = "brand";
    private static final String COLOR_KEY = "color";
    
    private static ResourceBundle properties = ResourceBundle.getBundle(CatalogUploderToGAE.class.getName());
    private static String googleAppUrl = properties.getString("googleappurl");

    public void uploadItems(List<Item> items) {
        List<Map<String, String>> jsonItems = new ArrayList<Map<String, String>>();
        for (Item item : items) {
            String name = ((item.getBrand() != null) ? item.getBrand().trim()
                    + " " : "")
                    + ((item.getModelName() != null) ? item.getModelName()
                            .trim() + " " : "")
                    + ((item.getModelNumber() != null) ? item.getModelNumber()
                            .trim() : "");
            Map<String, String> jsonItem = new HashMap<String, String>();
            jsonItem.put(ID_KEY, Long.toString(item.getId()));
            jsonItem.put(CATALOG_ID_KEY, Long.toString(item.getCatalogItemId()));
            jsonItem.put(NAME_KEY, name);
            jsonItem.put(BRAND_KEY, item.getBrand());
            jsonItem.put(COLOR_KEY, item.getColor());
            jsonItems.add(jsonItem);
        }
        Gson gson = new Gson();
        postRequest(gson.toJson(jsonItems));
    }

    public static void main(String[] args) throws Exception {
        CatalogClient csc = new CatalogClient();
        Client client = csc.getClient();
        List<Item> allItems = client.getAllItems(false);
        allItems.addAll(client.getAllItems(true));
        CatalogUploderToGAE catalogUploaderToGAE = new CatalogUploderToGAE();
        catalogUploaderToGAE.uploadItems(allItems);
    }

    private void postRequest(String postData) {
        try {
            URL url = new URL("http://" + googleAppUrl + "/upload-catalog-items");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            String data = URLEncoder.encode("data", "UTF-8") + "=" + URLEncoder.encode(postData.toString(), "UTF-8");
            wr.write(data);
            wr.close();
            
            conn.getInputStream().close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}