Skip to content

Commit a605705

Browse files
committed
moved the mapping part of List<WebUserOverview> getOverview(WebUserQueryForm form) to WebUserService
1 parent e2f7b0f commit a605705

File tree

3 files changed

+28
-42
lines changed

3 files changed

+28
-42
lines changed

src/main/java/de/rwth/idsg/steve/repository/WebUserRepository.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@
1919
package de.rwth.idsg.steve.repository;
2020

2121
import jooq.steve.db.tables.records.WebUserRecord;
22-
import de.rwth.idsg.steve.repository.dto.WebUserOverview;
22+
import de.rwth.idsg.steve.service.dto.WebUserOverview;
2323
import de.rwth.idsg.steve.web.dto.WebUserQueryForm;
2424
import java.util.List;
25+
import org.jooq.JSON;
26+
import org.jooq.Record4;
27+
import org.jooq.Result;
2528

2629
public interface WebUserRepository {
2730

@@ -44,6 +47,7 @@ public interface WebUserRepository {
4447
WebUserRecord loadUserByUsePk(Integer webUserPk);
4548
WebUserRecord loadUserByUsername(String username);
4649

47-
List<WebUserOverview> getOverview(WebUserQueryForm form);
50+
//List<WebUserOverview> getOverview(WebUserQueryForm form);
51+
Result<Record4<Integer, String, Boolean, JSON>> getOverview(WebUserQueryForm form);
4852

4953
}

src/main/java/de/rwth/idsg/steve/repository/impl/WebUserRepositoryImpl.java

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,8 @@
1818
*/
1919
package de.rwth.idsg.steve.repository.impl;
2020

21-
import com.fasterxml.jackson.core.JsonProcessingException;
22-
import com.fasterxml.jackson.databind.ObjectMapper;
2321
import de.rwth.idsg.steve.repository.WebUserRepository;
24-
import de.rwth.idsg.steve.repository.dto.WebUserOverview;
2522
import de.rwth.idsg.steve.web.dto.WebUserQueryForm;
26-
import java.util.List;
2723
import jooq.steve.db.tables.records.WebUserRecord;
2824
import lombok.RequiredArgsConstructor;
2925
import lombok.extern.slf4j.Slf4j;
@@ -48,7 +44,6 @@
4844
public class WebUserRepositoryImpl implements WebUserRepository {
4945

5046
private final DSLContext ctx;
51-
private final ObjectMapper jacksonObjectMapper;
5247

5348
@Override
5449
public void createUser(WebUserRecord user) {
@@ -141,29 +136,9 @@ public WebUserRecord loadUserByUsePk(Integer webUserPk) {
141136
.where(WEB_USER.WEB_USER_PK.eq(webUserPk))
142137
.fetchOne();
143138
}
144-
139+
145140
@Override
146-
public List<WebUserOverview> getOverview(WebUserQueryForm form) {
147-
return getOverviewInternal(form)
148-
.map(r -> WebUserOverview.builder()
149-
.webUserPk(r.value1())
150-
.webusername(r.value2())
151-
.enabled(r.value3())
152-
.autorithies(fromJson(r.value4()))
153-
.build()
154-
);
155-
}
156-
157-
private String[] fromJson(JSON jsonArray) {
158-
try {
159-
return jacksonObjectMapper.readValue(jsonArray.data(), String[].class);
160-
} catch (JsonProcessingException e) {
161-
throw new RuntimeException(e);
162-
}
163-
}
164-
165-
@SuppressWarnings("unchecked")
166-
private Result<Record4<Integer, String, Boolean, JSON>> getOverviewInternal(WebUserQueryForm form) {
141+
public Result<Record4<Integer, String, Boolean, JSON>> getOverview(WebUserQueryForm form) {
167142
SelectQuery selectQuery = ctx.selectQuery();
168143
selectQuery.addFrom(WEB_USER);
169144
selectQuery.addSelect(
@@ -174,7 +149,7 @@ private Result<Record4<Integer, String, Boolean, JSON>> getOverviewInternal(WebU
174149
);
175150

176151
if (form.isSetWebusername()) {
177-
selectQuery.addConditions(WEB_USER.USERNAME.eq(form.getWebusername()));
152+
selectQuery.addConditions(WEB_USER.USERNAME.eq(form.getWebUsername()));
178153
}
179154

180155
if (form.isSetEnabled()) {
@@ -184,8 +159,8 @@ private Result<Record4<Integer, String, Boolean, JSON>> getOverviewInternal(WebU
184159
if (form.isSetRoles()) {
185160
String[] roles = form.getRoles().split(","); //Semicolon seperated String to StringArray
186161
for (String role : roles) {
187-
JSON authValue = JSON.json("\"" + role.strip() + "\"");
188-
selectQuery.addConditions(condition("json_contains({0}, {1})", WEB_USER.AUTHORITIES, authValue)); // strip--> No Withspace
162+
JSON authValue = JSON.json("\"" + role.strip() + "\""); // strip --> No Withspace
163+
selectQuery.addConditions(condition("json_contains({0}, {1})", WEB_USER.AUTHORITIES, authValue));
189164
}
190165
}
191166

src/main/java/de/rwth/idsg/steve/service/WebUserService.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import de.rwth.idsg.steve.SteveConfiguration;
2424
import de.rwth.idsg.steve.SteveException;
2525
import de.rwth.idsg.steve.repository.WebUserRepository;
26-
import de.rwth.idsg.steve.repository.dto.WebUserOverview;
26+
import de.rwth.idsg.steve.service.dto.WebUserOverview;
2727
import de.rwth.idsg.steve.web.dto.WebUserForm;
2828
import de.rwth.idsg.steve.web.dto.WebUserQueryForm;
2929
import java.util.ArrayList;
@@ -171,24 +171,32 @@ public void add(WebUserForm form) {
171171
public void update(WebUserForm form) {
172172
updateUser(toUserDetails(form));
173173
}
174-
174+
175175
public List<WebUserOverview> getOverview(WebUserQueryForm form) {
176-
return webUserRepository.getOverview(form);
176+
return webUserRepository.getOverview(form)
177+
.map(r -> WebUserOverview.builder()
178+
.webUserPk(r.value1())
179+
.webUsername(r.value2())
180+
.enabled(r.value3())
181+
.authorities(fromJson(r.value4()))
182+
.build()
183+
);
177184
}
178185

179-
public WebUserForm getDetails(Integer webuserpk) {
180-
WebUserRecord ur = webUserRepository.loadUserByUsePk(webuserpk);
186+
187+
public WebUserForm getDetails(Integer webUserPk) {
188+
WebUserRecord ur = webUserRepository.loadUserByUsePk(webUserPk);
181189

182190
if (ur == null) {
183-
throw new SteveException("There is no user with id '%d'", webuserpk);
191+
throw new SteveException("There is no user with id '%d'", webUserPk);
184192
}
185193

186194
WebUserForm form = new WebUserForm();
187195

188196
form.setEnabled(ur.getEnabled());
189-
form.setWebusername(ur.getUsername());
197+
form.setWebUsername(ur.getUsername());
190198
form.setPassword(ur.getPassword());
191-
form.setApitoken(ur.getApiToken());
199+
form.setApiToken(ur.getApiToken());
192200
form.setAuthorities(rolesStr(fromJson(ur.getAuthorities())));
193201

194202
return form;
@@ -224,15 +232,14 @@ private UserDetails toUserDetails(WebUserForm form) {
224232
encPw = encoder.encode(form.getPassword());
225233
}
226234
var user = User
227-
.withUsername(form.getWebusername())
235+
.withUsername(form.getWebUsername())
228236
.password(encPw)
229237
.disabled(!form.getEnabled())
230238
.authorities(toAuthorities(form.getAuthorities()))
231239
.build();
232240
return user;
233241
}
234242

235-
236243
private String[] fromJson(JSON jsonArray) {
237244
try {
238245
return jacksonObjectMapper.readValue(jsonArray.data(), String[].class);

0 commit comments

Comments
 (0)