diff --git a/src/main/java/database/DatabaseHelper.java b/src/main/java/database/DatabaseHelper.java index d511d1d..98efbce 100644 --- a/src/main/java/database/DatabaseHelper.java +++ b/src/main/java/database/DatabaseHelper.java @@ -5,9 +5,9 @@ import com.j256.ormlite.support.ConnectionSource; public class DatabaseHelper { private static final String DATABASE_NAME = "monnethic"; - private static final String DATABASE_USER = ""; - private static final String DATABASE_PWD = ""; - private final static String DATABASE_URL = "jdbc:postgresql://host:port/"+DATABASE_NAME; + private static final String DATABASE_USER = "postgres"; + private static final String DATABASE_PWD = "L-*q~Ytaha{;u+7yJ8"; + private final static String DATABASE_URL = "jdbc:postgresql://37.187.101.44:5432/"+DATABASE_NAME; public ConnectionSource setupDatabaseConnection(){ try{ diff --git a/src/main/java/restImplementation/DatabaseUserImplementation.java b/src/main/java/restImplementation/DatabaseUserImplementation.java index bdfa3ed..bd5773b 100644 --- a/src/main/java/restImplementation/DatabaseUserImplementation.java +++ b/src/main/java/restImplementation/DatabaseUserImplementation.java @@ -5,6 +5,8 @@ import database.user.UserDao; import org.springframework.security.crypto.bcrypt.BCrypt; import java.time.Instant; +import java.util.HashMap; +import java.util.Map; public class DatabaseUserImplementation { @@ -46,21 +48,25 @@ public class DatabaseUserImplementation { } - public String userLogger(User user) throws Exception { + public Map userLogger(User user) throws Exception { UserDao userDao = new UserDao(); - String response; + Map response = new HashMap(); User user1 = userDao.getUser(user.getEmail()); if(user1 != null){ String hash = user1.getPassword(); if(!BCrypt.checkpw(user.getPassword(), hash)){ - response = "Not Allowed"; + response.put("response","Not Allowed"); + //response = "Not Allowed"; }else{ - response = "Ok"; + response.put("response","Ok"); + response.put("userHash",user1.getUser_hash()); + //response = "Ok"; } } else { - response = "Not Exist"; + response.put("response","Not Exist"); + //response = "Not Exist"; } return response; diff --git a/src/main/java/restService/DatabaseUserResource.java b/src/main/java/restService/DatabaseUserResource.java index a9c935d..962775b 100644 --- a/src/main/java/restService/DatabaseUserResource.java +++ b/src/main/java/restService/DatabaseUserResource.java @@ -1,12 +1,15 @@ package restService; import database.user.User; + import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import restImplementation.DatabaseUserImplementation; import javax.validation.Valid; +import java.util.HashMap; +import java.util.Map; @RestController @RequestMapping(value = "/api/rest/user") @@ -14,39 +17,58 @@ public class DatabaseUserResource { @PostMapping(value = "/save") @ResponseStatus(HttpStatus.CREATED) - public ResponseEntity saveUser(@Valid @RequestBody User user){ + public ResponseEntity saveUser(@Valid @RequestBody User user){ try{ DatabaseUserImplementation databaseUserImplementation = new DatabaseUserImplementation(); boolean result = databaseUserImplementation.saveUser(user); if(result){ - return ResponseEntity.status(HttpStatus.OK).body("Ok"); + StringResponse responseS = new StringResponse("Ok"); + return ResponseEntity.status(HttpStatus.OK).body(responseS); }else { - return ResponseEntity.status(HttpStatus.FOUND).body("User already exist"); + StringResponse responseS = new StringResponse("User already exist"); + return ResponseEntity.status(HttpStatus.FOUND).body(responseS); } }catch (Exception e){ - return ResponseEntity.status(HttpStatus.CONFLICT).body(e.getMessage()); + StringResponse responseS = new StringResponse(e.getMessage()); + return ResponseEntity.status(HttpStatus.CONFLICT).body(responseS); } } - @PostMapping(value = "/login") + @RequestMapping(value = "/login", method = RequestMethod.POST,produces = "application/json") @ResponseStatus(HttpStatus.OK) - public ResponseEntity login(@Valid @RequestBody User user){ + public ResponseEntity login(@Valid @RequestBody User user){ try{ DatabaseUserImplementation databaseUserImplementation = new DatabaseUserImplementation(); - String response = databaseUserImplementation.userLogger(user); - switch (response){ - case "Not Exist" : return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found"); - case "Not Allowed" : return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Wrong Password!"); - case "" : return ResponseEntity.status(HttpStatus.CONFLICT).body("Error"); - case "Ok": return ResponseEntity.status(HttpStatus.OK).body("Ok"); - default: return ResponseEntity.status(HttpStatus.CONFLICT).body("Error"); + Map response = databaseUserImplementation.userLogger(user); + switch (response.get("response")){ + case "Not Exist" : { + StringResponse responseS = new StringResponse("User Not Found"); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(responseS); + } + case "Not Allowed" :{ + StringResponse responseS = new StringResponse("Wrong Password!"); + return ResponseEntity.status(HttpStatus.FORBIDDEN).body(responseS); + } + case "" :{ + StringResponse responseS = new StringResponse("Error"); + return ResponseEntity.status(HttpStatus.CONFLICT).body(responseS); + } + case "Ok":{ + StringResponse responseS = new StringResponse("Ok",response.get("userHash")); + return ResponseEntity.status(HttpStatus.OK).body(responseS); + } + default:{ + StringResponse responseS = new StringResponse("Error"); + return ResponseEntity.status(HttpStatus.CONFLICT).body(responseS); + } } }catch (Exception e){ - return ResponseEntity.status(HttpStatus.CONFLICT).body(e.getMessage()); + StringResponse responseS = new StringResponse(e.getMessage()); + return ResponseEntity.status(HttpStatus.CONFLICT).body(responseS); } } - @PostMapping(value = "/get") + @PostMapping(value = "/get", produces = "application/json") @ResponseBody public ResponseEntity getUser(@RequestBody User user){ try{ diff --git a/src/main/java/restService/StringResponse.java b/src/main/java/restService/StringResponse.java new file mode 100644 index 0000000..19b74f3 --- /dev/null +++ b/src/main/java/restService/StringResponse.java @@ -0,0 +1,31 @@ +package restService; + +public class StringResponse { + private String response; + private String userHash; + + public StringResponse(String response){ + this.response = response; + } + + public StringResponse(String response, String userHash){ + this.response=response; + this.userHash=userHash; + } + + public String getResponse() { + return response; + } + + public void setResponse(String response) { + this.response = response; + } + + public String getUserHash() { + return userHash; + } + + public void setUserHash(String userHash) { + this.userHash = userHash; + } +}