Subversion Repositories SmartDukaan

Rev

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