Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
a2dbb8c
[Feat] 파트별 작업 현황 파트별 작업 진행률 조회 api 구현
infiniment Feb 1, 2026
8e6c3d0
[Fix] 충돌 수정
infiniment Feb 5, 2026
487f9b3
[Feat] 위크미션 상태 변경/할일 항목 수정 및 순서 변경 API 추가
infiniment Feb 5, 2026
876da3b
[Refactor] 멤버형 프로세스 검증 추가 및 담당자 정보, 유저 정보 추가
infiniment Feb 5, 2026
76bfa71
[Test] 변경된 컨트롤러 및 위크미션 컨트롤러 테스트
infiniment Feb 5, 2026
52e2ced
[Refactor] 역할 영어 label을 위한 수정
infiniment Feb 5, 2026
8fde356
[Feat] 프로젝트 파트 조회, 팀원 정보 조회, 미션 드롭다운용 조회 api 구현
infiniment Feb 5, 2026
daf574e
[Test] 프로젝트 유저 조회, 프로젝트 파트, 미션 조회 테스트
infiniment Feb 5, 2026
794e1d9
[Refactor] 오타 및 매개변수 값 수정
infiniment Feb 6, 2026
3f6adba
[Feat] 파트별 작업 현황 파트별 작업 진행률 조회 api 구현
infiniment Feb 1, 2026
4daf22b
[Fix] 충돌 수정
infiniment Feb 5, 2026
4e62b81
[Feat] 위크미션 상태 변경/할일 항목 수정 및 순서 변경 API 추가
infiniment Feb 5, 2026
f926c99
[Refactor] 멤버형 프로세스 검증 추가 및 담당자 정보, 유저 정보 추가
infiniment Feb 5, 2026
3d9c77a
[Test] 변경된 컨트롤러 및 위크미션 컨트롤러 테스트
infiniment Feb 5, 2026
4c869f2
[Refactor] 역할 영어 label을 위한 수정
infiniment Feb 5, 2026
3d91cf2
[Feat] 프로젝트 파트 조회, 팀원 정보 조회, 미션 드롭다운용 조회 api 구현
infiniment Feb 5, 2026
0088263
[Test] 프로젝트 유저 조회, 프로젝트 파트, 미션 조회 테스트
infiniment Feb 5, 2026
7223355
[Refactor] 오타 및 매개변수 값 수정
infiniment Feb 6, 2026
c6a28f0
[Feat] 타이머 스냅샷 조회 API추가 및 팀 보드 알림 추가
infiniment Feb 6, 2026
7d0a312
[Chore] gradle OOM 방지 임시 설정 삭제
infiniment Feb 7, 2026
36dca77
[Fix] 채팅 테스트 문서화 개선 & 작업실 채팅 API 유저 프로필 이미지 리팩토링 (#45)
minmin02 Feb 6, 2026
2b3392e
[Identity] 프로필 분석 (#46)
kjunh972 Feb 6, 2026
c3abfd3
Feat: cors 추가
kjunh972 Feb 6, 2026
4d7e287
[Feat] 홈화면 기능 추가/개선 + 유저 이미지 수정 (#48)
ggamnunq Feb 6, 2026
b2ddf3d
[Refactor] 유저 프로필 이미지 필드명 변경 및 presigned URL 응답 적용
infiniment Feb 7, 2026
1ba49c6
[Fix] 충돌 수정
infiniment Feb 7, 2026
9438b7b
[Feat] 파트별 작업 현황 파트별 작업 진행률 조회 api 구현
infiniment Feb 1, 2026
0cf40a2
[Fix] 충돌 수정
infiniment Feb 5, 2026
909902e
[Feat] 위크미션 상태 변경/할일 항목 수정 및 순서 변경 API 추가
infiniment Feb 5, 2026
179879e
[Refactor] 멤버형 프로세스 검증 추가 및 담당자 정보, 유저 정보 추가
infiniment Feb 5, 2026
a3b2d0a
[Test] 변경된 컨트롤러 및 위크미션 컨트롤러 테스트
infiniment Feb 5, 2026
2efad4b
[Refactor] 역할 영어 label을 위한 수정
infiniment Feb 5, 2026
87e8f59
[Feat] 프로젝트 파트 조회, 팀원 정보 조회, 미션 드롭다운용 조회 api 구현
infiniment Feb 5, 2026
dbd34ce
[Test] 프로젝트 유저 조회, 프로젝트 파트, 미션 조회 테스트
infiniment Feb 5, 2026
e1f84d6
[Refactor] 오타 및 매개변수 값 수정
infiniment Feb 6, 2026
e7cbddf
[Refactor] 유저 프로필 이미지 필드명 변경 및 presigned URL 응답 적용
infiniment Feb 7, 2026
378c82b
[Fix] 충돌 수정
infiniment Feb 7, 2026
ea40a3e
[Fix] 충돌 수정
infiniment Feb 7, 2026
5c36b36
[Fix] 충돌 수정
infiniment Feb 7, 2026
a7c8833
[Feat] 공유 문서함 조회/이름수정/삭제 및 링크 SharedDocument 통합
infiniment Feb 7, 2026
9a388f4
[Test] 첨부 문서 관련 테스트 진행
infiniment Feb 7, 2026
584cd1d
[Feat] 파트별 작업 현황 파트별 작업 진행률 조회 api 구현
infiniment Feb 1, 2026
98efd32
[Fix] 충돌 수정
infiniment Feb 7, 2026
84fb46f
[Test] 테스트 수정
infiniment Feb 7, 2026
ff4a5a0
[Feat] 게시글 첨부 기능 추가
infiniment Feb 7, 2026
ce74aa6
[Refactor] 게시글 관련 기능 수정
infiniment Feb 7, 2026
221d809
[Test] API 테스트 실행
infiniment Feb 7, 2026
642f878
[Fix] merge 충돌 수정
infiniment Feb 7, 2026
44ec0d5
[Fix] 테스트 엔드포인트 수정
infiniment Feb 7, 2026
8607d3d
Feat/프로젝트 이름 추가 및 이미지 업로드 api (#58)
kjunh972 Feb 7, 2026
dd4b0a8
Fix : 작업실 채팅 닉네임 조회 및 공지 로직 개선 및 분석 기반 프로젝트 생성 개선 (#57)
minmin02 Feb 8, 2026
2e60019
[Feat] 프로젝트 작업실 팀 파트 추가, 이름 수정 api 구현
infiniment Feb 8, 2026
c63d1d4
[Test] api 테스트
infiniment Feb 8, 2026
ad760d7
Feat/mypage/project settings (#59)
ggamnunq Feb 8, 2026
b57f7c4
[Refactor] 리더만 가능하게 로직 수정
infiniment Feb 8, 2026
c97473c
Feat/team/chat (#60)
minmin02 Feb 8, 2026
d2245ea
[Feat] 마이페이지 팀 파트(직업) 추가/수정 API 구현
infiniment Feb 8, 2026
7d8f932
[Test] API 테스트
infiniment Feb 8, 2026
e858974
[Refactor] 마이페이지, 작업실 조회 공용화 . 파트 정책 분리(마이페이지, 작업실)
infiniment Feb 8, 2026
81e572e
[Test] API 테스트
infiniment Feb 8, 2026
6653aa0
[Feat] 모집 정보 등록/수정/조회 API 구현 및 매칭 조회 반환값 변경 (#61)
zeoueon Feb 8, 2026
9541c5a
[Refactor] 게시글 프리뷰 로직 수정
infiniment Feb 8, 2026
96d3cf3
[Docs] 테스트 API 테그 통일
infiniment Feb 8, 2026
f3ee8e9
Merge branch 'develop' into feat/mypage/team-role
infiniment Feb 8, 2026
98bf692
[Refactor] 피드백 상태 수정 및 위크미션 TASK & 멤버형 프로세스 reorder API 분리
infiniment Feb 9, 2026
5479a15
[Fix] 충돌 수정
infiniment Feb 9, 2026
5d26688
[Refactor] 게시글 작성자 정보 추가
infiniment Feb 9, 2026
936e3d8
[Refactor] 위크미션 NPE 버그 수정
infiniment Feb 9, 2026
9ee2215
[Refactor] 프로세스 주차별, 파트별 조회 파일 정보 조회 추가
infiniment Feb 9, 2026
38b85d7
[Refactor] UserRoleField 유저 필드 삭제 및 리팩토링
infiniment Feb 9, 2026
a4a6aa1
[Fix] 충돌 수정
infiniment Feb 9, 2026
91da782
[Refactor] 게시글 삭제 로직 수정 및 공유 문서함 파일, 링크 업로드 로직 추가
infiniment Feb 9, 2026
95d0827
[Test] API 테스트 수정
infiniment Feb 9, 2026
14003b2
Merge branch 'develop' into feat/mypage/team-role
infiniment Feb 9, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class UserTeamRoleQueryService {
private final UserTeamRoleRepository userTeamRoleRepository;
private final ProjectUserRepository projectUserRepository;

// 마이페이지 팀 파트 조회(UserTeamRole 사용)
// 마이페이지 팀 파트 조회(UserTeamRole 사용), 프로젝트 멤버면 조회 가능
@Transactional(readOnly = true)
public UserTeamRolesResDto readMyPageParts(Long projectId, Long requesterUserId) {

Expand All @@ -37,7 +37,7 @@ public UserTeamRolesResDto readMyPageParts(Long projectId, Long requesterUserId)
}

List<UserTeamRole> roles =
userTeamRoleRepository.findAllByProject_IdAndUser_UserIdAndDeletedAtIsNullOrderByIdAsc(projectId, requesterUserId);
userTeamRoleRepository.findAllByProject_IdAndDeletedAtIsNullOrderByIdAsc(projectId);

List<UserTeamRolesResDto.PartDto> parts = roles.stream()
.map(r -> new UserTeamRolesResDto.PartDto(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public class UserTeamRoleService {
private static final int DEFAULT_REQUIRED_COUNT = 1;

private final UserTeamRoleRepository userTeamRoleRepository;
private final UserRepository userRepository;
private final ProjectRepository projectRepository;
private final ProjectUserRepository projectUserRepository;

Expand Down Expand Up @@ -76,8 +75,7 @@ public UserTeamRoleCreateResDto create(Long projectId, Long userId, UserTeamRole
}

boolean duplicate = userTeamRoleRepository
.existsByProject_IdAndUser_UserIdAndRoleFieldAndCustomRoleFieldNameIgnoreCaseAndDeletedAtIsNull(
projectId, userId, roleField, customName);
.existsByProject_IdAndRoleFieldAndCustomRoleFieldNameIgnoreCaseAndDeletedAtIsNull(projectId, roleField, customName);

if(duplicate) {
throw new UserTeamRoleException(
Expand All @@ -87,7 +85,7 @@ public UserTeamRoleCreateResDto create(Long projectId, Long userId, UserTeamRole
}
}else {
boolean duplicate = userTeamRoleRepository
.existsByProject_IdAndUser_UserIdAndRoleFieldAndDeletedAtIsNull(projectId, userId, roleField);
.existsByProject_IdAndRoleFieldAndDeletedAtIsNull(projectId, roleField);

if (duplicate) {
throw new UserTeamRoleException(
Expand All @@ -99,19 +97,13 @@ public UserTeamRoleCreateResDto create(Long projectId, Long userId, UserTeamRole
customName = null;
}

// 유저 조회
User user = userRepository.findById(userId)
.orElseThrow(() -> new UserTeamRoleException(UserTeamRoleErrorCode.USER_NOT_FOUND,
"userId=" + userId
));

Project project = projectRepository.findById(projectId)
.orElseThrow(() -> new UserTeamRoleException(UserTeamRoleErrorCode.PROJECT_NOT_FOUND, "projectId=" + projectId));

UserTeamRole saved = userTeamRoleRepository.save(
UserTeamRole.builder()
.project(project)
.user(user)
.roleField(roleField)
.customRoleFieldName(customName)
.requiredCount(requiredCount)
Expand Down Expand Up @@ -188,8 +180,8 @@ public UserTeamRoleUpdateResDto update(Long projectId, Long userId, Long userTea
String oldName = role.getCustomRoleFieldName();
if (oldName == null || !oldName.equalsIgnoreCase(newName)) {
boolean duplicate = userTeamRoleRepository
.existsByProject_IdAndUser_UserIdAndRoleFieldAndCustomRoleFieldNameIgnoreCaseAndDeletedAtIsNull(
projectId, role.getUser().getUserId(), RoleField.CUSTOM, newName
.existsByProject_IdAndRoleFieldAndCustomRoleFieldNameIgnoreCaseAndDeletedAtIsNull(
projectId, RoleField.CUSTOM, newName
);

if (duplicate) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.nect.api.domain.team.process.dto.res;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.nect.api.domain.team.process.enums.AttachmentType;
import com.nect.core.entity.team.enums.FileExt;

import java.time.LocalDateTime;

public record AttachmentMetaDto(
@JsonProperty("type")
AttachmentType type,

@JsonProperty("document_id")
Long documentId,

@JsonProperty("attached_at")
LocalDateTime attachedAt,

@JsonProperty("file_ext")
FileExt fileExt
) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.nect.api.domain.team.process.dto.res;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import com.nect.core.entity.team.enums.FileExt;

public record AttachmentSummaryDto(
@JsonProperty("total_count")
long totalCount,

@JsonProperty("file_count")
long fileCount,

@JsonProperty("link_count")
long linkCount,

@JsonProperty("file_extensions")
List<FileExt> fileExtensions
) {
public static AttachmentSummaryDto empty() {
return new AttachmentSummaryDto(0, 0, 0, List.of());
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,11 @@ public record ProcessCardResDto(
boolean hasOpenFeedback,

@JsonProperty("assignee")
List<AssigneeResDto> assignee
List<AssigneeResDto> assignee,

@JsonProperty("attachment_summary")
AttachmentSummaryDto attachmentSummary,

@JsonProperty("attachments_meta")
List<AttachmentMetaDto> attachmentsMeta
) {}
Loading