Skip to content

Commit

Permalink
Merge pull request #69 from Favor-Gift-Reminder/eunki96/#57-4
Browse files Browse the repository at this point in the history
[Feat] AWS S3를 이용한 이미지파일 업로드
[Fix] 버그 수정
  • Loading branch information
Juser0 authored Aug 20, 2023
2 parents 821aae4 + 2620d1c commit ba64cc0
Show file tree
Hide file tree
Showing 44 changed files with 1,385 additions and 464 deletions.
10 changes: 6 additions & 4 deletions favor/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,17 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'

// JWT
implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.2'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.2'
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'

//Sentry
implementation("io.sentry:sentry-spring-boot-starter:4.3.0")

implementation 'org.springframework:spring-context:5.3.12'
}

//AWS S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'}

tasks.named('test') {
useJUnitPlatform()
Expand Down
2 changes: 1 addition & 1 deletion favor/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
21 changes: 12 additions & 9 deletions favor/src/main/java/com/favor/favor/anniversary/Anniversary.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
package com.favor.favor.anniversary;

import com.favor.favor.common.TimeStamped;
import com.favor.favor.common.enums.Category;
import com.favor.favor.common.enums.AnniversaryCategory;
import com.favor.favor.user.User;
import lombok.*;

import javax.persistence.*;
import javax.transaction.Transactional;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;


@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
@Transactional
public class Anniversary extends TimeStamped {

@Id
Expand All @@ -30,8 +25,8 @@ public class Anniversary extends TimeStamped {
public void setAnniversaryDate(LocalDate anniversaryDate){ this.anniversaryDate = anniversaryDate; }

private Integer category;
public void setCategory(Category category){
this.category = category.getType();
public void setCategory(AnniversaryCategory anniversaryCategory){
this.category = anniversaryCategory.getType();
}

private Boolean isPinned;
Expand All @@ -41,4 +36,12 @@ public void setCategory(Category category){
@JoinColumn(name = "user_user_no")
private User user;

@Builder
public Anniversary(String anniversaryTitle, LocalDate anniversaryDate, Integer category, Boolean isPinned, User user) {
this.anniversaryTitle = anniversaryTitle;
this.anniversaryDate = anniversaryDate;
this.category = category;
this.isPinned = isPinned;
this.user = user;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
@RestController
@RequestMapping("/anniversaries")
@RequiredArgsConstructor
@Log4j2
public class AnniversaryController {

private final AnniversaryService anniversaryService;
Expand Down Expand Up @@ -71,7 +70,6 @@ public ResponseEntity<DefaultResponseDto<Object>> createAnniversary(
message = "SERVER_ERROR")
})
@ResponseStatus(HttpStatus.OK)
@Transactional
@GetMapping("/{anniversaryNo}")
public ResponseEntity<DefaultResponseDto<Object>> readAnniversary(
@PathVariable Long anniversaryNo){
Expand Down Expand Up @@ -101,7 +99,6 @@ public ResponseEntity<DefaultResponseDto<Object>> readAnniversary(
message = "SERVER_ERROR")
})
@ResponseStatus(HttpStatus.OK)
@Transactional
@PatchMapping("/{anniversaryNo}")
public ResponseEntity<DefaultResponseDto<Object>> updateAnniversary(
@RequestBody AnniversaryUpdateRequestDto anniversaryUpdateRequestDto,
Expand Down Expand Up @@ -134,7 +131,6 @@ public ResponseEntity<DefaultResponseDto<Object>> updateAnniversary(
message = "SERVER_ERROR")
})
@ResponseStatus(HttpStatus.OK)
@Transactional
@PatchMapping("/pin/{anniversaryNo}")
public ResponseEntity<DefaultResponseDto<Object>> updateIsPinned(
@PathVariable Long anniversaryNo){
Expand Down Expand Up @@ -166,7 +162,6 @@ public ResponseEntity<DefaultResponseDto<Object>> updateIsPinned(
message = "SERVER_ERROR")
})
@ResponseStatus(HttpStatus.OK)
@Transactional
@DeleteMapping("/{anniversaryNo}")
public ResponseEntity<DefaultResponseDto<Object>> deleteAnniversary(
@PathVariable Long anniversaryNo){
Expand Down Expand Up @@ -197,7 +192,6 @@ public ResponseEntity<DefaultResponseDto<Object>> deleteAnniversary(
message = "SERVER_ERROR")
})
@ResponseStatus(HttpStatus.OK)
@Transactional
@GetMapping("/admin")
public ResponseEntity<DefaultResponseDto<Object>> readAll(){

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.favor.favor.anniversary;

import com.favor.favor.common.enums.Category;
import com.favor.favor.common.enums.AnniversaryCategory;
import com.favor.favor.user.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
Expand All @@ -20,17 +20,18 @@ public class AnniversaryRequestDto {
@ApiModelProperty(position = 2, required = true, value = "날짜", example = "1996-02-29")
private String anniversaryDate;

@ApiModelProperty(position = 3, required = true, value = "종류", example = "생일")
private Category category;
@ApiModelProperty(position = 3, required = true, value = "종류", example = "축하_생일")
private AnniversaryCategory anniversaryCategory;

@Transactional
public Anniversary toEntity(User user, LocalDate localDate){
public Anniversary toEntity(String anniversaryTitle, User user){
return Anniversary.builder()
.anniversaryTitle(anniversaryTitle)
.anniversaryDate(localDate)
.category(category.getType())
.anniversaryDate(LocalDate.parse(anniversaryDate))
.category(anniversaryCategory.getType())
.isPinned(false)
.user(user)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.favor.favor.anniversary;

import com.favor.favor.common.enums.AnniversaryCategory;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@AllArgsConstructor
Expand All @@ -18,6 +18,7 @@ public class AnniversaryResponseDto {
private Long userNo;
private LocalDateTime createdAt;
private LocalDateTime modifiedAt;
private AnniversaryCategory anniversaryCategory;

@Builder
public AnniversaryResponseDto(Anniversary anniversary){
Expand All @@ -28,5 +29,6 @@ public AnniversaryResponseDto(Anniversary anniversary){
this.userNo = anniversary.getUser().getUserNo();
this.createdAt = anniversary.getCreatedAt();
this.modifiedAt = anniversary.getModifiedAt();
this.anniversaryCategory = AnniversaryCategory.valueOf(anniversary.getCategory());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

import javax.transaction.Transactional;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -28,45 +26,14 @@ public class AnniversaryService {
@Transactional
public Anniversary createAnniversary(AnniversaryRequestDto anniversaryRequestDto, Long userNo){
User user = findUserByUserNo(userNo);
LocalDate localDate = returnLocalDate(anniversaryRequestDto.getAnniversaryDate());
Anniversary anniversary = anniversaryRepository.save(anniversaryRequestDto.toEntity(user, localDate));
Anniversary anniversary = anniversaryRepository.save(anniversaryRequestDto.toEntity(anniversaryRequestDto.getAnniversaryTitle(), user));
return anniversaryRepository.save(anniversary);
}

@Transactional
public void addAnniversaryNo(Long anniversaryNo, List<Long> friendNoList){
for(Long friendNo : friendNoList){
Friend friend = findFriendByFriendNo(friendNo);
List<Long> anniversaryNoList = friend.getAnniversaryNoList();

boolean flag = true;
if (anniversaryNoList.contains(anniversaryNo)) {
flag = false;
break;
}
if(flag) anniversaryNoList.add(anniversaryNo);

friend.setAnniversaryNoList(anniversaryNoList);
}
}

public Friend findFriendByFriendNo(Long friendNo){
Friend friend = null;
try{
friend = friendRepository.findByFriendNo(friendNo).orElseThrow(
() -> new RuntimeException()
);
} catch (RuntimeException e){
throw new CustomException(e, FRIEND_NOT_FOUND);
}
return friend;
}

public void updateAnniversary(AnniversaryUpdateRequestDto dto, Anniversary anniversary){
anniversary.setAnniversaryTitle(dto.getAnniversaryTitle());
LocalDate localDate = returnLocalDate(dto.getAnniversaryDate());
anniversary.setAnniversaryDate(localDate);
anniversary.setCategory(dto.getCategory());
anniversary.setAnniversaryDate(LocalDate.parse(dto.getAnniversaryDate()));
anniversary.setCategory(dto.getAnniversaryCategory());

anniversaryRepository.save(anniversary);
}
Expand All @@ -76,6 +43,7 @@ public void updateIsPinned(Anniversary anniversary){
anniversaryRepository.save(anniversary);
}

@Transactional
public void deleteAnniversary(Long anniversaryNo){
List<Friend> friendList = findAnniversaryByAnniversaryNo(anniversaryNo).getUser().getFriendList();
for(Friend friend : friendList){
Expand Down Expand Up @@ -125,17 +93,6 @@ public Anniversary findAnniversaryByAnniversaryNo(Long anniversaryNo){
public AnniversaryResponseDto returnDto(Anniversary anniversary){
return new AnniversaryResponseDto(anniversary);
}
public LocalDate returnLocalDate(String dateString){
String patternDate = "yyyy-MM-dd";
try{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(patternDate);
LocalDate date = LocalDate.parse(dateString, formatter);
return date;

} catch(DateTimeParseException e){
throw new CustomException(e, DATE_INVALID);
}
}

public void isExistingAnniversaryNo(Long anniversaryNo){
Boolean isExistingNo = null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.favor.favor.anniversary;

import com.favor.favor.common.enums.Category;
import com.favor.favor.common.enums.AnniversaryCategory;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;


@Getter
@NoArgsConstructor
Expand All @@ -20,8 +18,8 @@ public class AnniversaryUpdateRequestDto {
@ApiModelProperty(position = 2, required = true, value = "날짜", example = "1996-02-29")
private String anniversaryDate;

@ApiModelProperty(position = 3, required = true, value = "종류", example = "생일")
private Category category;
@ApiModelProperty(position = 3, required = true, value = "종류", example = "축하_생일")
private AnniversaryCategory anniversaryCategory;

@ApiModelProperty(position = 4, required = true, value = "핀 여부", example = "false")
private Boolean isPinned;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package com.favor.favor.common.enums;

import lombok.Getter;

public enum AnniversaryCategory {
연인(1),
축하_생일(2),
졸업(3),
합격(4),
입사_승진(5),
이사_집들이(6),
출산(7);

@Getter
Integer type;

AnniversaryCategory(Integer type){
this.type = type;
}

public static AnniversaryCategory validateType(String category){
try{
return AnniversaryCategory.valueOf(category);
}catch(IllegalStateException e){
throw new IllegalArgumentException();
}

}

public static AnniversaryCategory valueOf(Integer type){
AnniversaryCategory anniversaryCategory = null;
switch (type){
case 1:
anniversaryCategory = AnniversaryCategory.연인;
break;
case 2:
anniversaryCategory = AnniversaryCategory.축하_생일;
break;
case 3:
anniversaryCategory = AnniversaryCategory.졸업;
break;
case 4:
anniversaryCategory = AnniversaryCategory.합격;
break;
case 5:
anniversaryCategory = AnniversaryCategory.입사_승진;
break;
case 6:
anniversaryCategory = AnniversaryCategory.이사_집들이;
break;
case 7:
anniversaryCategory = AnniversaryCategory.출산;
break;
}
return anniversaryCategory;
}
}
Loading

0 comments on commit ba64cc0

Please sign in to comment.