Subversion Repositories SmartDukaan

Rev

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