1
2
3
4
5 package com.hack23.cia.service.impl.application;
6
7 import java.util.Date;
8
9 import com.hack23.cia.model.application.dto.common.UserSessionDTO;
10 import com.hack23.cia.model.application.impl.common.ActionEvent;
11 import com.hack23.cia.model.application.impl.common.UserSession;
12 import com.hack23.cia.model.application.impl.user.ApplicationActionEvent;
13 import com.hack23.cia.service.api.application.ApplicationRequest;
14 import com.hack23.cia.service.api.application.ApplicationResponse;
15 import com.hack23.cia.service.api.application.ApplicationRequest.HeaderAttributeKey;
16 import com.hack23.cia.service.api.common.AbstractServiceRequest;
17 import com.hack23.cia.service.api.common.ErrorResponse;
18 import com.hack23.cia.service.api.common.ServiceResponse;
19 import com.hack23.cia.service.impl.common.AbstractGenericService;
20 import com.hack23.cia.service.impl.common.ParliamentService;
21 import com.hack23.cia.service.impl.common.UserSessionService;
22
23 /***
24 * The Class ApplicationRequestService.
25 */
26 public class ApplicationRequestService extends
27 AbstractGenericService<ApplicationRequest> {
28
29 /*** The parliament service. */
30 private final ParliamentService parliamentService;
31
32 /***
33 * Instantiates a new application request service.
34 *
35 * @param userSessionService the user session service
36 * @param parliamentService the parliament service
37 */
38 public ApplicationRequestService(
39 final UserSessionService userSessionService,
40 final ParliamentService parliamentService) {
41 super(userSessionService);
42 this.parliamentService = parliamentService;
43 }
44
45
46
47
48
49
50
51
52
53 @Override
54 public final ActionEvent createActionEvent(
55 final ApplicationRequest request, final UserSession userSession) {
56 return new ApplicationActionEvent(new Date(), userSession);
57 }
58
59
60
61
62
63
64 @SuppressWarnings("unchecked")
65 @Override
66 public final Class getSupportedService() {
67 return ApplicationRequest.class;
68 }
69
70
71
72
73
74
75
76 @Override
77 public final ServiceResponse handleServiceRequest(
78 final ApplicationRequest request, final UserSessionDTO userSessionDTO) {
79 ServiceResponse serviceResponse = null;
80 final UserSession userSession = userSessionDTO.getUserSession();
81
82 if ((userSession.getPortal() != null)
83 && (userSession.getLanguage() != null)) {
84 serviceResponse = new ApplicationResponse(userSessionDTO, userSession
85 .getPortal().getAgency(), parliamentService
86 .getLastDecidedCommiteeReports(),parliamentService.getPoliticalParties());
87 } else {
88 serviceResponse = new ErrorResponse(userSessionDTO,
89 "No matching portal or language:");
90 }
91
92 return serviceResponse;
93 }
94
95
96
97
98
99
100
101
102 @Override
103 public final UserSession lookupUserSession(
104 final AbstractServiceRequest request) {
105 final ApplicationRequest applicationRequest = (ApplicationRequest) request;
106
107 final UserSession userSession = getUserSessionService()
108 .createUserSession(
109 applicationRequest
110 .getHeaderAttribute(HeaderAttributeKey.HEADER_COOKIE),
111 applicationRequest
112 .getHeaderAttribute(HeaderAttributeKey.CLIENT_INFO_ADDRESS),
113 applicationRequest
114 .getHeaderAttribute(HeaderAttributeKey.HEADER_HOST),
115 applicationRequest.getAcceptLanguage(),applicationRequest.getUserAgent());
116 return userSession;
117 }
118 }