1
2
3
4
5 package com.hack23.cia.service.impl.user;
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.UserAccountActionEvent;
13 import com.hack23.cia.model.application.impl.user.UserAccountActionEvent.Operation;
14 import com.hack23.cia.service.api.common.ServiceResponse;
15 import com.hack23.cia.service.api.user.LogoutRequest;
16 import com.hack23.cia.service.api.user.UserAccountResponse;
17 import com.hack23.cia.service.impl.common.ParliamentService;
18 import com.hack23.cia.service.impl.common.UserSessionService;
19
20 /***
21 * The Class LogoutRequestService.
22 */
23 public class LogoutRequestService extends
24 AbstractUserRequestService<LogoutRequest> {
25
26 /*** The parliament service. */
27 private final ParliamentService parliamentService;
28
29 /***
30 * Instantiates a new logout request service.
31 *
32 * @param userSessionService the user session service
33 * @param parliamentService the parliament service
34 */
35 public LogoutRequestService(final UserSessionService userSessionService,final ParliamentService parliamentService) {
36 super(userSessionService);
37 this.parliamentService = parliamentService;
38 }
39
40
41
42
43
44
45
46
47
48 @Override
49 public final ActionEvent createActionEvent(final LogoutRequest request,
50 final UserSession userSession) {
51 return new UserAccountActionEvent(new Date(), userSession,
52 Operation.Logout);
53 }
54
55
56
57
58
59
60 @SuppressWarnings("unchecked")
61 @Override
62 public final Class getSupportedService() {
63 return LogoutRequest.class;
64 }
65
66
67
68
69
70
71
72 @Override
73 public final ServiceResponse handleServiceRequest(
74 final LogoutRequest request, final UserSessionDTO userSession) {
75 final UserSession loggedOutUserSession = this.getUserSessionService().logout(
76 userSession.getUserSession());
77 return new UserAccountResponse(new UserSessionDTO(loggedOutUserSession),parliamentService.getPoliticalParties());
78
79 }
80 }