Subversion Repositories SmartDukaan

Rev

Rev 12449 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.amazonaws.mws.samples;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

import org.apache.commons.codec.binary.Base64;

import com.amazonaws.mws.MarketplaceWebService;
import com.amazonaws.mws.MarketplaceWebServiceClient;
import com.amazonaws.mws.MarketplaceWebServiceConfig;
import com.amazonaws.mws.MarketplaceWebServiceException;
import com.amazonaws.mws.model.IdList;
import com.amazonaws.mws.model.SubmitFeedRequest;
import com.amazonaws.mws.model.SubmitFeedResponse;

public class PromotionFeed {
        public String CreatePromotionFeed() throws IOException{ 
                BufferedReader reader = null;
                BufferedWriter writer = null;
                String promotionFilename = null;
                try {
                        promotionFilename = "/home/vikram/Desktop/Promotion-"+System.currentTimeMillis()+".txt";
                        reader = new BufferedReader(new FileReader("/home/vikram/Desktop/Promotion-Template.txt"));
                        writer = new BufferedWriter(new FileWriter(promotionFilename));
                        String Line;
                        while ((Line = reader.readLine()) != null) {
                                writer.write(Line+"\n");
                        }
                        for(int i=1;i<=2;i++){
                                writer.write("sku"+"\t"+
                                                ""+"\t"
                                                +""+"\t"
                                                +""+"\t"
                                                +""+"\t"
                                                +""+"\t"
                                                +"\t"
                                                +"\t"
                                                +"\t"
                                                +"\t"
                                                +"PartialUpdate"+"\t"
                                                +"Standard-Price"+"\t"
                                                +""+"\t"        
                                                +""+"\t"
                                                +""+"\t"
                                                +""+"\t"
                                                +"Max-Order-Qty"+"\t"
                                                +"Sale-Price"+"\t"
                                                +"St-Date"+"\t"
                                                +"End-Date"+"\t"
                                                +""+"\t"+"\n");
                        }

                } catch (FileNotFoundException e1) {
                        e1.printStackTrace();
                }
                finally{
                        writer.close();
                        reader.close();
                        System.out.println("Done");
                }
                return promotionFilename;
        }
        public String SubmitPromotionFeed(String file) throws FileNotFoundException, InterruptedException, MarketplaceWebServiceException{
                MarketplaceWebService service = getMarketplaceServiceInstance();
                SubmitFeedRequest requestPromotion = new SubmitFeedRequest();
                requestPromotion.setMerchant("AF6E3O0VE0X4D");
                requestPromotion.setMarketplaceIdList(new IdList(Arrays.asList("A21TJRUUN4KGV")));
                requestPromotion.setFeedType("_POST_FLAT_FILE_LISTINGS_DATA_");
                FileInputStream promotionfis = new FileInputStream(file);
                requestPromotion.setContentMD5(computeContentMD5HeaderValue(promotionfis));
                requestPromotion.setFeedContent(promotionfis);
                return invokeSubmitFeed(service,requestPromotion);
        }
        public MarketplaceWebService getMarketplaceServiceInstance(){
                final String accessKeyId = "AKIAII3SGRXBJDPCHSGQ";
                final String secretAccessKey = "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";
                final String appName = "Test";
                final String appVersion = "1.0";
                MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
                config.setServiceURL("https://mws.amazonservices.in");
                return new MarketplaceWebServiceClient(
                                accessKeyId, secretAccessKey, appName, appVersion, config);
        }
        public static String computeContentMD5HeaderValue(FileInputStream fis) {
                try {
                        DigestInputStream dis = new DigestInputStream(fis,
                                        MessageDigest.getInstance("MD5"));
                        byte[] buffer = new byte[8192];
                        while (dis.read(buffer) > 0)
                                ;
                        String md5Content = new String(Base64.encodeBase64(dis
                                        .getMessageDigest().digest()));
                        // Effectively resets the stream to be beginning of the file via a
                        fis.getChannel().position(0);
                        return md5Content;
                } catch (NoSuchAlgorithmException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                return null;
        }
        public String invokeSubmitFeed(MarketplaceWebService service,SubmitFeedRequest request) throws InterruptedException, MarketplaceWebServiceException {
                                SubmitFeedResponse response = service.submitFeed(request);
                                return response.getSubmitFeedResult().getFeedSubmissionInfo().getFeedSubmissionId();
        }
}