Skip to content

Commit

Permalink
feat : Update and Read issue(#10)
Browse files Browse the repository at this point in the history
- 이슈 제목을 수정할 수 있습니다.

- 이슈를 이슈 번호를 통해 조회할 수 있습니다.
  • Loading branch information
pbg0205 committed Jun 16, 2021
1 parent 080879c commit f8a5676
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import com.codesquad.issuetracker.comment.domain.Comment;
import org.springframework.data.repository.CrudRepository;

import java.util.List;
import java.util.UUID;

public interface CommentRepository extends CrudRepository<Comment, UUID> {
List<Comment> findAllByIssueId(Long id);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.codesquad.issuetracker.issue.controller;

import com.codesquad.issuetracker.issue.dto.IssueCreateRequest;
import com.codesquad.issuetracker.issue.dto.IssueRequest;
import com.codesquad.issuetracker.issue.dto.IssueWrapper;
import com.codesquad.issuetracker.issue.service.IssueService;
import com.codesquad.issuetracker.user.domain.User;
Expand All @@ -16,8 +17,18 @@ public IssueController(IssueService issueService) {
this.issueService = issueService;
}

@GetMapping("{id}")
public IssueWrapper readIssue(@PathVariable Long id) {
return issueService.readIssueById(id);
}

@PostMapping
public IssueWrapper createIssue(@RequestBody IssueCreateRequest issueCreateRequest, @RequestAttribute User author) {
return issueService.createIssue(issueCreateRequest, author);
}

@PutMapping("{id}")
public IssueWrapper updateIssue(@RequestBody IssueRequest issueRequest, @PathVariable Long id) {
return issueService.updateIssue(issueRequest, id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public void removeMilestone() {
this.milestone = null;
}

public void updateTitle(String title) {
public void updateIssue(String title) {
this.title = title;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.codesquad.issuetracker.issue.dto;

import lombok.Getter;

@Getter
public class IssueRequest {
private String title;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
import com.codesquad.issuetracker.comment.infra.CommentRepository;
import com.codesquad.issuetracker.issue.domain.Issue;
import com.codesquad.issuetracker.issue.dto.IssueCreateRequest;
import com.codesquad.issuetracker.issue.dto.IssueRequest;
import com.codesquad.issuetracker.issue.dto.IssueResponse;
import com.codesquad.issuetracker.issue.dto.IssueWrapper;
import com.codesquad.issuetracker.issue.repository.IssueRepository;
import com.codesquad.issuetracker.issue.infra.IssueRepository;
import com.codesquad.issuetracker.label.infra.LabelRepository;
import com.codesquad.issuetracker.milestone.domain.Milestone;
import com.codesquad.issuetracker.milestone.infra.MilestoneRepository;
import com.codesquad.issuetracker.user.domain.User;
import com.codesquad.issuetracker.user.infra.UserRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.UUID;

@Service
Expand Down Expand Up @@ -63,4 +63,18 @@ public IssueWrapper createIssue(IssueCreateRequest issueCreateRequest, User auth

return IssueWrapper.wrap(IssueResponse.fromEntity(issue, Collections.singletonList(comment)));
}

public IssueWrapper readIssueById(Long id) {
Issue issue = issueRepository.findById(id).orElseThrow(RuntimeException::new);
List<Comment> comments = commentRepository.findAllByIssueId(id);
return IssueWrapper.wrap(IssueResponse.fromEntity(issue, comments));
}

@Transactional
public IssueWrapper updateIssue (IssueRequest issueRequest, Long id) {
Issue issue = issueRepository.findById(id).orElseThrow(RuntimeException::new);
List<Comment> comments = commentRepository.findAllByIssueId(id);
issue.updateIssue(issueRequest.getTitle());
return IssueWrapper.wrap(IssueResponse.fromEntity(issue, comments));
}
}

0 comments on commit f8a5676

Please sign in to comment.