Skip to content

Commit

Permalink
Merge pull request #343 from IceButler/refactor/#334-fridge-service
Browse files Browse the repository at this point in the history
#334 냉장고 추가 및 정보 수정 API 리팩토링
  • Loading branch information
psyeon1120 authored Jul 30, 2024
2 parents 6e699df + 10ed2c0 commit d5f666b
Show file tree
Hide file tree
Showing 15 changed files with 157 additions and 236 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ ext {
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@RequestMapping("/fridges")
Expand All @@ -33,7 +34,6 @@ public ResponseCustom<Void> healthCheck() {
return ResponseCustom.success();
}


@Operation(summary = "냉장고 추가", description = "냉장고를 추가한다.")
@SwaggerApiSuccess(implementation = ResponseCustom.class)
@ApiResponses(value = {
Expand All @@ -43,10 +43,10 @@ public ResponseCustom<Void> healthCheck() {
content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
})
@Auth
@PostMapping("/register")
public ResponseCustom<Long> registerFridge(@RequestBody FridgeRegisterReq fridgeRegisterReq,
@Parameter(hidden = true) @IsLogin Long userId) {
return ResponseCustom.success(fridgeService.registerFridge(fridgeRegisterReq, userId));
@PostMapping
public ResponseCustom<Long> addFridge(@Valid @RequestBody AddFridgeReq addFridgeReq,
@Parameter(hidden = true) @IsLogin Long userId) {
return ResponseCustom.success(fridgeService.addFridge(addFridgeReq, userId));
}

@Operation(summary = "냉장고 정보 수정", description = "냉장고 정보를 수정한다.")
Expand All @@ -63,10 +63,10 @@ public ResponseCustom<Long> registerFridge(@RequestBody FridgeRegisterReq fridge
})
@Auth
@PatchMapping("/{fridgeId}")
public ResponseCustom<?> modifyFridge(@Parameter(description = "냉장고 ID") @PathVariable Long fridgeId,
@RequestBody FridgeModifyReq fridgeModifyReq,
public ResponseCustom<Void> modifyFridge(@Parameter(description = "냉장고 ID") @PathVariable Long fridgeId,
@Valid @RequestBody EditFridgeReq editFridgeReq,
@Parameter(hidden = true) @IsLogin Long userId) {
fridgeService.modifyFridge(fridgeId, fridgeModifyReq, userId);
fridgeService.modifyFridge(fridgeId, editFridgeReq, userId);
return ResponseCustom.success();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.example.icebutler_server.fridge.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(name = "냉장고 추가 요청 정보")
public class AddFridgeReq {
@NotBlank
@Schema(description = "냉장고 이름", example = "우리집 냉장고")
private String fridgeName;
@Schema(description = "냉장고 설명", example = "우리집 냉장고입니다~")
private String fridgeComment;
@Schema(description = "냉장고 멤버 ID 리스트", example = "[ 1, 2 ]")
private List<Long> members;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.example.icebutler_server.fridge.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(name = "냉장고 수정 요청 정보")
public class EditFridgeReq {
@NotBlank
@Schema(description = "냉장고 이름", example = "우리집 냉장고")
private String fridgeName;

@Schema(description = "냉장고 설명", example = "우리집 냉장고입니다~")
private String fridgeComment;

@Schema(description = "냉장고 멤버 ID 리스트", example = "[ 1, 2 ]")
private List<Long> members;

@NotNull
@Schema(description = "냉장고 주인 ID", example = "1")
private Long newOwnerId;
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package com.example.icebutler_server.fridge.entity;

import com.example.icebutler_server.fridge.dto.request.FridgeRegisterReq;
import com.example.icebutler_server.fridge.dto.request.AddFridgeReq;
import com.example.icebutler_server.global.entity.BaseEntity;
import com.example.icebutler_server.global.entityListener.FridgeEntityListener;
import lombok.*;
import org.hibernate.annotations.SQLDelete;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@Entity
Expand All @@ -28,15 +27,7 @@ public class Fridge extends BaseEntity {

private String fridgeComment;

@Builder
public Fridge(
String fridgeName,
String fridgeComment) {
this.fridgeName = fridgeName;
this.fridgeComment = fridgeComment;
}

public void updateBasicFridgeInfo(String fridgeName, String fridgeComment) {
public void edit(String fridgeName, String fridgeComment) {
this.fridgeName = fridgeName;
this.fridgeComment = fridgeComment;
}
Expand All @@ -45,10 +36,10 @@ public void remove() {
this.setIsEnable(false);
}

public static Fridge toEntity(FridgeRegisterReq fridgeRegisterReq) {
public static Fridge toEntity(AddFridgeReq addFridgeReq) {
return Fridge.builder()
.fridgeName(fridgeRegisterReq.getFridgeName())
.fridgeComment(fridgeRegisterReq.getFridgeComment())
.fridgeName(addFridgeReq.getFridgeName())
.fridgeComment(addFridgeReq.getFridgeComment())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,19 @@ public FridgeUser(User user, Fridge fridge, FridgeRole role) {
this.role = role;
}

public void changeFridgeOwner(User user){
public static FridgeUser toEntity(User user, Fridge fridge, FridgeRole fridgeRole) {
return FridgeUser.builder()
.fridge(fridge)
.user(user)
.role(fridgeRole)
.build();
}

public void changeRoleToOwner(){
this.role = FridgeRole.OWNER;
}
public void changeFridgeMember(User user){

public void changeRoleToMember(){
this.role = FridgeRole.MEMBER;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,26 @@
@Repository
public interface FridgeUserRepository extends JpaRepository<FridgeUser, Long> {

Optional<Object> findByUserAndFridgeAndIsEnable(User user, Fridge fridge, Boolean isEnable);
Optional<FridgeUser> findByUserAndFridgeAndIsEnable(User user, Fridge fridge, Boolean isEnable);

Optional<FridgeUser> findByFridgeAndUserAndRoleAndIsEnable(Fridge fridge, User user, FridgeRole fridgeRole, Boolean status);
Optional<FridgeUser> findByFridgeAndUserIdAndRoleAndIsEnable(Fridge fridge, Long userId, FridgeRole fridgeRole, Boolean status);

Optional<FridgeUser> findByFridgeAndUser_IdAndRoleAndIsEnableAndUser_IsEnable(Fridge fridge, Long userId, FridgeRole fridgeRole, Boolean status, Boolean userStatus);
List<FridgeUser> findByFridgeAndIsEnable(Fridge fridge, Boolean isEnable);

List<FridgeUser> findByFridgeAndIsEnable(Fridge fridge, Boolean isEnable);
List<FridgeUser> findByFridgeAndIsEnableOrderByRoleDesc(Fridge fridge, Boolean isEnable);

List<FridgeUser> findByFridgeAndIsEnableOrderByRoleDesc(Fridge fridge, Boolean isEnable);
List<FridgeUser> findByUserAndIsEnable(User user, Boolean status);

List<FridgeUser> findByUserAndIsEnable(User user, Boolean status);
Optional<FridgeUser> findByFridgeAndUserAndIsEnable(Fridge fridge, User user, Boolean isEnable);

Optional<FridgeUser> findByFridgeAndUserAndIsEnable(Fridge fridge, User user, Boolean isEnable);
void deleteByFridge(Fridge fridge);

void deleteByFridge(Fridge fridge);
void deleteByUser(User user);

void deleteByUser(User user);
List<FridgeUser> findByUserAndRoleAndIsEnable(User user, FridgeRole role,Boolean isEnable);
List<FridgeUser> findByFridgeAndRoleAndIsEnable(Fridge fridge, FridgeRole role,Boolean isEnable);
void deleteByFridgeAndUserIn(Fridge fridge, List<User> user);

List<FridgeUser> findByUserAndRoleAndIsEnable(User user, FridgeRole role, Boolean isEnable);

List<FridgeUser> findByFridgeAndRoleAndIsEnable(Fridge fridge, FridgeRole role, Boolean isEnable);

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

public interface FridgeService {
FridgeMainRes getFoods(Long fridgeId, Long userId, String category);
Long registerFridge(FridgeRegisterReq registerFridgeReq, Long ownerId);
void modifyFridge(Long fridgeId, FridgeModifyReq updateFridgeReq, Long userId);
Long addFridge(AddFridgeReq registerFridgeReq, Long ownerId);
void modifyFridge(Long fridgeId, EditFridgeReq updateFridgeReq, Long userId);
Long removeFridge(Long fridgeId, Long userId);
Long removeFridgeUser(Long fridgeId, Long userId) throws IOException;
List<FridgeFoodsRes> searchFridgeFood(Long fridgeId, Long ownerId, String foodName);
Expand Down
Loading

0 comments on commit d5f666b

Please sign in to comment.