From c04a939737ee9a97e45721e94fb6d77c898719c8 Mon Sep 17 00:00:00 2001
From: abdu <abdukiran@gmail.com>
Date: Fri, 4 Oct 2024 23:44:18 +0200
Subject: [PATCH] add toasts (FE), handle case user already exists (BE)
---
frontend/src/App.vue | 4 +++
frontend/src/components/LoginPage.vue | 36 ++++++++++++-------
.../todo/controller/UserController.java | 3 +-
.../todo/service/UserService.java | 8 ++---
4 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 017fd26..48b8b3b 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -23,4 +23,8 @@ export default {
text-align: center;
margin-top: 60px;
}
+
+.toast:not(.show) {
+ display: block !important;
+}
</style>
diff --git a/frontend/src/components/LoginPage.vue b/frontend/src/components/LoginPage.vue
index 81128ed..def7118 100644
--- a/frontend/src/components/LoginPage.vue
+++ b/frontend/src/components/LoginPage.vue
@@ -9,8 +9,7 @@ export default {
userName: '',
password: ''
},
- repeatedPassword: '',
- testname: ''
+ repeatedPassword: ''
}
},
computed: {
@@ -23,20 +22,27 @@ export default {
async signUp() {
let url = "http://localhost:9876/user/signup"
- this.$bvModal.hide('signup-modal');
-
- console.log(this.user)
-
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
- body: JSON.stringify(this.user)
+ body: JSON.stringify({
+ "userName": this.user.userName,
+ "password": this.user.password
+ })
});
- console.log(response)
+ if(response.status === 201){
+ this.$bvToast.show('account-created-toast')
+ } else if(response.status === 409){
+ this.$bvToast.show('account-not-created-toast')
+ }
},
+
+ async signIn(){
+
+ }
}
}
</script>
@@ -63,9 +69,9 @@ export default {
</b-modal>
<!-- sign-in modal -->
- <b-modal hide-header id="signin-modal">
- <b-input class="mb-4 mt-4" id="username" type="text" placeholder="enter username"></b-input>
- <b-input class="mb-4" id="password" type="password" placeholder="enter password"></b-input>
+ <b-modal :ok-disabled="checkEmptyFields" @ok="signIn" hide-header id="signin-modal">
+ <b-input v-model="user.userName" class="mb-4 mt-4" id="username" type="text" placeholder="enter username"></b-input>
+ <b-input v-model="user.password" class="mb-4" id="password" type="password" placeholder="enter password"></b-input>
</b-modal>
</b-card-body>
<b-card-footer>
@@ -76,8 +82,14 @@ export default {
<b-col></b-col>
</b-row>
<!--
-
+ ----- toasts & alerts -----
-->
+ <b-toast no-close-button auto-hide-delay="5000" variant="success" id="account-created-toast" title="success">
+ account for {{ this.user.userName }} has been created
+ </b-toast>
+ <b-toast no-close-button auto-hide-delay="5000" variant="danger" id="account-not-created-toast" title="error">
+ user {{ this.user.userName }} already exists
+ </b-toast>
</b-container>
</template>
diff --git a/src/main/java/com/cloudcomputing/todo/controller/UserController.java b/src/main/java/com/cloudcomputing/todo/controller/UserController.java
index 80ffb2f..55ba28b 100644
--- a/src/main/java/com/cloudcomputing/todo/controller/UserController.java
+++ b/src/main/java/com/cloudcomputing/todo/controller/UserController.java
@@ -18,11 +18,12 @@ public class UserController {
@PostMapping("/signup")
public ResponseEntity<UserDTO> singUp(@RequestBody UserDTO userDTO) {
UserDTO newUser = userService.createUser(userDTO);
+
if(newUser != null) {
return new ResponseEntity<>(newUser, HttpStatus.CREATED);
}
- return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
+ return new ResponseEntity<>(HttpStatus.CONFLICT);
}
@PostMapping("/login")
diff --git a/src/main/java/com/cloudcomputing/todo/service/UserService.java b/src/main/java/com/cloudcomputing/todo/service/UserService.java
index 0b1ec31..c816186 100644
--- a/src/main/java/com/cloudcomputing/todo/service/UserService.java
+++ b/src/main/java/com/cloudcomputing/todo/service/UserService.java
@@ -24,14 +24,12 @@ public class UserService {
public UserDTO createUser(UserDTO userDTO) {
User newUser;
- if(userRepository.existsByUserId(userDTO.getUserId()) || userRepository.existsByUserName(userDTO.getUserName())){
- newUser = userRepository.findByUserName(userDTO.getUserName());
- } else {
+ if(!(userRepository.existsByUserId(userDTO.getUserId()) || userRepository.existsByUserName(userDTO.getUserName()))){
newUser = userMapper.dtoToEntity(userDTO);
+ return userMapper.entityToDto(userRepository.save(newUser));
}
- User createdUser = userRepository.save(newUser);
- return userMapper.entityToDto(createdUser);
+ return null;
}
public boolean login(HttpSession session, UserDTO userDTO) {
--
GitLab