Skip to content

Commit

Permalink
[BE] 이슈 다중 상태 변경 (#161)
Browse files Browse the repository at this point in the history
* docs: oauth 로그인을 위한 email 컬럼 추가

* feat: 이슈 다중 상태 변경 기능구현
  • Loading branch information
23Yong committed Aug 17, 2023
1 parent 71fb2fe commit 9d0c4c2
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import kr.codesquad.issuetracker.infrastructure.persistence.IssueRepository;
import kr.codesquad.issuetracker.infrastructure.persistence.mapper.IssueDAO;
import kr.codesquad.issuetracker.infrastructure.persistence.mapper.IssueSimpleMapper;
import kr.codesquad.issuetracker.presentation.converter.OpenState;
import kr.codesquad.issuetracker.presentation.request.AssigneeRequest;
import kr.codesquad.issuetracker.presentation.request.IssueLabelRequest;
import kr.codesquad.issuetracker.presentation.request.IssueRegisterRequest;
Expand Down Expand Up @@ -144,4 +145,9 @@ public void updateIssueMilestone(Integer issueId, Integer milestoneId) {

issueRepository.updateIssueMilestone(issueId, milestoneId);
}

@Transactional
public void modifyMultipleIssueState(OpenState openState, List<Integer> issueIds) {
issueRepository.updateAllIssue(openState, issueIds);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package kr.codesquad.issuetracker.infrastructure.persistence;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
Expand All @@ -14,6 +16,7 @@
import org.springframework.stereotype.Repository;

import kr.codesquad.issuetracker.domain.Issue;
import kr.codesquad.issuetracker.presentation.converter.OpenState;
import kr.codesquad.issuetracker.presentation.response.IssueDetailResponse;

@Repository
Expand Down Expand Up @@ -111,4 +114,17 @@ public void updateIssueMilestone(Integer issueId, Integer milestoneId) {

jdbcTemplate.update(sql, params);
}

public void updateAllIssue(OpenState openState, List<Integer> issueIds) {
String sql = "UPDATE issue SET is_open = :openState WHERE id = :issueId";
List<MapSqlParameterSource> params = new ArrayList<>();
for (Integer issueId : issueIds) {
MapSqlParameterSource param = new MapSqlParameterSource();
param
.addValue("openState", openState.isOpen())
.addValue("issueId", issueId);
params.add(param);
}
jdbcTemplate.batchUpdate(sql, params.toArray(MapSqlParameterSource[]::new));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@
import kr.codesquad.issuetracker.infrastructure.persistence.mapper.IssueSimpleMapper;
import kr.codesquad.issuetracker.presentation.auth.AuthPrincipal;
import kr.codesquad.issuetracker.presentation.auth.Principal;
import kr.codesquad.issuetracker.presentation.converter.OpenState;
import kr.codesquad.issuetracker.presentation.request.AssigneeRequest;
import kr.codesquad.issuetracker.presentation.request.IssueLabelRequest;
import kr.codesquad.issuetracker.presentation.request.IssueMilestoneRequest;
import kr.codesquad.issuetracker.presentation.request.IssueModifyRequest;
import kr.codesquad.issuetracker.presentation.request.IssueRegisterRequest;
import kr.codesquad.issuetracker.presentation.request.MultipleIssueModifyRequest;
import kr.codesquad.issuetracker.presentation.response.IssueDetailResponse;
import kr.codesquad.issuetracker.presentation.response.IssueDetailSidebarResponse;
import kr.codesquad.issuetracker.presentation.response.Page;
Expand Down Expand Up @@ -104,4 +106,10 @@ public ResponseEntity<Void> updateIssueMilestone(@PathVariable Integer issueId,

return ResponseEntity.ok().build();
}

@PutMapping
public ResponseEntity<Void> modifyStateOfMultipleIssue(@RequestBody MultipleIssueModifyRequest request) {
issueService.modifyMultipleIssueState(OpenState.of(request.getState()), request.getIssueIds());
return ResponseEntity.ok().build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package kr.codesquad.issuetracker.presentation.request;

import java.util.List;

import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class MultipleIssueModifyRequest {

private String state;
private List<Integer> issueIds;
}

0 comments on commit 9d0c4c2

Please sign in to comment.