From a36c55cf7bde5a06220ddcf44561ec4d9d823525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9ry=20Mathieu=20=28Mathius=29?= <ferymathieuy@gmail.com> Date: Mon, 6 Dec 2021 21:49:11 +0100 Subject: [PATCH] feat(tokenService): Update TokenService for reduce call to datastore --- .../webandcloud/api/controllers/v1/Posts.java | 2 +- .../webandcloud/api/controllers/v1/Users.java | 6 +++--- .../webandcloud/api/services/TokenService.java | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Posts.java b/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Posts.java index 06ffca2..50cf6c1 100644 --- a/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Posts.java +++ b/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Posts.java @@ -118,7 +118,7 @@ public class Posts extends BaseController { @Parameter(description = "Token for identify your account", example = "abcEFG145") @RequestHeader(required = false) @Nullable String token, @Parameter(description = "Payload of Post") @RequestBody @NonNull PostContent postContent) throws ResponseError { - User currentUser = tokenService.getUserRelated(token); + User currentUser = tokenService.getUserRelatedWithoutLinks(token); if (currentUser == null) throw new BadRequest("Token must be valid"); Post post = new Post(postContent, currentUser); diff --git a/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Users.java b/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Users.java index 8c3383f..a677bc4 100644 --- a/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Users.java +++ b/src/main/java/fr/univnantes/webandcloud/api/controllers/v1/Users.java @@ -98,7 +98,7 @@ public class Users extends BaseController { @Parameter(description = "Token for identify your account", example = "abcEFG145") @RequestHeader(required = false) @Nullable String token, @Parameter(description = "Payload of User") @RequestBody @NonNull UserPayload userPayload) throws ResponseError { - User currentUser = tokenService.getUserRelated(token); + User currentUser = tokenService.getUserRelatedWithoutLinks(token); if (currentUser == null) throw new BadRequest("Token must be valid"); if (!userPayload.id.equals(currentUser.getId())) @@ -155,7 +155,7 @@ public class Users extends BaseController { public Token createUser(@Parameter(description = "Payload of User") @RequestBody @NonNull UserPayload userPayload) throws ResponseError { try { - getUser(userPayload.id); + userDB.getWithoutLinks(userPayload.id); throw new BadRequest("User already exist"); } catch (NotFoundException ignored) { User user = this.userDB.add(new User(userPayload)); @@ -172,7 +172,7 @@ public class Users extends BaseController { public void disconnect( @Parameter(description = "Token for identify your account", example = "abcEFG145") @RequestHeader(required = false) @Nullable String token) throws ResponseError { - User currentUser = tokenService.getUserRelated(token); + User currentUser = tokenService.getUserRelatedWithoutLinks(token); if (currentUser == null) throw new BadRequest("Token must be valid"); tokenDB.remove(token); diff --git a/src/main/java/fr/univnantes/webandcloud/api/services/TokenService.java b/src/main/java/fr/univnantes/webandcloud/api/services/TokenService.java index 43f84e8..b522356 100644 --- a/src/main/java/fr/univnantes/webandcloud/api/services/TokenService.java +++ b/src/main/java/fr/univnantes/webandcloud/api/services/TokenService.java @@ -13,6 +13,16 @@ public class TokenService { @Autowired protected DBService<Token> tokenDB; + public Token getTokenRelatedWithoutLinks(String token) { + if (token == null) + return null; + try { + return tokenDB.getWithoutLinks(token); + } catch (ResponseError error) { + return null; + } + } + public Token getTokenRelated(String token) { if (token == null) return null; @@ -31,4 +41,9 @@ public class TokenService { Token tokenData = getTokenRelated(token); return tokenData != null ? getUserRelated(tokenData) : null; } + + public User getUserRelatedWithoutLinks(String token) { + Token tokenData = getTokenRelatedWithoutLinks(token); + return tokenData != null ? getUserRelated(tokenData) : null; + } } -- GitLab