Skip to content
Merged

Step6 #153

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: 5 additions & 0 deletions src/main/java/codesquad/ImsApplication.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package codesquad;

import codesquad.property.FileStorageProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableConfigurationProperties({
FileStorageProperties.class
})
@EnableJpaAuditing
public class ImsApplication {
public static void main(String[] args) {
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/codesquad/domain/Answer.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package codesquad.domain;

import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthorizedException;
import org.slf4j.Logger;
import support.domain.AbstractEntity;

Expand All @@ -24,6 +24,8 @@ public class Answer extends AbstractEntity {
@JoinColumn(foreignKey = @ForeignKey(name = "fk_answer_issue"))
private Issue issue;



private String answer;

private boolean deleted = false;
Expand Down
94 changes: 94 additions & 0 deletions src/main/java/codesquad/domain/Attachment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package codesquad.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import support.domain.AbstractEntity;

import javax.persistence.*;
import javax.validation.constraints.Size;

@Entity
public class Attachment extends AbstractEntity {

@ManyToOne
@JsonIgnore
@JoinColumn(foreignKey = @ForeignKey(name = "fk_attachment_issue"))
private Issue issue;

@ManyToOne
@JoinColumn(foreignKey = @ForeignKey(name = "fk_attachment_writer"))
private User writer;

@Size(max = 260)
String originalFileName;

@Size(max = 32)
String storedFileName;

String path;

public Attachment() {

}

public Attachment(Issue issue, String originalFileName, String storedFileName, String path) {
this.issue = issue;
this.originalFileName = originalFileName;
this.storedFileName = storedFileName;
this.path = path;
}

public void writerBy(User loginUser) {
this.writer = loginUser;
}

public Issue getIssue() {
return issue;
}

public void setIssue(Issue issue) {
this.issue = issue;
}

public User getWriter() {
return writer;
}

public void setWriter(User writer) {
this.writer = writer;
}

public String getOriginalFileName() {
return originalFileName;
}

public void setOriginalFileName(String originalFileName) {
this.originalFileName = originalFileName;
}

public String getStoredFileName() {
return storedFileName;
}

public void setStoredFileName(String storedFileName) {
this.storedFileName = storedFileName;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

@Override
public String toString() {
return "Attachment{" +
"issue=" + issue +
", writer=" + writer +
", originalFileName='" + originalFileName + '\'' +
", storedFileName='" + storedFileName + '\'' +
", path='" + path + '\'' +
'}';
}
}
6 changes: 6 additions & 0 deletions src/main/java/codesquad/domain/AttachmentRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package codesquad.domain;

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

public interface AttachmentRepository extends JpaRepository<Attachment, Long> {
}
20 changes: 18 additions & 2 deletions src/main/java/codesquad/domain/Issue.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package codesquad.domain;

import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthorizedException;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.slf4j.Logger;
import sun.jvm.hotspot.debugger.cdbg.basic.LazyBlockSym;
import support.domain.AbstractEntity;

import javax.persistence.*;
Expand Down Expand Up @@ -35,6 +35,10 @@ public class Issue extends AbstractEntity {
@JoinColumn(foreignKey = @ForeignKey(name = "fk_issue_labels"))
private List<Label> lables;

@OneToMany(mappedBy = "issue", cascade = CascadeType.REMOVE)
@OrderBy("id ASC")
private List<Attachment> attachments;

private boolean deleted = false;

public Issue() {
Expand Down Expand Up @@ -102,6 +106,14 @@ public void setLables(List<Label> lables) {
this.lables = lables;
}

public List<Attachment> getAttachments () {
return attachments;
}

public void setAttachments(List<Attachment> attachments) {
this.attachments = attachments;
}

public boolean isOwner(User loginUser) {
return writer.equals(loginUser);
}
Expand Down Expand Up @@ -131,4 +143,8 @@ public void addAssignee(User assignee) {
public void addLable(Label lable) {
this.lables.add(lable);
}

public void addAttachment(Attachment attachment) {
this.attachments.add(attachment);
}
}
2 changes: 1 addition & 1 deletion src/main/java/codesquad/domain/User.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package codesquad.domain;

import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthorizedException;
import codesquad.dto.UserDto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down
47 changes: 47 additions & 0 deletions src/main/java/codesquad/domain/response/UploadFileResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package codesquad.domain.response;

public class UploadFileResponse {
private String fileName;
private String fileDownloadUri;
private String fileType;
private long size;

public UploadFileResponse(String fileName, String fileDownloadUri, String fileType, long size) {
this.fileName = fileName;
this.fileDownloadUri = fileDownloadUri;
this.fileType = fileType;
this.size = size;
}

public String getFileName() {
return fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}

public String getFileDownloadUri() {
return fileDownloadUri;
}

public void setFileDownloadUri(String fileDownloadUri) {
this.fileDownloadUri = fileDownloadUri;
}

public String getFileType() {
return fileType;
}

public void setFileType(String fileType) {
this.fileType = fileType;
}

public long getSize() {
return size;
}

public void setSize(long size) {
this.size = size;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생성자 활용해 객체를 생성하기 때문에 굳이 setter 메소드가 필요없지 않을까?

}
13 changes: 13 additions & 0 deletions src/main/java/codesquad/exception/FileStorageException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package codesquad.exception;

import org.omg.SendingContext.RunTime;

public class FileStorageException extends RuntimeException {
public FileStorageException(String message) {
super(message);
}

public FileStorageException(String message, Throwable cause) {
super(message, cause);
}
}
11 changes: 11 additions & 0 deletions src/main/java/codesquad/exception/MyFileNotFoundException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package codesquad.exception;

public class MyFileNotFoundException extends RuntimeException {
public MyFileNotFoundException(String message) {
super(message);
}

public MyFileNotFoundException(String message, Throwable cause) {
super(message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package codesquad;
package codesquad.exception;

public class UnAuthenticationException extends Exception {
private static final long serialVersionUID = 1L;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package codesquad;
package codesquad.exception;

public class UnAuthorizedException extends RuntimeException {
private static final long serialVersionUID = 1L;
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/codesquad/property/FileStorageProperties.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package codesquad.property;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "file")
public class FileStorageProperties {
private String uploadDir;

public String getUploadDir() {
return uploadDir;
}

public void setUploadDir(String uploadDir) {
this.uploadDir = uploadDir;
}
}
2 changes: 1 addition & 1 deletion src/main/java/codesquad/security/BasicAuthInterceptor.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package codesquad.security;

import codesquad.UnAuthenticationException;
import codesquad.exception.UnAuthenticationException;
import codesquad.domain.User;
import codesquad.service.UserService;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package codesquad.security;

import codesquad.UnAuthenticationException;
import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthenticationException;
import codesquad.domain.User;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package codesquad.security;

import codesquad.UnAuthenticationException;
import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthenticationException;
import codesquad.exception.UnAuthorizedException;
import org.slf4j.Logger;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import support.domain.ErrorMessage;
import support.domain.Result;

import javax.persistence.EntityNotFoundException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package codesquad.security;

import codesquad.UnAuthenticationException;
import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthenticationException;
import codesquad.exception.UnAuthorizedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/codesquad/service/AnswerService.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package codesquad.service;

import codesquad.UnAuthorizedException;
import codesquad.exception.UnAuthorizedException;
import codesquad.domain.*;
import org.slf4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import javax.naming.AuthenticationException;
import java.util.List;

import static org.slf4j.LoggerFactory.getLogger;
Expand Down
Loading