-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
86b8669
commit 30575db
Showing
15 changed files
with
493 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import org.springframework.http.HttpStatus; | ||
|
||
import lombok.Getter; | ||
|
||
@Getter | ||
public class ApiResponse<T> { | ||
|
||
private final int statusCode; | ||
private final HttpStatus status; | ||
private final String message; | ||
private final T data; | ||
|
||
private ApiResponse(HttpStatus status, String message, T data) { | ||
this.statusCode = status.value(); | ||
this.data = data; | ||
this.status = status; | ||
this.message = message; | ||
} | ||
|
||
public static <T> ApiResponse<T> of(HttpStatus status, String message, T data) { | ||
return new ApiResponse<>(status, message, data); | ||
} | ||
|
||
public static <T> ApiResponse<T> ok(T data) { | ||
return new ApiResponse<>(HttpStatus.OK, HttpStatus.OK.name(), data); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.GeneratedValue; | ||
import jakarta.persistence.GenerationType; | ||
import jakarta.persistence.Id; | ||
import lombok.AccessLevel; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Getter | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
public class Buyer { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
private Long buyerId; | ||
private String email; | ||
private String password; | ||
private String name; | ||
private String phoneNumber; | ||
private Long addressId; | ||
private String buyerStatus; | ||
private LocalDateTime createdAt; | ||
private LocalDateTime updatedAt; | ||
private String createdBy; | ||
private String updatedBy; | ||
private String deleteYN; | ||
|
||
@Builder | ||
private Buyer(String email, String password, String name, String phoneNumber, LocalDateTime createdAt, | ||
String createdBy, String deleteYN, String buyerStatus, Long addressId) { | ||
this.email = email; | ||
this.password = password; | ||
this.name = name; | ||
this.phoneNumber = phoneNumber; | ||
this.addressId = addressId; | ||
this.buyerStatus = buyerStatus; | ||
this.createdAt = createdAt; | ||
this.updatedAt = createdAt; | ||
this.createdBy = createdBy; | ||
this.updatedBy = createdBy; | ||
this.deleteYN = deleteYN; | ||
} | ||
|
||
public static Buyer create(String email, String password, String name, String phoneNumber, LocalDateTime createdAt, | ||
String createdBy) { | ||
return Buyer.builder() | ||
.email(email) | ||
.password(password) | ||
.name(name) | ||
.phoneNumber(phoneNumber) | ||
.createdAt(createdAt) | ||
.createdBy(createdBy) | ||
.deleteYN("N") | ||
.buyerStatus("ACTIVE") | ||
.build(); | ||
} | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/shop/sendbox/sendbox/buyer/BuyerController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
import org.springframework.web.bind.annotation.PostMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
public class BuyerController { | ||
private final BuyerService buyerService; | ||
|
||
@PostMapping("/buyers") | ||
public ApiResponse<BuyerResponse> signUp(BuyerCreateRequest buyerCreateRequest) { | ||
|
||
final LocalDateTime now = LocalDateTime.now(); | ||
BuyerResponse buyerResponse = buyerService.signUp(buyerCreateRequest.toServiceRequest(), now); | ||
return ApiResponse.ok(buyerResponse); | ||
} | ||
|
||
} |
30 changes: 30 additions & 0 deletions
30
src/main/java/shop/sendbox/sendbox/buyer/BuyerCreateRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Getter | ||
@NoArgsConstructor | ||
public class BuyerCreateRequest { | ||
|
||
private String email; | ||
private String password; | ||
private String name; | ||
private String phoneNumber; | ||
private Long addressId; | ||
private String createdBy; | ||
|
||
public BuyerCreateRequest(String email, String password, String name, String phoneNumber, Long addressId, | ||
String createdBy) { | ||
this.email = email; | ||
this.password = password; | ||
this.name = name; | ||
this.phoneNumber = phoneNumber; | ||
this.addressId = addressId; | ||
this.createdBy = createdBy; | ||
} | ||
|
||
public BuyerRequest toServiceRequest() { | ||
return new BuyerRequest(email, password, name, phoneNumber, addressId, createdBy); | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
src/main/java/shop/sendbox/sendbox/buyer/BuyerRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface BuyerRepository extends JpaRepository<Buyer, Long> { | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/shop/sendbox/sendbox/buyer/BuyerRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
public record BuyerRequest( | ||
String email, | ||
String password, | ||
String name, | ||
String phoneNumber, | ||
Long addressId, | ||
String createdBy | ||
) { | ||
} |
33 changes: 33 additions & 0 deletions
33
src/main/java/shop/sendbox/sendbox/buyer/BuyerResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import lombok.Builder; | ||
import lombok.Getter; | ||
|
||
@Getter | ||
public class BuyerResponse { | ||
|
||
private final Long buyerId; | ||
private final String email; | ||
private final String name; | ||
private final String phoneNumber; | ||
private final String buyerStatus; | ||
|
||
@Builder | ||
private BuyerResponse(Long buyerId, String email, String name, String phoneNumber, String buyerStatus) { | ||
this.buyerId = buyerId; | ||
this.email = email; | ||
this.name = name; | ||
this.phoneNumber = phoneNumber; | ||
this.buyerStatus = buyerStatus; | ||
} | ||
|
||
public static BuyerResponse of(Buyer buyer) { | ||
return BuyerResponse.builder() | ||
.buyerId(buyer.getBuyerId()) | ||
.email(buyer.getEmail()) | ||
.name(buyer.getName()) | ||
.phoneNumber(buyer.getPhoneNumber()) | ||
.buyerStatus(buyer.getBuyerStatus()) | ||
.build(); | ||
} | ||
} |
21 changes: 21 additions & 0 deletions
21
src/main/java/shop/sendbox/sendbox/buyer/BuyerService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
import org.springframework.stereotype.Service; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
public class BuyerService { | ||
|
||
private final BuyerRepository buyerRepository; | ||
|
||
public BuyerResponse signUp(final BuyerRequest buyerRequest, final LocalDateTime createdAt) { | ||
Buyer buyer = Buyer.create(buyerRequest.email(), buyerRequest.password(), buyerRequest.name(), | ||
buyerRequest.phoneNumber(), createdAt, buyerRequest.createdBy()); | ||
final Buyer savedBuyer = buyerRepository.save(buyer); | ||
return BuyerResponse.of(savedBuyer); | ||
} | ||
} |
15 changes: 0 additions & 15 deletions
15
src/main/java/shop/sendbox/sendbox/hello/controller/HelloController.java
This file was deleted.
Oops, something went wrong.
27 changes: 27 additions & 0 deletions
27
src/test/java/shop/sendbox/sendbox/buyer/ApiResponseTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package shop.sendbox.sendbox.buyer; | ||
|
||
import org.assertj.core.api.Assertions; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
import org.springframework.http.HttpStatus; | ||
|
||
class ApiResponseTest { | ||
|
||
@Test | ||
@DisplayName("ApiResponse는 응답코드,메세지,데이터를 입력받아 생성한다.") | ||
void create() { | ||
// given | ||
HttpStatus statusCode = HttpStatus.OK; | ||
String message = "success"; | ||
String data = "data"; | ||
// when | ||
ApiResponse<String> apiResponse = ApiResponse.of(statusCode, message, data); | ||
|
||
// then | ||
Assertions.assertThat(apiResponse.getStatusCode()).isEqualTo(statusCode.value()); | ||
Assertions.assertThat(apiResponse.getStatus()).isEqualTo(statusCode); | ||
Assertions.assertThat(apiResponse.getMessage()).isEqualTo(message); | ||
Assertions.assertThat(apiResponse.getData()).isEqualTo(data); | ||
} | ||
|
||
} |
Oops, something went wrong.