Skip to content
Open
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
5 changes: 4 additions & 1 deletion http/document.http
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
GET http://localhost:8080/api/documents/1

### document outbox 조회
GET http://localhost:8080/api/documents/outbox?drafterId=1
GET http://localhost:8080/api/documents/outbox?drafterId=2

### 문서 분류 조회
GET http://localhost:8080/api/documents/categories

### document create
POST http://localhost:8080/api/documents
Expand Down
5 changes: 5 additions & 0 deletions http/user.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### 전체 팀 조회
GET http://localhost:8080/api/teams

### 팀에 속한 회원 조회
GET http://localhost:8080/api/users?teamId=1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package playground.common.type;
package playground.domain.document;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package playground.common.type;
package playground.domain.document;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
Expand Down
9 changes: 2 additions & 7 deletions src/main/java/playground/domain/document/Document.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@

import lombok.*;
import playground.domain.user.User;
import playground.common.type.ApprovalState;
import playground.common.type.Category;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;

import static playground.common.type.ApprovalState.DRAFTING;
import static playground.domain.document.ApprovalState.DRAFTING;

@Getter
@EqualsAndHashCode(of = "id")
Expand Down Expand Up @@ -40,10 +38,7 @@ public class Document {
@JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private User drafter;

@OneToMany(
mappedBy = "document", fetch = FetchType.LAZY,
cascade = CascadeType.ALL, orphanRemoval = true
)
@OneToMany(mappedBy = "document", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<DocumentApproval> documentApprovals = new ArrayList<>();

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

import lombok.*;
import playground.domain.user.User;
import playground.common.type.ApprovalState;

import javax.persistence.*;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import playground.common.type.ApprovalState;

import java.util.List;

Expand Down
17 changes: 17 additions & 0 deletions src/main/java/playground/domain/user/JobPosition.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package playground.domain.user;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum JobPosition {

TEAM_LEADER("팀장"),
PART_MANAGER("파트장"),
TEAM_MEMBER("팀원")
;

private final String text;

}
31 changes: 31 additions & 0 deletions src/main/java/playground/domain/user/Team.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package playground.domain.user;

import lombok.*;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

@Getter
@EqualsAndHashCode(of = "id")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "team")
@Entity
public class Team {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String name;

@OneToMany(mappedBy = "team", fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<User> users = new ArrayList<>();

@Builder
public Team(String name) {
this.name = name;
}

}
6 changes: 6 additions & 0 deletions src/main/java/playground/domain/user/TeamRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package playground.domain.user;

import org.springframework.data.jpa.repository.JpaRepository;

public interface TeamRepository extends JpaRepository<Team, Long> {
}
11 changes: 10 additions & 1 deletion src/main/java/playground/domain/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,19 @@ public class User {

private String name;

@Enumerated(EnumType.STRING)
private JobPosition jobPosition;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private Team team;

@Builder
public User(String email, String password, String name) {
public User(String email, String password, String name, JobPosition jobPosition) {
this.email = email;
this.password = password;
this.name = name;
this.jobPosition = jobPosition;
}

}
83 changes: 0 additions & 83 deletions src/main/java/playground/service/document/DocumentApplication.java

This file was deleted.

18 changes: 14 additions & 4 deletions src/main/java/playground/service/document/DocumentService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import playground.domain.document.Category;
import playground.domain.document.Document;
import playground.domain.document.DocumentRepository;
import playground.common.type.ApprovalState;
import playground.domain.document.ApprovalState;

import java.util.List;
import java.util.Optional;
import java.util.*;

@Transactional(readOnly = true)
@RequiredArgsConstructor
Expand All @@ -18,15 +18,25 @@ public class DocumentService {
private final DocumentRepository documentRepository;

@Transactional
public Document createDocument(Document document) {
public Document create(Document document) {
return documentRepository.save(document);
}

public Optional<Document> findById(Long documentId) {
return documentRepository.findById(documentId);
}

public Document getById(Long documentId) {
return findById(documentId)
.orElseThrow(() -> new IllegalArgumentException(String.format("존재하지 않는 문서입니다. documentId = %s", documentId)));
}

public List<Document> findAllByDrafterIdAndApprovalStateOrderByIdDesc(Long drafterId, ApprovalState approvalState) {
return documentRepository.findByDrafterIdAndApprovalStateOrderByIdDesc(drafterId, approvalState);
}

public List<Category> findAllDocumentCategories() {
Category[] categories = Category.values();
return Arrays.asList(categories);
}
}
16 changes: 16 additions & 0 deletions src/main/java/playground/service/user/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import playground.domain.user.Team;
import playground.domain.user.TeamRepository;
import playground.domain.user.User;
import playground.domain.user.UserRepository;

Expand All @@ -15,12 +17,26 @@
public class UserService {

private final UserRepository userRepository;
private final TeamRepository teamRepository;

public Optional<User> findById(Long userId) {
return userRepository.findById(userId);
}

public User getById(Long userId) {
return findById(userId)
.orElseThrow(() -> new IllegalArgumentException(String.format("존재하지 않는 사용자입니다. userId = %s", userId)));
}

public List<User> findAllById(List<Long> userIds) {
return userRepository.findAllById(userIds);
}

public Optional<Team> findTeamById(Long teamId) {
return teamRepository.findById(teamId);
}

public List<Team> findAllTeams() {
return teamRepository.findAll();
}
}
37 changes: 0 additions & 37 deletions src/main/java/playground/web/document/DocumentController.java

This file was deleted.

Loading