1
2
3
4
5 package com.hack23.cia.service.impl.common;
6
7 import java.util.Date;
8
9 import org.springframework.transaction.annotation.Propagation;
10 import org.springframework.transaction.annotation.Transactional;
11
12 import com.hack23.cia.model.application.dto.common.UserSessionDTO;
13 import com.hack23.cia.model.application.impl.common.ActionEvent;
14 import com.hack23.cia.model.application.impl.common.ApplicationErrorActionEvent;
15 import com.hack23.cia.model.application.impl.common.UserSession;
16 import com.hack23.cia.service.api.common.AbstractServiceRequest;
17 import com.hack23.cia.service.api.common.ApplicationErrorRequest;
18 import com.hack23.cia.service.api.common.ApplicationErrorResponse;
19 import com.hack23.cia.service.api.common.ServiceResponse;
20
21 /***
22 * The Class ApplicationErrorRequestService.
23 */
24 @Transactional(propagation = Propagation.REQUIRES_NEW)
25 public class ApplicationErrorRequestService extends
26 AbstractGenericService<ApplicationErrorRequest> {
27
28 /***
29 * Instantiates a new application error request service.
30 *
31 * @param userSessionService the user session service
32 */
33 public ApplicationErrorRequestService(
34 final UserSessionService userSessionService) {
35 super(userSessionService);
36 }
37
38
39
40
41
42
43
44
45
46 @Override
47 public final ActionEvent createActionEvent(
48 final ApplicationErrorRequest request, final UserSession userSession) {
49
50 final StackTraceElement[] stackTraceElements = request.getStackTraceElements();
51 final StringBuilder stringBuilder = new StringBuilder();
52 stringBuilder.append("StackTrace:");
53 for (final StackTraceElement stackTraceElement : stackTraceElements) {
54 stringBuilder.append(stackTraceElement.toString());
55 stringBuilder.append("\n");
56 }
57
58 return new ApplicationErrorActionEvent(new Date(), userSession,stringBuilder.toString(),request.getErrorMessage());
59 }
60
61
62
63
64
65
66 @SuppressWarnings("unchecked")
67 @Override
68 public final Class getSupportedService() {
69 return ApplicationErrorRequest.class;
70 }
71
72
73
74
75
76
77
78 @Override
79 public final ServiceResponse handleServiceRequest(
80 final ApplicationErrorRequest request, final UserSessionDTO userSession) {
81 final ApplicationErrorResponse response = new ApplicationErrorResponse(userSession, "Error Logged");
82 return response;
83 }
84
85
86
87
88 @Override
89 public final UserSession lookupUserSession(
90 final AbstractServiceRequest request) {
91 UserSession userSession = null;
92 if (request.getUserSessionId() != null) {
93
94 userSession = getUserSessionService().loadUserSessionById(
95 request.getUserSessionId());
96
97 }
98
99 if (userSession == null) {
100 userSession = getUserSessionService()
101 .createUserSession("fake error usersession",
102 "fake error usersession",
103 "localhost",
104 "en","useragent");
105 }
106 return userSession;
107 }
108
109
110 }