<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> 참조 Github Code
</aside>
// business logic start
Developer developer = Developer.builder()
.developerLevel(request.getDeveloperLevel())
.developerSkillType(request.getDeveloperSkillType())
.experienceYear(request.getExperienceYears())
.memberId(request.getMemberId())
.name(request.getName())
.age(request.getAge())
.build();
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public static class Response{
private DeveloperLevel developerLevel;
private DeveloperSkillType developerSkillType;
private Integer experienceYears;
private String memberId;
public static Response fromEntity(Developer developer) {
return Response.builder()
.developerLevel(developer.getDeveloperLevel())
.developerSkillType(developer.getDeveloperSkillType())
.experienceYears(developer.getExperienceYear())
.memberId(developer.getMemberId())
.build();
}
}
@Transactional
public CreateDeveloper.Response createDeveloper(CreateDeveloper.Request request) {
validateCreateDeveloperRequest(request);
// business logic start
Developer developer = Developer.builder()
.developerLevel(request.getDeveloperLevel())
.developerSkillType(request.getDeveloperSkillType())
.experienceYear(request.getExperienceYears())
.memberId(request.getMemberId())
.name(request.getName())
.age(request.getAge())
.build();
developerRepository.save(developer);
return CreateDeveloper.Response.fromEntity(developer);
}
@PostMapping("/create-developers")
public CreateDeveloper.Response createDevelopers(
@Valid @RequestBody CreateDeveloper.Request request
) {
log.info("POST /create-developers HTTP/1.1 ");
log.info("requset : {}", request);
return dmakerService.createDeveloper(request);
}
create-developers
TEST 파일]POST <http://localhost:8080/create-developers>
Content-Type: application/json;charset=utf-8
{
"developerLevel":"JUNIOR",
"developerSkillType":"FRONT_END",
"experienceYears":2,
"memberId":"Micky",
"name":"mouse",
"age":"20"
}
### createDevelopers TEST