Rev 12355 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.utils;import in.shop2020.model.v1.catalog.AmazonPromotion;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 java.util.Calendar;import java.util.List;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;import com.ibm.icu.text.SimpleDateFormat;public class PromotionFeed {public String CreatePromotionFeed(List<AmazonPromotion> amazonPromotions) throws IOException{BufferedReader reader = null;BufferedWriter writer = null;String promotionFilename = null;SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();try {promotionFilename = "/tmp/Promotion-"+System.currentTimeMillis()+".txt";reader = new BufferedReader(new FileReader("/tmp/p.txt"));writer = new BufferedWriter(new FileWriter(promotionFilename));String Line;while ((Line = reader.readLine()) != null) {writer.write(Line+"\n");}for(AmazonPromotion am:amazonPromotions){calendar.setTimeInMillis(am.getStartDate());String start = formatter.format(calendar.getTime());calendar.setTimeInMillis(am.getEndDate());String end = formatter.format(calendar.getTime());writer.write(am.getSku()+"\t"+""+"\t"+""+"\t"+""+"\t"+""+"\t"+""+"\t"+"\t"+"\t"+"\t"+"\t"+"PartialUpdate"+"\t"+am.getStandardPrice()+"\t"+""+"\t"+""+"\t"+""+"\t"+""+"\t"+"1"+"\t"+am.getSalePrice()+"\t"+start+"\t"+end+"\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 afis.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();}}