Projekt

Obecné

Profil

Stáhnout (5.68 KB) Statistiky
| Větev: | Tag: | Revize:
1
package cz.zcu.yamanager.business;
2

    
3
import cz.zcu.yamanager.dto.*;
4
import cz.zcu.yamanager.repository.RequestRepository;
5
import cz.zcu.yamanager.repository.UserRepository;
6
import cz.zcu.yamanager.repository.VacationRepository;
7
import cz.zcu.yamanager.ws.rest.RESTFullException;
8
import org.apache.tomcat.jni.Local;
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.jdbc.core.JdbcTemplate;
13
import org.springframework.stereotype.Component;
14

    
15
import java.time.LocalDate;
16
import java.util.Collections;
17
import java.util.List;
18

    
19
@Component
20
public class ApiManager implements Manager {
21

    
22
    /**
23
     * The logger.
24
     */
25
    private static final Logger log = LoggerFactory.getLogger(UserRepository.class);
26

    
27
    private static final int DAYS_IN_WEEK = 7;
28

    
29
    private RequestRepository requestRepository;
30
    private UserRepository userRepository;
31
    private VacationRepository vacationRepository;
32

    
33
    @Autowired
34
    public ApiManager(RequestRepository requestRepository, UserRepository userRepository, VacationRepository vacationRepository) {
35
        this.requestRepository = requestRepository;
36
        this.userRepository = userRepository;
37
        this.vacationRepository = vacationRepository;
38
    }
39

    
40
    @Override
41
    public List<BasicProfileUser> getUsers(Status status) throws RESTFullException {
42
        List<BasicProfileUser> users;
43
        if(status == null) {
44
            users = this.userRepository.getAllBasicUsers();
45
        } else {
46
            users = this.userRepository.getAllBasicUsers(status);
47
        }
48

    
49
        if(users == null) {
50
            return Collections.emptyList();
51
        } else {
52
            LocalDate today = LocalDate.now();
53
            LocalDate weekBefore = today.minusDays(ApiManager.DAYS_IN_WEEK);
54
            LocalDate weekAfter = today.plusDays(ApiManager.DAYS_IN_WEEK);
55
            for (BasicProfileUser user : users) {
56
                user.setCalendar(this.vacationRepository.getVacationDays(user.getId(), weekBefore, weekAfter));
57
            }
58

    
59
            return users;
60
        }
61
    }
62

    
63
    @Override
64
    public List<VacationRequest> getVacationRequests(Status status) throws RESTFullException {
65
        List<VacationRequest> requests;
66
        if(status == null) {
67
            requests = this.requestRepository.getAllVacationRequests();
68
        } else {
69
            requests = this.requestRepository.getAllVacationRequests(status);
70
        }
71

    
72
        return requests == null ? Collections.emptyList() : requests;
73
    }
74

    
75
    @Override
76
    public List<AuthorizationRequest> getAuthorizationRequests(Status status) throws RESTFullException {
77
        List<AuthorizationRequest> requests;
78
        if(status == null) {
79
            requests = this.requestRepository.getAllAuthorizations();
80
        } else {
81
            requests = this.requestRepository.getAllAuthorizations(status);
82
        }
83

    
84
        return requests == null ? Collections.emptyList() : requests;
85
    }
86

    
87
    @Override
88
    public FullUserProfile getUserProfile(Long userId) throws RESTFullException {
89
        FullUserProfile userProfile = this.userRepository.getFullUser(userId);
90
        System.out.println("Notification: " + userProfile.getNotification());
91
        System.out.println("Approval: " + userProfile.getStatus());
92
        return userProfile;
93
    }
94

    
95
    @Override
96
    public DefaultSettings getDefaultSettings() throws RESTFullException {
97
        DefaultSettings settings = this.userRepository.getLastDefaultSettings();
98
        return settings == null ? new DefaultSettings() : settings;
99
    }
100

    
101
    @Override
102
    public List<VacationDay> getUserCalendar(Long userId, LocalDate fromDate, LocalDate toDate, Status status) throws RESTFullException {
103
        List<VacationDay> vacations;
104
        if(status == null && toDate == null) {
105
            vacations = this.vacationRepository.getVacationDays(userId, fromDate);
106
        } else if(status == null) {
107
            vacations = this.vacationRepository.getVacationDays(userId, fromDate, toDate);
108
        } else if(toDate != null) {
109
            vacations = this.vacationRepository.getVacationDays(userId, fromDate, toDate, status);
110
        } else {
111
            vacations = this.vacationRepository.getVacationDays(userId, fromDate, status);
112
        }
113

    
114
        return vacations == null ? Collections.emptyList() : vacations;
115
    }
116

    
117
    @Override
118
    public void createSettings(DefaultSettings settings) throws RESTFullException {
119
        this.userRepository.insertSettings(settings);
120
    }
121

    
122
    @Override
123
    public void createVacation(Long userId, VacationDay vacationDay) throws RESTFullException {
124
        this.vacationRepository.insertVacationDay(userId, vacationDay);
125
    }
126

    
127
    @Override
128
    public void changeSettings(Long userId, UserSettings settings) throws RESTFullException {
129
        settings.setId(userId);
130
        if(settings.getRole() == null && settings.getSickdayCount() == null && settings.getVacationCount() == null) {
131
            this.userRepository.updateNotification(settings);
132
        } else {
133
            this.userRepository.updateUserSettings(settings);
134
        }
135
    }
136

    
137
    @Override
138
    public void changeVacation(Long userId, VacationDay vacationDay) throws RESTFullException {
139
        this.vacationRepository.updateVacationDay(vacationDay);
140
    }
141

    
142
    @Override
143
    public void changeRequest(RequestType type, BasicRequest request) throws RESTFullException {
144
        if(RequestType.VACATION == type) {
145
            this.requestRepository.updateVacationRequest(request);
146
        } else {
147
            this.requestRepository.updateAuthorization(request);
148
        }
149
    }
150

    
151
    @Override
152
    public void deleteVacation(Long userId, Long vacationId) throws RESTFullException {
153
        this.vacationRepository.deleteVacationDay(vacationId);
154
    }
155
}
(1-1/6)