Implement Sign-up, Add id generation type identity to Entities

This commit is contained in:
Marcel Schwarz 2020-05-09 19:12:43 +02:00
parent 46262af668
commit 8e7f9c06d3
6 changed files with 18 additions and 14 deletions

View File

@ -18,6 +18,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
compileOnly 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
implementation 'org.mariadb.jdbc:mariadb-java-client' implementation 'org.mariadb.jdbc:mariadb-java-client'

View File

@ -5,9 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.persistence.Entity; import javax.persistence.*;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import java.time.Duration; import java.time.Duration;
import java.util.Date; import java.util.Date;
@ -18,6 +16,7 @@ import java.util.Date;
public class TimeRecord { public class TimeRecord {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id; private long id;
@OneToOne @OneToOne
private TimetrackAccount account; // TimetrackAccount ID (Lazy) private TimetrackAccount account; // TimetrackAccount ID (Lazy)

View File

@ -16,7 +16,7 @@ import javax.persistence.Id;
public class Role { public class Role {
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.IDENTITY)
private long id; private long id;
private String name; private String name;
// TODO: Permission List // TODO: Permission List

View File

@ -14,7 +14,7 @@ import javax.persistence.*;
public class TimetrackAccount { public class TimetrackAccount {
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.IDENTITY)
private long id; private long id;
@OneToOne @OneToOne
private TimetrackUser timetrackUser; // TimetrackUser Id (Lazy) [REMOVE] private TimetrackUser timetrackUser; // TimetrackUser Id (Lazy) [REMOVE]

View File

@ -17,9 +17,9 @@ import java.util.List;
public class TimetrackUser { public class TimetrackUser {
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.IDENTITY)
private long id; private long id;
@UniqueElements @Column(unique = true)
private String username; private String username;
private String password; // strip private String password; // strip
private String firstname; private String firstname;

View File

@ -1,11 +1,11 @@
package de.hft.geotime.user; package de.hft.geotime.user;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@RestController @RestController
@RequestMapping("/user") @RequestMapping("/user")
public class UserController { public class UserController {
@ -24,12 +24,16 @@ public class UserController {
return "Welcome back " + timetrackUser.getFirstname() + " " + timetrackUser.getLastname(); return "Welcome back " + timetrackUser.getFirstname() + " " + timetrackUser.getLastname();
} }
// TODO: implement register, maybe move to another class
@PostMapping("/sign-up") @PostMapping("/sign-up")
public HashMap<String, Object> signUp(@RequestBody HashMap<String, Object> payload) { public ResponseEntity<String> signUp(@RequestBody TimetrackUser user) {
return payload; user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
// user.setPassword(bCryptPasswordEncoder.encode(user.getPassword())); TimetrackUser byUsername = userRepository.findFirstByUsername(user.getUsername());
// userRepository.save(user); if (byUsername == null) {
userRepository.save(user);
return new ResponseEntity<>("Created", HttpStatus.CREATED);
} else {
return new ResponseEntity<>("Username already exists!", HttpStatus.CONFLICT);
}
} }
} }