Subversion Repositories SmartDukaan

Rev

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