Skip to content
Merged
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.webservice.algorithmchef.controller;

import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.webservice.algorithmchef.dto.ingredient.IngredientResponse;
import com.webservice.algorithmchef.service.IngredientService;

import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
public class IngredientController {

private final IngredientService ingredientService;

@GetMapping("/ingredients")
public ResponseEntity<?> retrieveAll(@RequestParam(value="page",defaultValue = "0") int page,
@RequestParam(value="size",defaultValue = "10") int size,
@RequestParam(value="name",required = false)String name,
@RequestParam(value="category",required = false)String category){
try {
Page<IngredientResponse> response = null;
if(category != null) {
response = ingredientService.filterByCategory(category,page, size);
}else if(name != null) {
response = ingredientService.filterByName(name, page, size);
}else {
response = ingredientService.retrieveAll(page, size);
}
return ResponseEntity.ok(response);
}catch(IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
package com.webservice.algorithmchef.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.webservice.algorithmchef.dto.fridgeingredient.ChangeFridgeIngredientRequest;
import com.webservice.algorithmchef.dto.fridgeingredient.ChangeFridgeIngredientResponse;
import com.webservice.algorithmchef.dto.userfridge.FridgeBatchUpdateRequest;
import com.webservice.algorithmchef.dto.userfridge.PageUserFridgeResponse;
import com.webservice.algorithmchef.dto.userfridge.UserFridgeRequest;
import com.webservice.algorithmchef.dto.userfridge.UserFridgeResponse;
import com.webservice.algorithmchef.service.UserFridgeService;

import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
@RequestMapping("/fridge")
public class UserFridgeController {

private final UserFridgeService userFridgeService;

@PostMapping("/ingredient/register/manual")
public ResponseEntity<?> registerIngredients(@RequestBody UserFridgeRequest fridgeRequest,
@AuthenticationPrincipal UserDetails userDetails){
try {
String userId = userDetails.getUsername();
UserFridgeResponse response = userFridgeService.addIngredients(userId, fridgeRequest);
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}

@GetMapping("/ingredients")
public ResponseEntity<?> retrieve(
@RequestParam(value="category",required = false)String category,
@RequestParam(value="name",required = false)String name,
@RequestParam(value="page", defaultValue = "0")int page,
@RequestParam(value="size", defaultValue = "10")int size,
@AuthenticationPrincipal UserDetails userDetails){
try {
String userId = userDetails.getUsername();
PageUserFridgeResponse response = null;
if(category != null) {
response = userFridgeService.filteredByCategory(userId, category, size, page);
}else if(name != null) {
response = userFridgeService.filteredByName(userId, name, size, page);
}else {
response = userFridgeService.retrieveAll(userId, size, page);
}
return ResponseEntity.ok(response);
}catch(IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}

}

@PatchMapping("/ingredient/update")
public ResponseEntity<?> updatePurchasedDate(@RequestBody ChangeFridgeIngredientRequest request,
@AuthenticationPrincipal UserDetails userDetails){
try {
String userId = userDetails.getUsername();
ChangeFridgeIngredientResponse response = userFridgeService.updatePurchasedDate(userId, request);
return ResponseEntity.ok(response);
}catch(IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}

@DeleteMapping("/ingredient/{id}")
public ResponseEntity<?> deleteIngredient(
@AuthenticationPrincipal UserDetails userDetails,
@PathVariable("id") Long fridgeIngredientId
) {
try {
String userId = userDetails.getUsername();

userFridgeService.deleteIngredient(userId, fridgeIngredientId);

return ResponseEntity.ok("삭제 완료");

} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}
}

@PatchMapping("ingredients/register/update")
public ResponseEntity<?> updateIngredientInformation(@RequestBody FridgeBatchUpdateRequest fRequest,
@AuthenticationPrincipal UserDetails userDetails){
try {
String userId = userDetails.getUsername();
UserFridgeResponse response = userFridgeService.updateIngredientInformation(userId, fRequest);
return ResponseEntity.ok(response);

}catch(IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
}

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.webservice.algorithmchef.dto.fridgeingredient;

import java.time.LocalDateTime;

import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class ChangeFridgeIngredientRequest {

private Long ingredientId;
private LocalDateTime purchasedDate;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.webservice.algorithmchef.dto.fridgeingredient;

import com.webservice.algorithmchef.model.FridgeIngredient;

import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class ChangeFridgeIngredientResponse {

private Long ingredientId;
private String name;
private String message;

public ChangeFridgeIngredientResponse(FridgeIngredient ingredient,String message) {
this.ingredientId = ingredient.getId();
this.name = ingredient.getIngredient().getName();
this.message = message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.webservice.algorithmchef.dto.fridgeingredient;

import java.time.LocalDateTime;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class FridgeIngredientRequest {

public String name;
public LocalDateTime purchaseDate;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.webservice.algorithmchef.dto.fridgeingredient;

import java.time.LocalDateTime;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class FridgeIngredientResponse {

private Long id;
private String category;
private String name;
private LocalDateTime purchaseDate;
private LocalDateTime expiredDate;
private Long dDay;
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.webservice.algorithmchef.dto.fridgeingredient;

import java.time.LocalDateTime;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class FridgeIngredientUpdateItem {

private Long ingredientId;
private String category;
private String name;
private LocalDateTime purchaseDate;
private LocalDateTime expiredDate;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.webservice.algorithmchef.dto.ingredient;

import com.webservice.algorithmchef.model.Ingredient;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class IngredientResponse {

private Long id;
private String name;
private String category;

public IngredientResponse(Ingredient ingredient) {
this.id = ingredient.getId();
this.name = ingredient.getName();
this.category = ingredient.getCategory();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
public class ChangePasswordRequest {

private String password;
private Long id;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.webservice.algorithmchef.dto.user;

import com.webservice.algorithmchef.model.Fridge;
import com.webservice.algorithmchef.model.User;

import lombok.Getter;
Expand All @@ -10,11 +11,13 @@ public class UserSignUpResponse {
private Long id;
private String userId;
private String role;
private String fridgeName;

public UserSignUpResponse(User user) {
public UserSignUpResponse(User user, Fridge fridge) {
this.id = user.getId();
this.userId = user.getUserId();
this.role=user.getRole();
this.fridgeName = fridge.getName();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.webservice.algorithmchef.dto.userfridge;

import java.util.List;

import com.webservice.algorithmchef.dto.fridgeingredient.FridgeIngredientUpdateItem;

import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class FridgeBatchUpdateRequest {
@Valid
private List<FridgeIngredientUpdateItem> ingredients;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.webservice.algorithmchef.dto.userfridge;

import org.springframework.data.domain.Page;

import com.webservice.algorithmchef.dto.fridgeingredient.FridgeIngredientResponse;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class PageUserFridgeResponse {
private Long id;
private Page<FridgeIngredientResponse> ingredients;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.webservice.algorithmchef.dto.userfridge;

import java.util.List;

import com.webservice.algorithmchef.dto.fridgeingredient.FridgeIngredientRequest;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class UserFridgeRequest {

private List<FridgeIngredientRequest> ingredients;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.webservice.algorithmchef.dto.userfridge;

import java.util.List;

import com.webservice.algorithmchef.dto.fridgeingredient.FridgeIngredientResponse;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class UserFridgeResponse {

private Long fridgeId;
private List<FridgeIngredientResponse> ingredients;

}
Loading