Projekt

Obecné

Profil

« Předchozí | Další » 

Revize d6ff5bb6

Přidáno uživatelem Dominik Poch před téměř 6 roky(ů)

Re #7551 Connection between database and frontend

Zobrazit rozdíly:

server/init.sql
121 121
  DECLARE notification DATETIME;
122 122

  
123 123
  SELECT no_sick_days, alert INTO sickDaysCount, notification FROM default_settings ORDER BY id DESC LIMIT 1;
124
  SELECT EU.id, EU.first_name, EU.last_name, EU.no_vacations, IFNULL(EU.no_sick_days, sickDaysCount), EU.taken_sick_days, IFNULL(EU.alert, notification), EU.email, EU.photo, EU.creation_date, R.name, APS.name
124
  SELECT u.id, u.first_name, u.last_name, u.no_vacations, IFNULL(u.no_sick_days, sickDaysCount), u.taken_sick_days, IFNULL(u.alert, notification), u.email, u.photo, u.creation_date, r.name, s.name
125 125
     INTO out_id, out_first_name, out_last_name, out_no_vacations, out_no_sick_days, out_taken_sick_days, out_alert, out_email, out_photo, out_creation_date, out_role, out_status
126
     FROM end_user EU
127
     INNER JOIN role R ON EU.role_id=R.id
128
     INNER JOIN approval_status APS ON EU.status_id=APS.id
129
     WHERE EU.id=in_id;
126
     FROM end_user u
127
     INNER JOIN role r ON u.role_id=r.id
128
     INNER JOIN approval_status s ON u.status_id=s.id
129
     WHERE u.id=in_id;
130 130
END $$
131 131

  
132 132
DROP PROCEDURE IF EXISTS GetUserToken $$
......
149 149
  DECLARE notification DATETIME;
150 150

  
151 151
  SELECT no_sick_days, alert INTO sickDaysCount, notification FROM default_settings ORDER BY id DESC LIMIT 1;
152
  SELECT EU.id, EU.first_name, EU.last_name, EU.no_vacations, IFNULL(EU.no_sick_days, sickDaysCount), EU.taken_sick_days, IFNULL(EU.alert, notification), EU.email, EU.photo, EU.creation_date, R.name, APS.name
152
  SELECT u.id, u.first_name, u.last_name, u.no_vacations, IFNULL(u.no_sick_days, sickDaysCount), u.taken_sick_days, IFNULL(u.alert, notification), u.email, u.photo, u.creation_date, r.name, s.name
153 153
     INTO out_id, out_first_name, out_last_name, out_no_vacations, out_no_sick_days, out_taken_sick_days, out_alert, out_email, out_photo, out_creation_date, out_role, out_status
154
     FROM end_user EU
155
     INNER JOIN role R ON EU.role_id=R.id
156
     INNER JOIN approval_status APS ON EU.status_id=APS.id
157
     WHERE EU.token=p_token;
154
     FROM end_user u
155
     INNER JOIN role r ON u.role_id=r.id
156
     INNER JOIN approval_status s ON u.status_id=s.id
157
     WHERE u.token=p_token;
158 158
END $$
159 159

  
160 160
DELIMITER ;
......
182 182
-- Insert table end_user
183 183
-- -----------------------------------------------------
184 184
INSERT INTO end_user (first_name, last_name, no_vacations, no_sick_days, taken_sick_days, alert, token, email, photo, role_id, status_id) VALUES ('admin', 'admin', 0, NULL, 0, NULL, '', '', '', 2, 1);
185
INSERT INTO end_user (first_name, last_name, no_vacations, no_sick_days, taken_sick_days, alert, token, email, photo, role_id, status_id) VALUES ('test', 'test', 0, NULL, 0, NULL, '', '', '', 1, 2);
185 186

  
186 187
-- -----------------------------------------------------
187 188
-- Insert table vacation_day
server/src/main/java/cz/zcu/yamanager/business/ApiManager.java
6 6
import cz.zcu.yamanager.repository.VacationRepository;
7 7
import cz.zcu.yamanager.ws.rest.RESTFullException;
8 8
import org.apache.tomcat.jni.Local;
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
9 11
import org.springframework.beans.factory.annotation.Autowired;
10 12
import org.springframework.jdbc.core.JdbcTemplate;
11 13
import org.springframework.stereotype.Component;
......
17 19
@Component
18 20
public class ApiManager implements Manager {
19 21

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

  
20 27
    private static final int DAYS_IN_WEEK = 7;
21 28

  
22 29
    private RequestRepository requestRepository;
......
32 39

  
33 40
    @Override
34 41
    public List<BasicProfileUser> getUsers(Status status) throws RESTFullException {
35
        List<BasicProfileUser> users = this.userRepository.getAllBasicUsers();
36
        LocalDate today = LocalDate.now();
37
        LocalDate weekBefore = today.minusDays(ApiManager.DAYS_IN_WEEK);
38
        LocalDate weekAfter = today.plusDays(ApiManager.DAYS_IN_WEEK);
39
        for (BasicProfileUser user : users) {
40
            user.setCalendar(this.vacationRepository.getVacationDays(user.getId(), weekBefore, weekAfter));
42
        List<BasicProfileUser> users;
43
        if(status == null) {
44
            users = this.userRepository.getAllBasicUsers();
45
        } else {
46
            users = this.userRepository.getAllBasicUsers(status);
41 47
        }
42 48

  
43
        return users;
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
        }
44 61
    }
45 62

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

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

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

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

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

  
......
69 100

  
70 101
    @Override
71 102
    public List<VacationDay> getUserCalendar(Long userId, LocalDate fromDate, LocalDate toDate, Status status) throws RESTFullException {
72
        List<VacationDay> vacations = this.vacationRepository.getVacationDays(userId, fromDate, toDate, status);
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

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

  
......
85 126

  
86 127
    @Override
87 128
    public void changeSettings(Long userId, UserSettings settings) throws RESTFullException {
88
        this.userRepository.updateUserSettings(settings);
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
        }
89 135
    }
90 136

  
91 137
    @Override
......
100 146
        } else {
101 147
            this.requestRepository.updateAuthorization(request);
102 148
        }
103

  
104 149
    }
105 150

  
106 151
    @Override
server/src/main/java/cz/zcu/yamanager/dto/VacationType.java
1 1
package cz.zcu.yamanager.dto;
2 2

  
3 3
public enum VacationType {
4
    VACATION, SICKDAY;
4
    SICKDAY, VACATION;
5 5

  
6 6
    public static VacationType getVacationType(String type) {
7 7
        if (type == null || type.isEmpty()) return null;
server/src/main/java/cz/zcu/yamanager/repository/RequestRepository.java
7 7
import org.springframework.jdbc.core.JdbcTemplate;
8 8
import org.springframework.stereotype.Repository;
9 9

  
10
import java.security.InvalidParameterException;
10 11
import java.sql.ResultSet;
12
import java.sql.Time;
11 13
import java.util.List;
12 14

  
13 15
/**
......
42 44
    public List<AuthorizationRequest> getAllAuthorizations() {
43 45
        log.trace("Selecting all authorization requests from a database.");
44 46

  
45
        return jdbc.query("SELECT EU.id, EU.first_name, EU.last_name, EU.creation_date, APS.name " +
46
                "FROM end_user EU " +
47
                "INNER JOIN approval_status APS ON EU.status_id = APS.id",
47
        return jdbc.query("SELECT u.id, u.first_name, u.last_name, u.creation_date, s.name " +
48
                "FROM end_user u " +
49
                "INNER JOIN approval_status s ON u.status_id = s.id",
48 50
                (ResultSet rs, int rowNum) -> {
49
            AuthorizationRequest request = new AuthorizationRequest();
50
            request.setId(rs.getLong("EU.id"));
51
            request.setFirstName(rs.getString("EU.first_name"));
52
            request.setLastName(rs.getString("EU.last_name"));
53
            request.setStatus(Status.getStatus(rs.getString("APS.name")));
54
            request.setTimestamp(rs.getTimestamp("EU.creation_date").toLocalDateTime());
55
            return request;
56
        });
51
                    AuthorizationRequest request = new AuthorizationRequest();
52
                    request.setId(rs.getLong("u.id"));
53
                    request.setFirstName(rs.getString("u.first_name"));
54
                    request.setLastName(rs.getString("u.last_name"));
55
                    request.setStatus(Status.getStatus(rs.getString("s.name")));
56
                    request.setTimestamp(rs.getTimestamp("u.creation_date").toLocalDateTime());
57
                    return request;
58
                });
57 59
    }
58 60

  
59 61
    /**
......
64 66
    public List<AuthorizationRequest> getAllAuthorizations(Status status) {
65 67
        log.debug("Selecting all authorization requests from a database with requested status: {}", status);
66 68

  
67
        return jdbc.query("SELECT EU.id, EU.first_name, EU.last_name, EU.creation_date " +
68
                "FROM end_user EU " +
69
                "INNER JOIN approval_status APS ON EU.status_id = APS.id " +
70
                "WHERE APS.name=?",
69
        if(status == null) throw new InvalidParameterException();
70
        return jdbc.query("SELECT u.id, u.first_name, u.last_name, u.creation_date, s.name " +
71
                "FROM end_user u " +
72
                "INNER JOIN approval_status s ON u.status_id = s.id " +
73
                "WHERE s.name = ?",
71 74
                new Object[]{status.name()},
72 75
                (ResultSet rs, int rowNum) -> {
73
            AuthorizationRequest request = new AuthorizationRequest();
74
            request.setId(rs.getLong("EU.id"));
75
            request.setFirstName(rs.getString("EU.first_name"));
76
            request.setLastName(rs.getString("EU.last_name"));
77
            request.setStatus(status);
78
            request.setTimestamp(rs.getTimestamp("EU.creation_date").toLocalDateTime());
79
            return request;
80
        });
76
                    AuthorizationRequest request = new AuthorizationRequest();
77
                    request.setId(rs.getLong("u.id"));
78
                    request.setFirstName(rs.getString("u.first_name"));
79
                    request.setLastName(rs.getString("u.last_name"));
80
                    request.setStatus(Status.getStatus(rs.getString("s.name")));
81
                    request.setTimestamp(rs.getTimestamp("u.creation_date").toLocalDateTime());
82
                    return request;
83
                });
81 84
    }
82 85

  
83 86
    /**
......
114 117
    public List<VacationRequest> getAllVacationRequests() {
115 118
        log.trace("Selecting all vacation requests from a database.");
116 119

  
117
        return jdbc.query("SELECT VD.id, VD.vacation_date, VD.time_from, VD.time_to, VD.creation_date, VT.name, APS.name, EU.first_name, EU.last_name " +
118
                "FROM vacation_day VD " +
119
                "INNER JOIN vacation_type VT on VD.type_id=VT.id " +
120
                "INNER JOIN approval_status APS ON VD.status_id=APS.id" +
121
                "INNER JOIN end_user EU ON VD.user_id=EU.id",
120
        return jdbc.query("SELECT v.id, v.vacation_date, v.time_from, v.time_to, v.creation_date, t.name, s.name, u.first_name, u.last_name " +
121
                "FROM vacation_day v " +
122
                "INNER JOIN vacation_type t on v.type_id = t.id " +
123
                "INNER JOIN approval_status s ON v.status_id = s.id " +
124
                "INNER JOIN end_user u ON v.user_id = u.id",
122 125
                (ResultSet rs, int rowNum) -> {
123
            VacationRequest request = new VacationRequest();
124
            request.setId(rs.getLong("VD.id"));
125
            request.setFirstName(rs.getString("EU.first_name"));
126
            request.setLastName(rs.getString("EU.last_name"));
127
            request.setDate(rs.getDate("VD.vacation_date").toLocalDate());
128
            request.setFrom(rs.getTime("VD.time_from").toLocalTime());
129
            request.setTo(rs.getTime("VD.time_to").toLocalTime());
130
            request.setType(VacationType.getVacationType("VT.name"));
131
            request.setStatus(Status.getStatus("APS.name"));
132
            return request;
133
        });
126
                    VacationRequest request = new VacationRequest();
127
                    request.setId(rs.getLong("v.id"));
128
                    request.setFirstName(rs.getString("u.first_name"));
129
                    request.setLastName(rs.getString("u.last_name"));
130
                    request.setDate(rs.getDate("v.vacation_date").toLocalDate());
131
                    Time timeFrom = rs.getTime("v.time_from");
132
                    if(timeFrom != null) {
133
                        request.setFrom(timeFrom.toLocalTime());
134
                    }
135

  
136
                    Time timeTo = rs.getTime("v.time_to");
137
                    if(timeTo != null) {
138
                        request.setTo(timeTo.toLocalTime());
139
                    }
140
                    request.setTimestamp(rs.getTimestamp("v.creation_date").toLocalDateTime());
141
                    request.setType(VacationType.getVacationType(rs.getString("t.name")));
142
                    request.setStatus(Status.getStatus(rs.getString("s.name")));
143
                    return request;
144
                });
134 145
    }
135 146

  
136 147
    /**
......
141 152
    public List<VacationRequest> getAllVacationRequests(Status status) {
142 153
        log.debug("Selecting all vacation requests from a database with requested status: {}", status);
143 154

  
144
        return jdbc.query("SELECT VD.id, VD.vacation_date, VD.time_from, VD.time_to, VD.creation_date, VT.name, APS.name, EU.first_name, EU.last_name " +
145
                "FROM vacation_day VD " +
146
                "INNER JOIN vacation_type VT on VD.type_id=VT.id " +
147
                "INNER JOIN approval_status APS ON VD.status_id=APS.id" +
148
                "INNER JOIN end_user EU ON VD.user_id=EU.id" +
149
                "WHERE APS.name=?",
155
        if(status == null) throw new InvalidParameterException();
156
        return jdbc.query("SELECT v.id, v.vacation_date, v.time_from, v.time_to, v.creation_date, t.name, s.name, u.first_name, u.last_name " +
157
                "FROM vacation_day v " +
158
                "INNER JOIN vacation_type t on v.type_id = t.id " +
159
                "INNER JOIN approval_status s ON v.status_id = s.id " +
160
                "INNER JOIN end_user u ON v.user_id = u.id " +
161
                "WHERE s.name=?",
150 162
                new Object[]{status.name()},
151 163
                (ResultSet rs, int rowNum) -> {
152
            VacationRequest request = new VacationRequest();
153
            request.setId(rs.getLong("VD.id"));
154
            request.setFirstName(rs.getString("EU.first_name"));
155
            request.setLastName(rs.getString("EU.last_name"));
156
            request.setDate(rs.getDate("VD.vacation_date").toLocalDate());
157
            request.setFrom(rs.getTime("VD.time_from").toLocalTime());
158
            request.setTo(rs.getTime("VD.time_to").toLocalTime());
159
            request.setType(VacationType.getVacationType("VT.name"));
160
            request.setStatus(status);
161
            return request;
162
        });
164
                    VacationRequest request = new VacationRequest();
165
                    request.setId(rs.getLong("v.id"));
166
                    request.setFirstName(rs.getString("u.first_name"));
167
                    request.setLastName(rs.getString("u.last_name"));
168
                    request.setDate(rs.getDate("v.vacation_date").toLocalDate());
169
                    Time timeFrom = rs.getTime("v.time_from");
170
                    if(timeFrom != null) {
171
                        request.setFrom(timeFrom.toLocalTime());
172
                    }
173

  
174
                    Time timeTo = rs.getTime("v.time_to");
175
                    if(timeTo != null) {
176
                        request.setTo(timeTo.toLocalTime());
177
                    }
178

  
179
                    request.setTimestamp(rs.getTimestamp("v.creation_date").toLocalDateTime());
180
                    request.setType(VacationType.getVacationType(rs.getString("t.name")));
181
                    request.setStatus(Status.getStatus(rs.getString("s.name")));
182
                    return request;
183
                });
163 184
    }
164 185

  
165 186
    /**
server/src/main/java/cz/zcu/yamanager/repository/UserRepository.java
49 49
        });
50 50
    }
51 51

  
52
    public List<BasicProfileUser> getAllBasicUsers(Status status) {
53
        if(status == null) throw new IllegalArgumentException();
54

  
55
        return jdbc.query("SELECT u.id, u.first_name, u.last_name, u.photo" +
56
                "FROM end_user u " +
57
                "INNER JOIN approval_status s ON u.status_id = s.id " +
58
                "WHERE s.name = ?",
59
                new Object[]{status.name()}, (ResultSet rs, int rowNum) -> {
60
            BasicProfileUser user = new BasicProfileUser();
61
            user.setId(rs.getLong("u.id"));
62
            user.setFirstName(rs.getString("u.first_name"));
63
            user.setLastName(rs.getString("u.last_name"));
64
            user.setPhoto(rs.getString("u.photo"));
65
            return user;
66
        });
67
    }
68

  
52 69
    public FullUserProfile getFullUser(long id) {
53 70
        List<SqlParameter> paramList = new ArrayList<>();
54 71
        paramList.add(new SqlParameter("in_id", Types.BIGINT));
......
160 177
        });
161 178
    }
162 179

  
180
    public void updateNotification(UserSettings settings) {
181
        jdbc.update("UPDATE end_user SET alert = ? WHERE id = ?", settings.getNotification(), settings.getId());
182
    }
183

  
163 184
    public void updateUserSettings(UserSettings settings) {
164
        jdbc.update("UPDATE end_user EU, role R SET EU.no_vacations=?, EU.no_sick_days=?, EU.role_id=R.id WHERE EU.id = ? AND R.name=?",
185
        jdbc.update("UPDATE end_user u, role r SET u.no_vacations=?, u.no_sick_days=?, u.role_id=r.id WHERE u.id = ? AND r.name=?",
165 186
                settings.getVacationCount(), settings.getSickdayCount(), settings.getId(), settings.getRole().name());
166 187
    }
167 188

  
server/src/main/java/cz/zcu/yamanager/repository/VacationRepository.java
11 11
import org.springframework.stereotype.Repository;
12 12

  
13 13
import java.sql.ResultSet;
14
import java.sql.Time;
14 15
import java.time.LocalDate;
15 16
import java.util.List;
16 17

  
......
73 74
    }
74 75

  
75 76
    public List<VacationDay> getVacationDays(long userId, LocalDate from) {
76
        return jdbc.query("SELECT VD.vacation_date, VD.time_from, VD.time_to, VT.name, APS.name " +
77
                        "FROM vacation_day VD " +
78
                        "INNER JOIN end_user EU ON VD.user_id = EU.id " +
79
                        "INNER JOIN vacation_type VT ON VD.type_id = VT.id " +
80
                        "INNER JOIN approval_status APS ON VD.status_id = APS.id " +
81
                        "WHERE VD.user_id = ? AND VD.vacation_date >= ?",
77
        return jdbc.query("SELECT v.vacation_date, v.time_from, v.time_to, t.name, s.name " +
78
                        "FROM vacation_day v " +
79
                        "INNER JOIN end_user u ON v.user_id = u.id " +
80
                        "INNER JOIN vacation_type t ON v.type_id = t.id " +
81
                        "INNER JOIN approval_status s ON v.status_id = s.id " +
82
                        "WHERE v.user_id = ? AND v.vacation_date >= ?",
82 83
                new Object[]{userId, from}, (ResultSet rs, int rowNum) -> {
83 84
                    VacationDay item = new VacationDay();
84
                    item.setDate(rs.getDate("VD.vacation_date").toLocalDate());
85
                    item.setFrom(rs.getTime("VD.time_from").toLocalTime());
86
                    item.setTo(rs.getTime("VD.time_to").toLocalTime());
87
                    item.setType(VacationType.getVacationType(rs.getString("VT.name")));
88
                    item.setStatus(Status.getStatus(rs.getString("APS.name")));
85
                    item.setDate(rs.getDate("v.vacation_date").toLocalDate());
86
                    Time timeFrom = rs.getTime("v.time_from");
87
                    if(timeFrom != null) {
88
                        item.setFrom(timeFrom.toLocalTime());
89
                    }
90

  
91
                    Time timeTo = rs.getTime("v.time_to");
92
                    if(timeTo != null) {
93
                        item.setTo(timeTo.toLocalTime());
94
                    }
95
                    item.setType(VacationType.getVacationType(rs.getString("t.name")));
96
                    item.setStatus(Status.getStatus(rs.getString("s.name")));
97
                    return item;
98
                });
99
    }
100

  
101
    public List<VacationDay> getVacationDays(long userId, LocalDate from, Status status) {
102
        if(status == null) throw new IllegalArgumentException();
103

  
104
        return jdbc.query("SELECT v.vacation_date, v.time_from, v.time_to, t.name, s.name " +
105
                        "FROM vacation_day v " +
106
                        "INNER JOIN end_user u ON v.user_id = u.id " +
107
                        "INNER JOIN vacation_type t ON v.type_id = t.id " +
108
                        "INNER JOIN approval_status s ON v.status_id = s.id " +
109
                        "WHERE v.user_id = ? AND v.vacation_date >= ? AND s.name = ?",
110
                new Object[]{userId, from, status.name()}, (ResultSet rs, int rowNum) -> {
111
                    VacationDay item = new VacationDay();
112
                    item.setDate(rs.getDate("v.vacation_date").toLocalDate());
113
                    Time timeFrom = rs.getTime("v.time_from");
114
                    if(timeFrom != null) {
115
                        item.setFrom(timeFrom.toLocalTime());
116
                    }
117

  
118
                    Time timeTo = rs.getTime("v.time_to");
119
                    if(timeTo != null) {
120
                        item.setTo(timeTo.toLocalTime());
121
                    }
122
                    item.setType(VacationType.getVacationType(rs.getString("t.name")));
123
                    item.setStatus(Status.getStatus(rs.getString("s.name")));
89 124
                    return item;
90 125
                });
91 126
    }
92 127

  
93 128
    public List<VacationDay> getVacationDays(long userId, LocalDate from, LocalDate to) {
94
        return jdbc.query("SELECT VD.vacation_date, VD.time_from, VD.time_to, VT.name, APS.name " +
95
                        "FROM vacation_day VD " +
96
                        "INNER JOIN end_user EU ON VD.user_id = EU.id " +
97
                        "INNER JOIN vacation_type VT ON VD.type_id = VT.id " +
98
                        "INNER JOIN approval_status APS ON VD.status_id = APS.id " +
99
                        "WHERE VD.user_id=? AND VD.vacation_date >= ? AND VD.vacation_date <= ?",
129
        return jdbc.query("SELECT v.vacation_date, v.time_from, v.time_to, t.name, s.name " +
130
                        "FROM vacation_day v " +
131
                        "INNER JOIN end_user u ON v.user_id = u.id " +
132
                        "INNER JOIN vacation_type t ON v.type_id = t.id " +
133
                        "INNER JOIN approval_status s ON v.status_id = s.id " +
134
                        "WHERE v.user_id=? AND v.vacation_date >= ? AND v.vacation_date <= ?",
100 135
                new Object[]{userId, from, to}, (ResultSet rs, int rowNum) -> {
101 136
                    VacationDay item = new VacationDay();
102
                    item.setDate(rs.getDate("VD.vacation_date").toLocalDate());
103
                    item.setFrom(rs.getTime("VD.time_from").toLocalTime());
104
                    item.setTo(rs.getTime("VD.time_to").toLocalTime());
105
                    item.setType(VacationType.getVacationType(rs.getString("VT.name")));
106
                    item.setStatus(Status.getStatus(rs.getString("APS.name")));
137
                    item.setDate(rs.getDate("v.vacation_date").toLocalDate());
138
                    Time timeFrom = rs.getTime("v.time_from");
139
                    if(timeFrom != null) {
140
                        item.setFrom(timeFrom.toLocalTime());
141
                    }
142

  
143
                    Time timeTo = rs.getTime("v.time_to");
144
                    if(timeTo != null) {
145
                        item.setTo(timeTo.toLocalTime());
146
                    }
147
                    item.setType(VacationType.getVacationType(rs.getString("t.name")));
148
                    item.setStatus(Status.getStatus(rs.getString("s.name")));
107 149
                    return item;
108 150
                });
151

  
109 152
    }
110 153

  
111 154
    public List<VacationDay> getVacationDays(long userId, LocalDate from, LocalDate to, Status status) {
112
        return jdbc.query("SELECT VD.vacation_date, VD.time_from, VD.time_to, VT.name, APS.name " +
113
                        "FROM vacation_day VD " +
114
                        "INNER JOIN end_user EU ON VD.user_id = EU.id " +
115
                        "INNER JOIN vacation_type VT ON VD.type_id = VT.id " +
116
                        "INNER JOIN approval_status APS ON VD.status_id = APS.id " +
117
                        "WHERE VD.user_id=? AND VD.vacation_date >= ? AND VD.vacation_date <= ? AND APS.name = ?",
155
        if(status == null) throw new IllegalArgumentException();
156

  
157
        return jdbc.query("SELECT v.vacation_date, v.time_from, v.time_to, t.name, s.name " +
158
                        "FROM vacation_day v " +
159
                        "INNER JOIN end_user u ON v.user_id = u.id " +
160
                        "INNER JOIN vacation_type t ON v.type_id = t.id " +
161
                        "INNER JOIN approval_status s ON v.status_id = s.id " +
162
                        "WHERE v.user_id=? AND v.vacation_date >= ? AND v.vacation_date <= ? AND s.name = ?",
118 163
                new Object[]{userId, from, to, status.name()}, (ResultSet rs, int rowNum) -> {
119 164
                    VacationDay item = new VacationDay();
120
                    item.setDate(rs.getDate("VD.vacation_date").toLocalDate());
121
                    item.setFrom(rs.getTime("VD.time_from").toLocalTime());
122
                    item.setTo(rs.getTime("VD.time_to").toLocalTime());
123
                    item.setType(VacationType.getVacationType(rs.getString("VT.name")));
124
                    item.setStatus(Status.getStatus(rs.getString("APS.name")));
165
                    item.setDate(rs.getDate("v.vacation_date").toLocalDate());
166

  
167
                    Time timeFrom = rs.getTime("v.time_from");
168
                    if(timeFrom != null) {
169
                        item.setFrom(timeFrom.toLocalTime());
170
                    }
171

  
172
                    Time timeTo = rs.getTime("v.time_to");
173
                    if(timeTo != null) {
174
                        item.setTo(timeTo.toLocalTime());
175
                    }
176

  
177
                    item.setType(VacationType.getVacationType(rs.getString("t.name")));
178
                    item.setStatus(Status.getStatus(rs.getString("s.name")));
125 179
                    return item;
126 180
                });
127 181
    }
128 182

  
129 183
    public void insertVacationDay(Long userId, VacationDay day) {
130 184
        jdbc.update("INSERT INTO vacation_day (vacation_date, time_from, time_to, user_id, status_id, type_id) VALUES (?,?,?,?,?,?)",
131
                day.getDate(), day.getFrom(), day.getTo(), userId, day.getStatus().ordinal(), day.getType().ordinal());
185
                day.getDate(), day.getFrom(), day.getTo(), userId, 2, day.getType().ordinal() + 1);
132 186
    }
133 187

  
134 188
    public void updateVacationDay(VacationDay item) {
135 189
        jdbc.update("UPDATE vacation_day SET vacation_date=?, time_from=?, time_to=?, status_id=?, type_id=? WHERE id=?",
136
                item.getDate(), item.getFrom(), item.getTo(), item.getStatus().ordinal(), item.getType().ordinal(), item.getId());
190
                item.getDate(), item.getFrom(), item.getTo(), item.getStatus().ordinal() + 1, item.getType().ordinal() + 1, item.getId());
137 191
    }
138 192

  
139 193
    public void deleteVacationDay(long id) {
server/src/main/java/cz/zcu/yamanager/ws/rest/ApiController.java
121 121
            @RequestParam(value = "lang", required = false) String lang,
122 122
            @RequestParam(value = "status", required = false) String status)
123 123
    {
124
        System.out.println("/users");
124 125
        return handle(getLanguage(lang), () ->
125 126
                manager.getUsers(getStatus(status))
126 127
        );
......
131 132
            @RequestParam(value = "lang", required = false) String lang,
132 133
            @RequestParam(value = "status", required = false) String status)
133 134
    {
135
        System.out.println("/users/requests/vacation");
136
        System.out.println("Status" + status);
134 137
        return handle(getLanguage(lang), () ->
135 138
                manager.getVacationRequests(getStatus(status))
136 139
        );
......
141 144
            @RequestParam(value = "lang", required = false) String lang,
142 145
            @RequestParam(value = "status", required = false) String status)
143 146
    {
147
        System.out.println("/users/requests/authorization");
144 148
        return handle(getLanguage(lang), () ->
145 149
                manager.getAuthorizationRequests(getStatus(status))
146 150
         );
......
151 155
            @PathVariable("id") String id,
152 156
            @RequestParam(value = "lang", required = false) String lang)
153 157
    {
158
        System.out.println("/user/{id}/profile");
154 159
        return handle(getLanguage(lang), () ->
155 160
                manager.getUserProfile(getUserId(id))
156 161
        );
......
164 169
            @RequestParam(value = "to", required = false) String to,
165 170
            @RequestParam(value = "status", required = false) String status)
166 171
    {
172
        System.out.println("user/id/calendar");
167 173
        return handle(getLanguage(lang), () -> {
168 174
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
169 175
            LocalDate fromDate = LocalDate.parse(from, formatter);
......
176 182
    public ResponseEntity settings(
177 183
            @RequestParam(value = "lang", required = false) String lang)
178 184
    {
185
        System.out.println("/settings");
179 186
        return handle(getLanguage(lang), () ->
180 187
                manager.getDefaultSettings()
181 188
        );
......
188 195
            @RequestParam(value = "lang", required = false) String lang,
189 196
            @RequestBody DefaultSettings settings)
190 197
    {
198
        System.out.println("POST /settings");
191 199
        return handle(getLanguage(lang), () ->
192 200
                manager.createSettings(settings)
193 201
        );
......
198 206
            @RequestParam(value = "lang", required = false) String lang,
199 207
            @RequestBody VacationDay vacationDay)
200 208
    {
209
        System.out.println("/user/calendar/create");
201 210
        return handle(getLanguage(lang), () ->
202 211
                manager.createVacation(getUserId("me"), vacationDay)
203 212
        );
......
211 220
            @RequestParam(value = "lang", required = false) String lang,
212 221
            @RequestBody UserSettings settings)
213 222
    {
223
        System.out.println("/user/settings");
224
        System.out.println(settings.getNotification());
214 225
        return handle(getLanguage(lang), () ->
215 226
                manager.changeSettings(getUserId(settings.getId()), settings)
216 227
        );
......
221 232
            @RequestParam(value = "lang", required = false) String lang,
222 233
            @RequestBody VacationDay vacationDay)
223 234
    {
235
        System.out.println("/user/calendar/edit");
224 236
        return handle(getLanguage(lang), () ->
225 237
                manager.changeVacation(getUserId("me"), vacationDay)
226 238
        );
......
232 244
            @RequestParam(value = "type", required = true) String type,
233 245
            @RequestBody BasicRequest request)
234 246
    {
247
        System.out.println("/user/requests");
235 248
        return handle(getLanguage(lang), () ->
236 249
                manager.changeRequest(getType(type), request)
237 250
        );
......
244 257
            @PathVariable("id") String id,
245 258
            @RequestParam(value = "lang", required = false) String lang)
246 259
    {
260
        System.out.println("/calendar/{id}/delete");
247 261
        return handle(getLanguage(lang), () ->
248 262
            manager.deleteVacation(getUserId("me"), StringUtils.isNumeric(id) ? Long.parseLong(id) : -1)
249 263
        );

Také k dispozici: Unified diff