Subversion Repositories SmartDukaan

Rev

Rev 9155 | Rev 9357 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6848 kshitij.so 1
package in.shop2020.serving.controllers;
2
 
8917 kshitij.so 3
import in.shop2020.config.ConfigException;
4
import in.shop2020.model.v1.catalog.Banner;
5
import in.shop2020.model.v1.catalog.BannerCongregate;
6
import in.shop2020.model.v1.catalog.BannerMap;
7
import in.shop2020.model.v1.catalog.BannerUriMapping;
8
import in.shop2020.model.v1.catalog.Campaign;
9
import in.shop2020.model.v1.catalog.CatalogService.Client;
9155 kshitij.so 10
import in.shop2020.model.v1.catalog.BannerType;
8917 kshitij.so 11
import in.shop2020.serving.services.ScpService;
12
import in.shop2020.thrift.clients.CatalogClient;
13
 
6848 kshitij.so 14
import java.io.File;
8578 kshitij.so 15
import java.io.IOException;
16
import java.util.ArrayList;
17
import java.util.Calendar;
18
import java.util.GregorianCalendar;
6848 kshitij.so 19
import java.util.List;
20
 
8917 kshitij.so 21
import javax.servlet.http.HttpServletRequest;
22
 
23
import org.apache.commons.io.FileUtils;
24
import org.apache.commons.lang.xwork.StringUtils;
6848 kshitij.so 25
import org.apache.log4j.Logger;
26
import org.apache.struts2.convention.annotation.Result;
27
import org.apache.struts2.convention.annotation.Results;
28
import org.apache.thrift.TException;
29
import org.apache.thrift.transport.TTransportException;
30
 
31
 
32
@SuppressWarnings("serial")
8582 kshitij.so 33
 
6848 kshitij.so 34
@Results({
8578 kshitij.so 35
	@Result(name = "redirect", location = "${url}", type = "redirect"),
36
	@Result(name = "newCampaign", location = "campaign-editNew.vm"),
8917 kshitij.so 37
	@Result(name = "campaignEdit", location = "campaignEdit.vm"),
38
	@Result(name = "newSideBanner", location = "SideBanner-New.vm"),
39
	@Result(name = "sideBannerEdit", location = "SideBanner-Edit.vm")
8578 kshitij.so 40
})
8582 kshitij.so 41
 
8578 kshitij.so 42
public class UserImageController extends BaseController {
6848 kshitij.so 43
	private static Logger log = Logger.getLogger(Class.class);
8578 kshitij.so 44
	private File userImage;
45
	private String filePath;
46
	private String userImageContentType;
47
	private String userImageFileName;
48
	private String url;
49
	private HttpServletRequest servletRequest;
50
	private String[] status;
51
	private String bannerName;
52
	private String link;
53
	private String priority;
54
	private String hasMap;
55
	private String action;
56
	private String[] mapLink;
57
	private String[] mapCoordinates;
58
	private String[] uri;
59
	private String id;
60
	private String newsletterName;
61
	private String imageName;
62
	private String campaignId;
8917 kshitij.so 63
	private String fileExtention;
9155 kshitij.so 64
	private String bannerType;
65
	private String actionType;
66
 
8578 kshitij.so 67
	public String create() {
6848 kshitij.so 68
		try {
8578 kshitij.so 69
			filePath = servletRequest.getSession().getServletContext().getRealPath("/images/banners/");
70
			setUrl("/user-image");
71
			String imageName = null;
9155 kshitij.so 72
			Banner antecedent = new Banner();
8578 kshitij.so 73
			if (StringUtils.isNotEmpty(userImageFileName)) {
74
				imageName = getImageName();
9356 kshitij.so 75
				antecedent.setBannerName(action);
76
				antecedent.setBannerType(BannerType.valueOf(actionType));
8578 kshitij.so 77
				File fileToCreate = new File(filePath, imageName); 
78
				FileUtils.copyFile(this.userImage, fileToCreate);
79
				try {
80
					ScpService scp = new ScpService();
81
					scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/banners/"+imageName, filePath+"/"+imageName);
82
				} catch (Exception e) {
83
					log.error("Scp To Servers Failed",e);
84
					addActionError("Image Failed To Upload");
85
					return "redirect";
86
				}
87
			}
88
			else{
89
				Client CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 90
				imageName =CatalogClient.getBannerDetails(action,BannerType.valueOf(actionType)).getImageName();
91
				antecedent.setBannerName(action);
92
				antecedent.setBannerType(BannerType.valueOf(actionType));
8578 kshitij.so 93
			}
94
			if (StringUtils.isEmpty(link)) {
95
				log.info("Empty Link Field");
96
				this.link="#";
97
			}
98
			Banner banner = new Banner();
99
			banner.setBannerName(bannerName);
100
			banner.setImageName(imageName);
101
			banner.setLink(link);
102
			banner.setHasMap(Boolean.parseBoolean(hasMap));
8917 kshitij.so 103
			banner.setPriority(Long.valueOf(priority));
9155 kshitij.so 104
			banner.setBannerType(BannerType.valueOf(bannerType));
8578 kshitij.so 105
			List<BannerMap> bannerMaps = new ArrayList<BannerMap>();
106
			if(banner.isHasMap()) {
107
				for(int i=0;i<mapLink.length;i++){
108
					if(mapLink[i].isEmpty()) {
109
						continue;
110
					}
111
					BannerMap bannerMap = new BannerMap();
112
					bannerMap.setBannerName(bannerName);
113
					bannerMap.setCoordinates(mapCoordinates[i]);
114
					bannerMap.setMapLink(mapLink[i]);
115
					bannerMaps.add(bannerMap);
116
				}	
117
			}
118
			List<BannerUriMapping> bannerUriMappings = new ArrayList<BannerUriMapping>();
119
			for (int i=0;i<uri.length;i++){
120
				if(uri[i].isEmpty()) {
121
					continue;
122
				}
123
				BannerUriMapping bannerUriMapping = new BannerUriMapping();
124
				bannerUriMapping.setBannerName(bannerName);
125
				bannerUriMapping.setUri(uri[i]);
126
				bannerUriMapping.setIsActive(Boolean.valueOf(status[i]));
127
				bannerUriMappings.add(bannerUriMapping);
128
			}
8590 kshitij.so 129
			BannerCongregate bannerCongregate = new BannerCongregate();
130
			bannerCongregate.setBanner(banner);
131
			bannerCongregate.setBannerMaps(bannerMaps);
132
			bannerCongregate.setBannerUriMappings(bannerUriMappings);
9155 kshitij.so 133
			bannerCongregate.setAntecedent(antecedent);
8590 kshitij.so 134
			Client CatalogClient = new CatalogClient().getClient();
135
			CatalogClient.addBanner(bannerCongregate);
8578 kshitij.so 136
		} catch (Exception e) {   
137
			log.error("Error while uploading/changing map",e);
138
			addActionError("Failed To Do Changes");
139
			return "redirect";
140
		}
141
		addActionMessage("Changes Applied Successfully");
142
		return "index";
143
	}
144
 
145
	public String createNewsletter() throws IOException{
146
		filePath = servletRequest.getSession().getServletContext().getRealPath("/images/campaignImages/");
8590 kshitij.so 147
		setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);
8578 kshitij.so 148
		if (StringUtils.isNotEmpty(userImageFileName)) {
9155 kshitij.so 149
			imageName = getImageName();
8578 kshitij.so 150
			File fileToCreate = new File(filePath, imageName); 
151
			FileUtils.copyFile(this.userImage, fileToCreate);
152
			ScpService scp = new ScpService();
153
			try {
154
				scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/campaignImages/"+imageName, filePath+"/"+imageName);
155
			} catch (ConfigException e) {
156
				log.info("Unable to do scp "+e);
8590 kshitij.so 157
				addActionError("Image Failed To Upload");
158
				return "redirect";
8578 kshitij.so 159
			}
160
			Campaign campaign = new Campaign();
161
			campaign.setCampaignName(this.newsletterName);
162
			campaign.setImageName(imageName);
163
			Client CatalogClient;
164
			try {
165
				CatalogClient = new CatalogClient().getClient();
166
				CatalogClient.addCampaign(campaign);
167
			} catch (Exception e) {
168
				log.info("Unable to add campaign "+e);
169
				addActionError("Failed To Do Changes");
8590 kshitij.so 170
				return "redirect";
8578 kshitij.so 171
			}
8590 kshitij.so 172
			addActionMessage("Changes Applied Successfully");
173
			return "redirect";
8578 kshitij.so 174
		}
8590 kshitij.so 175
		else{
176
			addActionError("Image Missing");
177
			return "redirect";
178
		}
8578 kshitij.so 179
	}
180
 
8590 kshitij.so 181
	public String deleteCampaign() {
182
		setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);
183
		try {
184
			Client CatalogClient = new CatalogClient().getClient();
185
			CatalogClient.deleteCampaign(Long.valueOf(campaignId));
186
			addActionMessage("Image deleted");
187
			return "redirect";
188
		}
189
		catch (Exception e) {
190
			log.info("Unable to delete campaign "+e);
191
			addActionError("Unable to delete image");
192
			return "redirect";
193
		}
194
	}
195
 
196
 
8578 kshitij.so 197
	public void addBannerUriMapping(List<BannerUriMapping> bannerUriMappings) throws TException{
198
		Client CatalogClient = new CatalogClient().getClient();
199
		CatalogClient.addBannerUri(bannerUriMappings);
200
	}
201
 
202
	public void addBannerMap(List<BannerMap> bannerMaps) throws TException{
203
		Client CatalogClient = new CatalogClient().getClient();
204
		CatalogClient.addBannerMap(bannerMaps);
205
	}
206
 
207
	public List<Banner> getAllBanners() {
208
		Client CatalogClient = null;
209
		List<Banner> banners = null;
210
		try {
6848 kshitij.so 211
			CatalogClient = new CatalogClient().getClient();
8578 kshitij.so 212
			banners = CatalogClient.getAllBanners();
6848 kshitij.so 213
		} catch (TTransportException e) {
8578 kshitij.so 214
			log.info("Unable to fetch all banners "+e);
215
		} catch (TException ex) {
216
			log.info("Unable to fetch all banners "+ex);
6848 kshitij.so 217
		}
8578 kshitij.so 218
		return banners;	
219
	}
220
 
221
	public String destroy() throws TException {
222
		Client CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 223
		CatalogClient.deleteBanner(bannerName,BannerType.valueOf(bannerType));
8578 kshitij.so 224
		setUrl("/user-image");
225
		return "redirect";
226
 
227
	}
228
 
9155 kshitij.so 229
	public Banner getUpdates(String bannerType) throws TException {
8578 kshitij.so 230
		Client CatalogClient = null;
6848 kshitij.so 231
		CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 232
		Banner banner = CatalogClient.getBannerDetails(bannerName,BannerType.valueOf(bannerType));
8917 kshitij.so 233
		try{
234
			setFileExtention(banner.getImageName().split("[.]")[1]);
235
		}
236
		catch (Exception e){
237
			log.error("Split image name error "+e);
238
		}
239
		return banner;
8578 kshitij.so 240
	} 
241
 
9155 kshitij.so 242
	public Banner getUpdates(String name,String bannerType) throws TException {
8578 kshitij.so 243
		Client CatalogClient = null;
6848 kshitij.so 244
		CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 245
		return CatalogClient.getBannerDetails(name,BannerType.valueOf(bannerType));
8578 kshitij.so 246
	} 
6848 kshitij.so 247
 
9155 kshitij.so 248
	public List<BannerMap> getbannermapdetail(String bannerType) throws TException {
8578 kshitij.so 249
		Client CatalogClient = null;
250
		CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 251
		return CatalogClient.getBannerMapDetails(bannerName,BannerType.valueOf(bannerType));
8578 kshitij.so 252
	}
6848 kshitij.so 253
 
8578 kshitij.so 254
	public String getImageName() {
255
		Calendar cal=GregorianCalendar.getInstance();
8917 kshitij.so 256
		return String.valueOf(cal.getTimeInMillis())+"."+fileExtention;
8578 kshitij.so 257
	}
258
 
8917 kshitij.so 259
	public String getTimeInMilliseconds(){
260
		Calendar cal=GregorianCalendar.getInstance();
261
		return String.valueOf(cal.getTimeInMillis());
262
	}
263
 
9155 kshitij.so 264
	public List<BannerUriMapping> getUriMapping(String bannerName,BannerType bannerType) throws TException{
8578 kshitij.so 265
		Client CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 266
		return CatalogClient.getUriMapping(bannerName,bannerType);
8578 kshitij.so 267
	}
268
 
9155 kshitij.so 269
	public List<BannerUriMapping> getUriMapping(String bannerType) throws TException{
8578 kshitij.so 270
		Client CatalogClient = new CatalogClient().getClient();
9155 kshitij.so 271
		return CatalogClient.getUriMapping(bannerName,BannerType.valueOf(bannerType));
8578 kshitij.so 272
	}
273
 
274
	public List<Campaign> getCampaigns(String campaignName) throws TException{
275
		Client CatalogClient = new CatalogClient().getClient();
276
		return CatalogClient.getCampaigns(campaignName);
277
	}
278
 
279
	public List<String> getAllCampaigns() throws TException{
280
		Client CatalogClient = new CatalogClient().getClient();
281
		return CatalogClient.getAllCampaigns();
282
	}
283
 
284
	public String index() {
285
		return "index";
286
	}
287
 
288
	public String show() {
289
		if (StringUtils.equals(id, "newCampaign")){
290
			return "newCampaign";
291
		}
8917 kshitij.so 292
		if (StringUtils.equals(id, "newSideBanner")){
293
			return "newSideBanner";
294
		}
8578 kshitij.so 295
		return "show";
296
	}
297
 
298
	public String editNewsletter(){
299
		return "campaignEdit";
300
	}
301
 
8917 kshitij.so 302
	public String editSideBanner(){
303
		return "sideBannerEdit";
304
	}
305
 
8578 kshitij.so 306
	public String edit() {
307
		return "edit";
308
	}
309
 
310
 
311
	public String editNew() {
312
		return "editNew";
313
	}
314
 
315
	public File getUserImage() {
316
		return userImage;
317
	}
318
 
319
	public void setUserImage(File userImage) {
320
		log.info("set file"+userImage.toString());
321
		this.userImage = userImage;
322
	}
323
 
324
	public String getUserImageContentType() {
325
		return userImageContentType;
326
	}
327
 
328
	public void setUserImageContentType(String userImageContentType) {
329
		this.userImageContentType = userImageContentType;
330
	}
331
 
332
	public String getUserImageFileName() {
333
		return userImageFileName;
334
	}
335
 
336
	public void setUserImageFileName(String userImageFileName) {
337
		log.info("userimage file name set"+userImageFileName);
338
		this.userImageFileName = userImageFileName;
339
	}
340
 
341
	public void setUrl(String url) {
6848 kshitij.so 342
		this.url = url;
343
	}
344
 
345
	public String getUrl() {
346
		return url;
347
	}
8578 kshitij.so 348
 
349
	public void setIsActive(String[] isActive) {
6848 kshitij.so 350
		this.status=isActive;
351
	}
8578 kshitij.so 352
 
353
	public String[] getIsActive() {
6848 kshitij.so 354
		return status;
355
	}
8578 kshitij.so 356
 
357
 
6848 kshitij.so 358
	public void setBannerName(String bannerName) {
359
		this.bannerName=bannerName;
360
	}
8578 kshitij.so 361
 
6848 kshitij.so 362
	public String getBannerName() {
363
		return bannerName;
364
	}
8578 kshitij.so 365
 
6848 kshitij.so 366
	public void setLink(String link) {
367
		this.link=link;
368
	}
8578 kshitij.so 369
 
6848 kshitij.so 370
	public String getLink() {
371
		return link;
372
	}
8578 kshitij.so 373
 
6848 kshitij.so 374
	public void setAction(String action) {
375
		this.action=action;
376
	}
8578 kshitij.so 377
 
6848 kshitij.so 378
	public String getAction() {
379
		return action;
380
	}
8578 kshitij.so 381
 
6848 kshitij.so 382
	public void setPriority(String priority) {
383
		this.priority=priority;
384
	}
8578 kshitij.so 385
 
6848 kshitij.so 386
	public String getPriority() {
387
		return priority;
388
	}
8578 kshitij.so 389
 
390
	public void setId(String id) {
391
		log.info("set id banner "+id);
392
		this.id = id;
393
		this.bannerName = id;
6848 kshitij.so 394
	}
8578 kshitij.so 395
 
6848 kshitij.so 396
	public String[] getMapLink() {
397
		return mapLink;
398
	}
399
	public void setMapLink(String[] mapLink) {
400
		this.mapLink = mapLink;
401
	}
8578 kshitij.so 402
	public String[] getMapCoordinates() {
6848 kshitij.so 403
		return mapCoordinates;
404
	}
405
	public void setMapCoordinates(String[] mapCoordinates) {
406
		this.mapCoordinates = mapCoordinates;
407
	}
8578 kshitij.so 408
 
409
	public void setUri(String[] uri) {
410
		this.uri = uri;
411
	}
412
 
413
	public String[] getUri() {
414
		return uri;
415
	}
416
 
6848 kshitij.so 417
	public void setHasMap(String hasMap) {
418
		this.hasMap=hasMap;
419
	}
8578 kshitij.so 420
 
6848 kshitij.so 421
	public String getHasMap() {
422
		return hasMap;
423
	}
8578 kshitij.so 424
 
425
	public void setNewsletterName(String newsletterName) {
426
		this.newsletterName = newsletterName;
427
	}
428
 
429
	public String getNewsletterName() {
430
		return newsletterName;
431
	}
432
 
433
	public void setCampaignId(String campaignId) {
434
		this.campaignId = campaignId;
435
	}
436
 
437
	public String getCampaignId() {
438
		return campaignId;
439
	}
440
 
441
	@Override
442
	public void setServletRequest(HttpServletRequest servletRequest) {
443
		this.servletRequest = servletRequest;
444
 
445
	}
446
 
447
	public void setImageName(String imageName) {
448
		this.imageName = imageName;
449
	}
450
 
8917 kshitij.so 451
	public void setFileExtention(String fileExtention) {
452
		this.fileExtention = fileExtention;
453
	}
454
 
455
	public String getFileExtention() {
456
		return fileExtention;
457
	}
458
 
9155 kshitij.so 459
	public void setBannerType(String bannerType) {
460
		this.bannerType = bannerType;
461
	}
462
 
463
	public String getBannerType() {
464
		return bannerType;
465
	}
466
 
467
	public void setActionType(String actionType) {
468
		this.actionType = actionType;
469
	}
470
 
471
	public String getActionType() {
472
		return actionType;
473
	}
474
 
8590 kshitij.so 475
}