Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#78, #83] Mapper & InAdapter Test #88

Merged
merged 10 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ dependencies {
//s3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

//validation
implementation 'org.springframework.boot:spring-boot-starter-validation'
}

test {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/syncd/adapter/in/web/AuthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public RedirectView googleLogin(@RequestParam String code,
String redirectUri = authControllerProperties.getRedirectUriForGoogle();
String url = authControllerProperties.getRedirectUrl();
TokenDto token = socialLoginUsecase.socialLogin(code, registrationId,redirectUri);

String redirectUrl = url + token.accessToken();
return new RedirectView(redirectUrl);
}
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/syncd/adapter/in/web/ProjectController.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
@RequestMapping("/v1/project")
public class ProjectController {
private final GetAllRoomsByUserIdUsecase getAllRoomsByUserIdUsecase;

private final CreateProjectUsecase createProjectUsecase;

private final JoinProjectUsecase joinProjectUsecase;
Expand All @@ -36,11 +37,11 @@ public class ProjectController {
private final UpdateProjectUsecase updateProjectUsecase;

private final SyncProjectUsecase syncProjectUsecase;

private final MakeUserstoryUsecase makeUserstoryUsecase;

private final JwtService jwtService;


@PostMapping(value = "/create")
public CreateProjectResponseDto createProject(HttpServletRequest request, @Valid @ModelAttribute CreateProjectRequestDto requestDto) {
String token = jwtService.resolveToken(request);
Expand Down Expand Up @@ -84,7 +85,7 @@ public SyncProjectResponseDto syncProject(HttpServletRequest request, @Valid @Re
}

@PostMapping("/userstory")
public ResponseEntity<MakeUserStoryResponseDto> makeUserStory(HttpServletRequest request, @RequestBody MakeUserStoryReauestDto makeUserStoryReauestDto) {
public ResponseEntity<MakeUserStoryResponseDto> makeUserStory(HttpServletRequest request, @Valid @RequestBody MakeUserStoryReauestDto makeUserStoryReauestDto) {
String token = jwtService.resolveToken(request);
MakeUserStoryResponseDto result = makeUserstoryUsecase.makeUserstory(jwtService.getUserIdFromToken(token), makeUserStoryReauestDto.getProjectId(), makeUserStoryReauestDto.getScenario());
return new ResponseEntity<>(result, HttpStatus.OK);
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/syncd/adapter/in/web/RoomController.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,5 @@ public GetAllRoomsByUserIdResponseDto getAllInfoAboutRoomsByUserId(HttpServletRe
public GetRoomAuthTokenResponseDto getRoomAuthToken(@RequestBody @Valid GetRoomAuthTokenUsecase.TestDto getRoomAuthToken, HttpServletRequest request){
String token = jwtService.resolveToken(request);
return getRoomAuthTokenUsecase.Test(jwtService.getUserIdFromToken(token),getRoomAuthToken.roomId());

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import org.springframework.beans.factory.annotation.Value;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.function.Function;
import java.util.stream.Collectors;

Expand All @@ -35,6 +34,7 @@ public LiveblocksTokenDto GetRoomAuthToken(String userId, String name,String img
String jsonBody = createJsonBody(userId,name,img,projectIds);

HttpEntity<String> request = new HttpEntity<>(jsonBody, headers);
// System.out.print(request);

return restTemplate.postForObject(url, request, LiveblocksTokenDto.class);
}
Expand All @@ -51,18 +51,18 @@ private String createJsonBody(String userId,String name, String img, List<String
} catch (JsonProcessingException e) {
e.printStackTrace();
}
String[] randomColorPair = getRandomColorPair();

String data = String.format("""
{
"userId": "%s",
"userInfo": {
"name": "%s",
"color":["%s","%s"],
"avatar": "%s"
},
"permissions": %s
}
""", userId, name,randomColorPair[0],randomColorPair[1], img, permissionsJson);
""", userId, name, img, permissionsJson);
System.out.println(data);
return data;
}

Expand Down Expand Up @@ -93,43 +93,5 @@ public LiveblocksTokenDto Test(String userId, String roomId) {

return restTemplate.postForObject(url, request, LiveblocksTokenDto.class);
}
// colors 배열
private static String[][] colors = {
{"#FF0099", "#FF7A00"},
{"#002A95", "#00A0D2"},
{"#6116FF", "#E32DD1"},
{"#0EC4D1", "#1BCC00"},
{"#FF00C3", "#FF3333"},
{"#00C04D", "#00FFF0"},
{"#5A2BBE", "#C967EC"},
{"#46BE2B", "#67EC86"},
{"#F49300", "#FFE600"},
{"#F42900", "#FF9000"},
{"#00FF94", "#0094FF"},
{"#00FF40", "#1500FF"},
{"#00FFEA", "#BF00FF"},
{"#FFD600", "#BF00FF"},
{"#484559", "#282734"},
{"#881B9A", "#1D051E"},
{"#FF00F5", "#00FFD1"},
{"#9A501B", "#1E0505"},
{"#FF008A", "#FAFF00"},
{"#22BC09", "#002B1B"},
{"#FF0000", "#000000"},
{"#00FFB2", "#000000"},
{"#0066FF", "#000000"},
{"#FA00FF", "#000000"},
{"#00A3FF", "#000000"},
{"#00FF94", "#000000"},
{"#AD00FF", "#000000"},
{"#F07777", "#4E0073"},
{"#AC77F0", "#003C73"}
};

public static String[] getRandomColorPair() {
Random random = new Random();
int index = random.nextInt(colors.length);
return colors[index];
}

}
10 changes: 2 additions & 8 deletions src/main/java/com/syncd/adapter/out/openai/ChatGPTAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,6 @@ public MakeUserStoryResponseDto makeUserstory(List<String> scenario) {
try {
MakeUserStoryResponseDto responseDto = promptUserStory(finalToken, om, scenario);
System.out.println(finalToken);
for (MakeUserStoryResponseDto.EpicDto epic : responseDto.getEpics()) {
// 각 Epic의 UserStories를 순회합니다.
for (MakeUserStoryResponseDto.UserStoryDto userStory : epic.getUserStories()) {
// 각 UserStory의 id에 epic.id * 100을 더합니다.
userStory.setId(userStory.getId() + Integer.parseInt(epic.getId()) * 100);
}
}
return responseDto;
} catch (Exception e) {
e.printStackTrace();
Expand All @@ -66,7 +59,8 @@ private MakeUserStoryResponseDto promptUserStory(OpenAIToken finalToken, ObjectM
String requestTextForEpic = createRequestForEpic(scenario);
System.out.println(requestTextForEpic);
Map<String, Object> Epic = prompt(finalToken, om, requestTextForEpic);
String requestTextForUserstory = promptForUserStory.replace("{epics}", "\""+getMessage(Epic)+"\"");

String requestTextForUserstory = promptForUserStory.replace("{epics}", getMessage(Epic));
Map<String, Object> userStory = prompt(finalToken, om, requestTextForUserstory);
System.out.println(getMessage(userStory));
String res = extractJson(getMessage(userStory));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import com.syncd.application.port.out.persistence.project.ReadProjectPort;
import com.syncd.application.port.out.persistence.project.WriteProjectPort;
import com.syncd.domain.project.Project;
import com.syncd.domain.project.ProjectMapper;
import com.syncd.exceptions.CustomException;
import com.syncd.exceptions.ErrorInfo;
import com.syncd.mapper.ProjectMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;

Expand All @@ -23,24 +23,25 @@ public class ProjectPersistenceAdapter implements WriteProjectPort, ReadProjectP
@Override
public List<Project> findAllProjectByUserId(String userId){
List<ProjectEntity> projectEntityList = projectDao.findByUsersUserId(userId);
// List<Project> projects = ProjectMapper.INSTANCE.fromProjectEntities(projectEntityList);
List<Project> projects = projectEntityList.stream()
.map(ProjectMapper.INSTANCE::fromProjectEntity)
.map(ProjectMapper.INSTANCE::mapProjectEntityToProject)
.collect(Collectors.toList());
return projects;
}

@Override
public Project findProjectByProjectId(String projectId){
return projectDao.findById(projectId)
.map(ProjectMapper.INSTANCE::fromProjectEntity)
.map(ProjectMapper.INSTANCE::mapProjectEntityToProject)
.orElseThrow(() -> new CustomException(ErrorInfo.PROJECT_NOT_FOUND, "Project ID: " + projectId));
}
@Override
public String CreateProject(Project project) {
if (project.getId() != null && projectDao.existsById(project.getId())) {
throw new CustomException(ErrorInfo.PROJECT_ALREADY_EXISTS, "Project ID: " + project.getId());
}
ProjectEntity projectEntity = ProjectMapper.INSTANCE.toProjectEntity(project);
ProjectEntity projectEntity = ProjectMapper.INSTANCE.mapProjectToProjectEntity(project);
ProjectEntity savedProjectEntity = projectDao.save(projectEntity);
return savedProjectEntity.getId();
}
Expand All @@ -58,7 +59,7 @@ public String UpdateProject(Project project) {
if (project.getId() == null || !projectDao.existsById(project.getId())) {
throw new CustomException(ErrorInfo.PROJECT_NOT_FOUND, "Project ID: " + project.getId());
}
ProjectEntity projectEntity = ProjectMapper.INSTANCE.toProjectEntity(project);
ProjectEntity projectEntity = ProjectMapper.INSTANCE.mapProjectToProjectEntity(project);
ProjectEntity savedEntity = projectDao.save(projectEntity);
return savedEntity.getId();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import com.syncd.application.port.out.persistence.user.ReadUserPort;
import com.syncd.application.port.out.persistence.user.WriteUserPort;
import com.syncd.domain.user.User;
import com.syncd.domain.user.UserMapper;
import com.syncd.mapper.UserMapper;
import com.syncd.dto.UserId;
import com.syncd.enums.UserAccountStatus;
import com.syncd.exceptions.CustomException;
Expand Down Expand Up @@ -60,21 +60,21 @@ public UserId updateUser(User user) {
@Override
public User findByEmail(String email) {
return userDao.findByEmail(email)
.map(UserMapper.INSTANCE::fromEntity)
.map(UserMapper.INSTANCE::mapUserEntityToUser)
.orElseThrow(() -> new CustomException(ErrorInfo.USER_NOT_FOUND, "User Email: " + email));
}

@Override
public User findByUsername(String username) {
return userDao.findByName(username)
.map(UserMapper.INSTANCE::fromEntity)
.map(UserMapper.INSTANCE::mapUserEntityToUser)
.orElseThrow(() -> new CustomException(ErrorInfo.USER_NOT_FOUND, "User Name: " + username));
}

@Override
public User findByUserId(String userId) {
return userDao.findById(userId)
.map(UserMapper.INSTANCE::fromEntity)
.map(UserMapper.INSTANCE::mapUserEntityToUser)
.orElseThrow(() -> new CustomException(ErrorInfo.USER_NOT_FOUND, "User ID: " + userId));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import com.syncd.exceptions.ValidationMessages;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public interface DeleteProjectUsecase {
// DTO
// ======================================
record DeleteProjectResponseDto(

String projectId
){

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package com.syncd.application.port.in;

import com.syncd.dto.MakeUserStoryResponseDto;
import com.syncd.exceptions.ValidationMessages;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

public interface MakeUserstoryUsecase {
MakeUserStoryResponseDto makeUserstory(String userId, String projectId, List<String> scenarios);
MakeUserStoryResponseDto makeUserstory(String userId,
String projectId,
List<String> scenarios);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package com.syncd.application.port.in;

import com.syncd.exceptions.ValidationMessages;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

public interface SyncProjectUsecase {
// ======================================
// METHOD
Expand All @@ -10,8 +14,10 @@ public interface SyncProjectUsecase {
// ======================================

record SyncProjectRequestDto(
@NotBlank(message = ValidationMessages.PROJECT_ID_NOT_BLANK)
String projectId,
int projectStage
@NotNull(message = ValidationMessages.PROJECT_PROGRESS_NOT_NULL)
Integer projectStage
){}

record SyncProjectResponseDto(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public interface UpdateProjectUsecase {
// ======================================
// METHOD
// ======================================
UpdateProjectResponseDto updateProject(String userId, String projectId,
UpdateProjectResponseDto updateProject(String userId, String projectId,
String projectName,
String description,
String image );
Expand All @@ -18,12 +18,9 @@ UpdateProjectResponseDto updateProject(String userId, String projectId,
record UpdateProjectRequestDto(
@NotBlank(message = ValidationMessages.PROJECT_ID_NOT_BLANK)
String projectId,
@NotBlank(message = ValidationMessages.PROJECT_NAME_NOT_BLANK)
String projectName,
@NotBlank(message = ValidationMessages.DESCRIPTION_NOT_BLANK)
String description,
String image

) {
}

Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/syncd/application/service/LoginService.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.syncd.application.service;

import com.fasterxml.jackson.databind.JsonNode;
import com.syncd.GoogleOAuth2Properties;
import com.syncd.application.port.in.GenerateTokenUsecase;
import com.syncd.application.port.in.GetOauthRedirectUrlUsecase;
import com.syncd.application.port.in.SocialLoginUsecase;
import com.syncd.application.port.out.persistence.user.ReadUserPort;
import com.syncd.application.port.out.persistence.user.WriteUserPort;
Expand Down
Loading
Loading