Subversion Repositories SmartDukaan

Rev

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