Subversion Repositories SmartDukaan

Rev

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