From 6d1fd7375898a13f6d04ca9dabab014fe9f11d97 Mon Sep 17 00:00:00 2001 From: Hamill210 Date: Wed, 24 Jun 2020 23:48:45 +0900 Subject: [PATCH] =?UTF-8?q?[BE/#33]=20Feat=20:=20=EC=9D=B4=EC=8A=88=20Labe?= =?UTF-8?q?ls=20=EC=B6=94=EA=B0=80=20/=20=EC=88=98=EC=A0=95=20API=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IssueController_Hamill.java | 16 +++++++-- .../controller/LabelController_Hamill.java | 3 -- .../hamill/dao/IssueHasLabelDao_Hamill.java | 11 ++++++ .../hamill/dao/LabelDao_Hamill.java | 2 +- .../dto/request/UpdateAttachedLabelsDto.java | 34 +++++++++++++++++++ .../hamill/service/LabelService_Hamill.java | 11 ++++++ 6 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 BE/src/main/java/com/codesquad/issuetracker/hamill/dto/request/UpdateAttachedLabelsDto.java diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/IssueController_Hamill.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/IssueController_Hamill.java index 3c769b7..db8c6d4 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/IssueController_Hamill.java +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/IssueController_Hamill.java @@ -1,13 +1,14 @@ package com.codesquad.issuetracker.hamill.controller; import com.codesquad.issuetracker.hamill.dto.request.NewIssueDto; +import com.codesquad.issuetracker.hamill.dto.request.UpdateAttachedLabelsDto; import com.codesquad.issuetracker.hamill.dto.request.UpdateStateOfIssueDto; import com.codesquad.issuetracker.hamill.dto.request.UpdateTitleDto; import com.codesquad.issuetracker.hamill.dto.response.ApiResponse; import com.codesquad.issuetracker.hamill.dto.response.IssueDto; import com.codesquad.issuetracker.hamill.dto.response.ListOfIssuesDto; import com.codesquad.issuetracker.hamill.service.IssueService_Hamill; -import com.codesquad.issuetracker.hamill.service.UserService_Hamill; +import com.codesquad.issuetracker.hamill.service.LabelService_Hamill; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; @@ -23,9 +24,11 @@ public class IssueController_Hamill { private static final Logger logger = LoggerFactory.getLogger(IssueController_Hamill.class); private IssueService_Hamill issueService_Hamill; + private LabelService_Hamill labelService_hamill; - public IssueController_Hamill(IssueService_Hamill issueService_Hamill) { + public IssueController_Hamill(IssueService_Hamill issueService_Hamill, LabelService_Hamill labelService_hamill) { this.issueService_Hamill = issueService_Hamill; + this.labelService_hamill = labelService_hamill; } @GetMapping("") @@ -61,4 +64,11 @@ public ResponseEntity> updateStatusOfIssue(@RequestBody UpdateSta return new ResponseEntity<>(ApiResponse.OK("SUCCESS"), HttpStatus.OK); } - } + + @PutMapping("/{issueId}/labels") + public ResponseEntity> updateAttachedLabels(@PathVariable Long issueId, @RequestBody UpdateAttachedLabelsDto updateAttachedLabelsDto) { + labelService_hamill.updateAttachedLabels(issueId, updateAttachedLabelsDto); + + return new ResponseEntity<>(ApiResponse.OK("SUCCESS"), HttpStatus.OK); + } +} diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/LabelController_Hamill.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/LabelController_Hamill.java index e8f9bd8..da31307 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/LabelController_Hamill.java +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/controller/LabelController_Hamill.java @@ -4,15 +4,12 @@ import com.codesquad.issuetracker.hamill.dto.response.ApiResponse; import com.codesquad.issuetracker.hamill.service.LabelService_Hamill; import com.codesquad.issuetracker.hamill.vo.labelVO.ContainedDescriptionLabelInformation; -import com.codesquad.issuetracker.hamill.vo.labelVO.LabelInformation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; - @RestController @RequestMapping("/hamill/api/labels") public class LabelController_Hamill { diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/IssueHasLabelDao_Hamill.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/IssueHasLabelDao_Hamill.java index 099427f..7d96336 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/IssueHasLabelDao_Hamill.java +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/IssueHasLabelDao_Hamill.java @@ -1,5 +1,6 @@ package com.codesquad.issuetracker.hamill.dao; +import com.codesquad.issuetracker.hamill.dto.request.UpdateAttachedLabelsDto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; @@ -20,4 +21,14 @@ public void deleteIssueHasLabelByLabelId(Integer labelId) { String sql = "DELETE FROM issue_has_label WHERE label_id = ?"; jdbcTemplate.update(sql, labelId); } + + public void addedAttachedLabel(Long issueId, Integer labelId) { + String sql = "INSERT INTO issue_has_label(label_id, issue_id) VALUES (?, ?) "; + jdbcTemplate.update(sql,labelId, issueId); + } + + public void deletedAttachedLabel(Long issueId, Integer labelId) { + String sql = "DELETE FROM issue_has_label WHERE issue_id = ? AND label_id = ?"; + jdbcTemplate.update(sql, issueId, labelId); + } } diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/LabelDao_Hamill.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/LabelDao_Hamill.java index fe9d90c..d6583ed 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/LabelDao_Hamill.java +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/dao/LabelDao_Hamill.java @@ -43,7 +43,7 @@ public List findLabelSummariesByIssueId(Long issueId) { rs.getString("name"), rs.getString("background_color"), rs.getString("color")) - , issueId); + , issueId); } public void create(NewLabelDto newLabelDto) { diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/dto/request/UpdateAttachedLabelsDto.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/dto/request/UpdateAttachedLabelsDto.java new file mode 100644 index 0000000..243e261 --- /dev/null +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/dto/request/UpdateAttachedLabelsDto.java @@ -0,0 +1,34 @@ +package com.codesquad.issuetracker.hamill.dto.request; + +import java.util.List; + +public class UpdateAttachedLabelsDto { + + private Long userId; + + private List addedLabelsId; + + private List deletedLabelsId; + + private UpdateAttachedLabelsDto(Long userId, List addedLabelsId, List deletedLabelsId) { + this.userId = userId; + this.addedLabelsId = addedLabelsId; + this.deletedLabelsId = deletedLabelsId; + } + + public static UpdateAttachedLabelsDto of(Long userId, List addedLabelsId, List deletedLabelsId) { + return new UpdateAttachedLabelsDto(userId, addedLabelsId, deletedLabelsId); + } + + public Long getUserId() { + return userId; + } + + public List getAddedLabelsId() { + return addedLabelsId; + } + + public List getDeletedLabelsId() { + return deletedLabelsId; + } +} diff --git a/BE/src/main/java/com/codesquad/issuetracker/hamill/service/LabelService_Hamill.java b/BE/src/main/java/com/codesquad/issuetracker/hamill/service/LabelService_Hamill.java index f2b18fb..d56a79c 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/hamill/service/LabelService_Hamill.java +++ b/BE/src/main/java/com/codesquad/issuetracker/hamill/service/LabelService_Hamill.java @@ -4,6 +4,7 @@ import com.codesquad.issuetracker.hamill.dao.LabelDao_Hamill; import com.codesquad.issuetracker.hamill.domain.Label; import com.codesquad.issuetracker.hamill.dto.request.NewLabelDto; +import com.codesquad.issuetracker.hamill.dto.request.UpdateAttachedLabelsDto; import com.codesquad.issuetracker.hamill.vo.labelVO.ContainedDescriptionLabelInformation; import com.codesquad.issuetracker.hamill.vo.labelVO.ContainedDescriptionLabelSummary; import com.codesquad.issuetracker.hamill.vo.labelVO.LabelInformation; @@ -56,6 +57,16 @@ public List findLabelSummariesByIssueId(Long issueId) { return labelDao_hamill.findLabelSummariesByIssueId(issueId); } + public void updateAttachedLabels(Long issueId, UpdateAttachedLabelsDto updateAttachedLabelsDto) { + for (int i = 0; i < updateAttachedLabelsDto.getAddedLabelsId().size(); i++) { + issueHasLabelDao_hamill.addedAttachedLabel(issueId, updateAttachedLabelsDto.getAddedLabelsId().get(i)); + } + + for (int i = 0; i< updateAttachedLabelsDto.getDeletedLabelsId().size(); i++) { + issueHasLabelDao_hamill.deletedAttachedLabel(issueId, updateAttachedLabelsDto.getDeletedLabelsId().get(i)); + } + } + public void create(NewLabelDto newLabelDto) { labelDao_hamill.create(newLabelDto); }