diff --git a/README.md b/README.md index 7e88c37..36f46aa 100644 --- a/README.md +++ b/README.md @@ -45,9 +45,6 @@ One Day Lifetime SNS │ │ │ │ ├── request │ │ │ │ └── response │ │ │ ├── config - │ │ │ │ ├── RedisConfig.java - │ │ │ │ ├── BatchConfig.java - │ │ │ │ ├── MongoConfig.java │ │ │ │ └── security │ │ │ │ ├── InterceptorConfig.java │ │ │ │ └── WebSecurityConfig.java @@ -60,6 +57,9 @@ One Day Lifetime SNS │ │ │ └── BatchScheduler.java │ │ └── infra │ │ ├── config + │ │ │ ├── RedisConfig.java + │ │ │ ├── MongoConfig.java + │ │ │ ├── BatchConfig.java │ │ │ ├── KafkaConsumerConfig.java │ │ │ └── KafkaProducerConfig.java │ │ ├── dto diff --git a/src/main/java/com/example/oneul/domain/post/domain/Post.java b/src/main/java/com/example/oneul/domain/post/domain/Post.java index a95a6d9..44e22a3 100644 --- a/src/main/java/com/example/oneul/domain/post/domain/Post.java +++ b/src/main/java/com/example/oneul/domain/post/domain/Post.java @@ -24,7 +24,7 @@ import com.example.oneul.domain.user.domain.UserEntity; @Entity @EntityListeners(AuditingEntityListener.class) -@Table(indexes = @Index(name = "i_post", columnList="createdAt")) +@Table(name = "post", indexes = @Index(name = "i_post", columnList="createdAt")) public class Post implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; diff --git a/src/main/java/com/example/oneul/domain/user/api/UserApi.java b/src/main/java/com/example/oneul/domain/user/api/UserApi.java index 4c7d02c..ab6a658 100644 --- a/src/main/java/com/example/oneul/domain/user/api/UserApi.java +++ b/src/main/java/com/example/oneul/domain/user/api/UserApi.java @@ -4,6 +4,7 @@ import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -13,6 +14,8 @@ import com.example.oneul.domain.user.domain.UserEntity; import com.example.oneul.domain.user.dto.LoginDTO; import com.example.oneul.domain.user.dto.SignUpDTO; import com.example.oneul.domain.user.service.UserService; +import com.example.oneul.global.common.Code; +import com.example.oneul.global.common.Response; @RestController @RequestMapping(value = "/user") @@ -26,30 +29,24 @@ public class UserApi { } @RequestMapping(value="/signup/", method=RequestMethod.POST) - public UserEntity signUp(@RequestBody SignUpDTO signUpDTO) { + public ResponseEntity signUp(@RequestBody SignUpDTO signUpDTO) { // TODO: password1, password2 같은지 validator로 검사 UserEntity user = userService.signUp(signUpDTO.toEntity()); log.info("signUp: " + user.toString()); - return user; + return ResponseEntity.ok(new Response(Code.SUCESS, "유저 생성 성공")); } @RequestMapping(value="/login/", method=RequestMethod.POST) - public UserEntity login(HttpSession httpSession, @RequestBody LoginDTO loginDTO) { + public ResponseEntity login(HttpSession httpSession, @RequestBody LoginDTO loginDTO) { UserEntity user = userService.login(loginDTO.toEntity(), httpSession); log.info("login: " + user.toString()); - return user; + return ResponseEntity.ok(new Response(Code.SUCESS, "로그인 성공")); } @RequestMapping(value="/logout/", method=RequestMethod.POST) - public String logout(HttpSession httpSession) { + public ResponseEntity logout(HttpSession httpSession) { log.info("logout: " + httpSession.toString()); userService.logout(httpSession); - return "logout"; + return ResponseEntity.ok(new Response(Code.SUCESS, "로그아웃 성공")); } - - @RequestMapping(value="", method=RequestMethod.GET) - public String hello() { - return "hello"; - } - } diff --git a/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java b/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java index b9caef0..7ed98f1 100644 --- a/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java +++ b/src/main/java/com/example/oneul/domain/user/domain/UserEntity.java @@ -3,36 +3,28 @@ package com.example.oneul.domain.user.domain; import java.io.Serializable; import java.time.LocalDateTime; import java.util.Objects; -import java.util.Set; -import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.EntityListeners; import javax.persistence.GeneratedValue; import javax.persistence.Id; -import javax.persistence.OneToMany; +import javax.persistence.Table; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import com.example.oneul.domain.post.domain.Post; -import com.fasterxml.jackson.annotation.JsonIgnore; +import org.hibernate.annotations.CreationTimestamp; @Entity -@EntityListeners(AuditingEntityListener.class) +@Table(name = "user") public class UserEntity implements Serializable { @Id @GeneratedValue + @Column(name = "id", updatable = false) private Long id; - @Column(nullable = false, unique = true) + @Column(name = "username", nullable = false, unique = true) private String username; - @JsonIgnore @Column(nullable = false) + @Column(name = "password", nullable = false) private String password; - @JsonIgnore @CreatedDate + @CreationTimestamp + @Column(name = "createAt", nullable = false, updatable = false) private LocalDateTime createdAt; - @JsonIgnore - @OneToMany(orphanRemoval = true, cascade = CascadeType.REMOVE) - private Set posts; public Long getId(){ return this.id; diff --git a/src/main/java/com/example/oneul/domain/user/dto/UserInfo.java b/src/main/java/com/example/oneul/domain/user/dto/UserInfo.java new file mode 100644 index 0000000..dbbdb05 --- /dev/null +++ b/src/main/java/com/example/oneul/domain/user/dto/UserInfo.java @@ -0,0 +1,50 @@ +package com.example.oneul.domain.user.dto; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +import com.example.oneul.domain.user.domain.UserEntity; +import com.example.oneul.global.common.Code; +import com.example.oneul.global.common.Response; + +public class UserInfo { + @NotNull + private Long id; + @NotBlank + private String username; + + public Long getId(){ + return this.id; + } + + public void setId(Long id){ + this.id = id; + } + + public String getUsername(){ + return this.username; + } + + public void setUsername(String username){ + this.username = username; + } + + public UserInfo() {} + + public UserInfo(Long id, String username){ + this.id = id; + this.username = username; + } + + public static class UserResponse extends Response { + private UserInfo body; + public UserResponse(Code code, String message, UserEntity user){ + super(code, message); + this.body = new UserInfo(user.getId(), user.getUsername()); + } + + public UserInfo getUserInfo(){ + return this.body; + } + } +} diff --git a/src/main/java/com/example/oneul/global/common/Code.java b/src/main/java/com/example/oneul/global/common/Code.java new file mode 100644 index 0000000..7ccd1d4 --- /dev/null +++ b/src/main/java/com/example/oneul/global/common/Code.java @@ -0,0 +1,6 @@ +package com.example.oneul.global.common; + +public enum Code { + SUCESS, + ERROR +} diff --git a/src/main/java/com/example/oneul/global/common/Response.java b/src/main/java/com/example/oneul/global/common/Response.java new file mode 100644 index 0000000..595d581 --- /dev/null +++ b/src/main/java/com/example/oneul/global/common/Response.java @@ -0,0 +1,33 @@ +package com.example.oneul.global.common; + +import javax.validation.constraints.NotBlank; + +public class Response { + @NotBlank + private Code code; + @NotBlank + private String message; + + public Code getCode(){ + return this.code; + } + + public void setCode(Code code){ + this.code = code; + } + + public String getMessage(){ + return this.message; + } + + public void setMessage(String message){ + this.message = message; + } + + public Response() {} + + public Response(Code code, String message){ + this.code = code; + this.message = message; + } +} diff --git a/src/main/java/com/example/oneul/global/config/BatchConfig.java b/src/main/java/com/example/oneul/infra/config/BatchConfig.java similarity index 100% rename from src/main/java/com/example/oneul/global/config/BatchConfig.java rename to src/main/java/com/example/oneul/infra/config/BatchConfig.java diff --git a/src/main/java/com/example/oneul/global/config/MongoConfig.java b/src/main/java/com/example/oneul/infra/config/MongoConfig.java similarity index 100% rename from src/main/java/com/example/oneul/global/config/MongoConfig.java rename to src/main/java/com/example/oneul/infra/config/MongoConfig.java diff --git a/src/main/java/com/example/oneul/global/config/RedisConfig.java b/src/main/java/com/example/oneul/infra/config/RedisConfig.java similarity index 100% rename from src/main/java/com/example/oneul/global/config/RedisConfig.java rename to src/main/java/com/example/oneul/infra/config/RedisConfig.java diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 0212f2b..c4b5e02 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -6,7 +6,7 @@ spring: properties: hibernate: show-sql: true - ddl-auto: update + ddl-auto: create hbm2ddl: auto: update format_sql: true