Revize d6ff5bb6
Přidáno uživatelem Dominik Poch před téměř 6 roky(ů)
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
Re #7551 Connection between database and frontend