Skip to content

Commit 7068e3f

Browse files
exception handling
1 parent 20ac9bf commit 7068e3f

File tree

6 files changed

+67
-26
lines changed

6 files changed

+67
-26
lines changed

UserManagement/src/main/java/com/hms/management/dao/UserRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public interface UserRepository {
88

9-
public void create(User user);
9+
public User create(User user);
1010

1111
public String updatePassword(int UserId, String oldPassword, String newPassword);
1212

UserManagement/src/main/java/com/hms/management/dao/impl/UserRepositoryImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.hms.management.UserMapper;
55
import com.hms.management.dao.UserRepository;
66
import org.springframework.beans.factory.annotation.Autowired;
7-
import org.springframework.beans.factory.annotation.Qualifier;
87
import org.springframework.jdbc.core.JdbcTemplate;
98
import org.springframework.stereotype.Repository;
109

@@ -16,17 +15,18 @@ public class UserRepositoryImpl implements UserRepository {
1615
private JdbcTemplate jdbcTemplate;
1716

1817
@Override
19-
public void create(User user) {
18+
public User create(User user) {
2019
String sql = "INSERT INTO users (userName,passowrd) VALUES (?, ?)";
2120
jdbcTemplate.update(sql,user.getUsername(),user.getPassword());
21+
return user;
2222

2323
}
2424

2525
@Override
2626
public String deleteUser(int id) {
2727
User user = isIdExist(id);
2828
if (user == null) {
29-
System.out.println("User with id "+id+" not found");
29+
System.out.println("User with id " + id + " not found");
3030
return "User with id "+id+" not found";
3131
} else {
3232
String sql = "DELETE FROM users WHERE UserId=?";
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.hms.management.rest.Exceptions;
2+
3+
public class InvalidNameException extends RuntimeException {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.hms.management.rest.Exceptions;
2+
3+
public class InvalidPasswordException extends RuntimeException {
4+
}

UserManagement/src/main/java/com/hms/management/rest/UserManagementRestController.java

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package com.hms.management.rest;
22
import com.hms.management.User;
33
import com.hms.management.dao.UserRepository;
4+
import com.hms.management.rest.Exceptions.InvalidNameException;
5+
import com.hms.management.rest.Exceptions.InvalidPasswordException;
46
import org.springframework.beans.factory.annotation.Autowired;
5-
import org.springframework.beans.factory.annotation.Qualifier;
67
import org.springframework.web.bind.annotation.*;
78
import java.util.List;
89

@@ -16,38 +17,29 @@ public void setUserRepository(UserRepository userRepository) {
1617
this.userRepository = userRepository;
1718
}
1819

19-
@GetMapping(value = "/Users")
20-
public List<User> viewUsers() {
20+
@GetMapping(value = "/users")
21+
public List<User> getUserList() {
2122
return userRepository.viewAllUsers();
2223

2324
}
2425

25-
@PostMapping("/Users")
26-
public Object createUsers(@RequestParam(value = "userName", defaultValue = " ") String userName,
27-
@RequestParam(value = "password", defaultValue = " ") String password) {
26+
@PostMapping("/users")
27+
public Object createUser(@RequestParam(value = "userName", defaultValue = " ") String userName,
28+
@RequestParam(value = "password", defaultValue = " ") String password) {
2829

2930
User user = new User(userName, password);
3031

31-
if (user.getUsername().trim().isEmpty()) {
32-
System.out.println("name is epmty");
33-
return "empty name";
34-
} else if (user.getUsername().trim().length() > 20) {
35-
System.out.println("name cannot exceed 20 characters");
36-
return "name cannot exceed 20 characters";
37-
} else if (user.getPassword().trim().isEmpty()) {
38-
System.out.println("password is epmty");
39-
return "password is epmty";
40-
} else if (user.getPassword().length() > 20) {
41-
System.out.println("password cannot exceed 20 characters");
42-
return "password cannot exceed 20 characters";
32+
if (user.getUsername().trim().isEmpty() || user.getUsername().trim().length() > 20) {
33+
throw new InvalidNameException();
34+
} else if (user.getPassword().trim().isEmpty() || user.getPassword().length() > 20) {
35+
throw new InvalidPasswordException();
4336
} else {
44-
userRepository.create(user);
45-
return "created new user";
37+
return userRepository.create(user);
4638
}
4739

4840
}
4941

50-
@PutMapping("/Users")
42+
@PutMapping("/users")
5143
public Object updatePassword(@RequestParam(value = "id", defaultValue = " ") int id,
5244
@RequestParam(value = "opassword", defaultValue = " ") String oldPassword,
5345
@RequestParam(value = "npassword", defaultValue = " ") String newPassword) {
@@ -56,7 +48,7 @@ public Object updatePassword(@RequestParam(value = "id", defaultValue = " ") int
5648

5749
}
5850

59-
@DeleteMapping("/Users")
51+
@DeleteMapping("/users")
6052
public String deleteUser(@RequestParam(value = "id", defaultValue = " ") int id) {
6153

6254
return userRepository.deleteUser(id);
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.hms.management.rest;
2+
3+
import com.hms.management.rest.Exceptions.InvalidNameException;
4+
import com.hms.management.rest.Exceptions.InvalidPasswordException;
5+
import org.aspectj.lang.annotation.Before;
6+
import org.springframework.http.HttpStatus;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.ControllerAdvice;
9+
import org.springframework.web.bind.annotation.ExceptionHandler;
10+
import org.springframework.web.bind.annotation.ResponseBody;
11+
12+
import java.util.HashMap;
13+
import java.util.Map;
14+
15+
@ControllerAdvice
16+
public class UserManagementRestControllerExceptionHandler {
17+
@ResponseBody
18+
@ExceptionHandler(value = InvalidNameException.class)
19+
public Map<String,String> invalidUserNameException(){
20+
Map<String,String> map = new HashMap<String, String>() ;
21+
map.put("status",HttpStatus.NOT_FOUND.toString());
22+
map.put("error","invalid user name. please enter a valid user name");
23+
24+
return map;
25+
26+
}
27+
28+
@ResponseBody
29+
@ExceptionHandler(value = InvalidPasswordException.class)
30+
public Map<String,String> invalidUserPasswordException(){
31+
Map<String,String> map = new HashMap<String, String>() ;
32+
map.put("status",HttpStatus.NOT_FOUND.toString());
33+
map.put("error","invalid password. please enter a valid password less than 20 characters");
34+
35+
return map;
36+
37+
}
38+
39+
40+
}
41+

0 commit comments

Comments
 (0)