Skip to content

Commit

Permalink
Merge pull request #49 from Bab-Al/feat/28-photo
Browse files Browse the repository at this point in the history
✨ [FEAT] 라즈베리파이 카메라 모듈 사진 결과 저장
  • Loading branch information
alsrudursla authored Nov 20, 2024
2 parents 7afb6b8 + 46e26a2 commit cac1ae9
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/BabAl/BabalServer/config/SecurityConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((auth) -> auth
.requestMatchers("/", "/error", "/health").permitAll()
.requestMatchers("/user/login", "/user/signup", "/user/new-pw").permitAll()
.requestMatchers("/user/login", "/user/signup", "/user/new-pw", "/photo/history").permitAll()
.anyRequest().authenticated());
http
.sessionManagement((auth) -> auth
Expand Down
42 changes: 42 additions & 0 deletions src/main/java/BabAl/BabalServer/controller/PhotoController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package BabAl.BabalServer.controller;

import BabAl.BabalServer.apiPayload.ApiResponse;
import BabAl.BabalServer.apiPayload.code.status.ErrorStatus;
import BabAl.BabalServer.apiPayload.code.status.SuccessStatus;
import BabAl.BabalServer.apiPayload.exception.GeneralException;
import BabAl.BabalServer.domain.User;
import BabAl.BabalServer.dto.request.AddMealDto;
import BabAl.BabalServer.jwt.JwtUtil;
import BabAl.BabalServer.repository.UserRepository;
import BabAl.BabalServer.service.MainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

@RestController
@RequiredArgsConstructor
@RequestMapping("/photo")
@Tag(name = "Photo Page", description = "Photo API")
public class PhotoController {
private final MainService mainService;
private final UserRepository userRepository;

// raspberry pi camera module 사진 인식 결과 저장
@PostMapping("/history") // 식사 기록 등록
@Operation(summary = "raspberry pi camera 식사 등록", description = "식사 등록할 때 사용하는 API")
@ApiResponses(value = {
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "요청이 정상 처리되었습니다", content = @Content(mediaType = "application/json")),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "MEMBER4001", description = "사용자가 없습니다", content = @Content(mediaType = "application/json"))
})
public ApiResponse<SuccessStatus> addHistory(@RequestHeader("X-MAC-ADDRESS") String macAddress,
@Valid @RequestBody AddMealDto dto) {
// macAddress 로 유저 조회하기
User user = userRepository.findByCameraAddress(macAddress).orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));;
String userEmail = user.getEmail();
return ApiResponse.onSuccess(mainService.addHistory(userEmail, dto));
}
}
6 changes: 6 additions & 0 deletions src/main/java/BabAl/BabalServer/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ public class User extends BaseEntity {
@Enumerated(EnumType.STRING)
private UserRole role;

// rasberry pi camera module mac address
private String cameraAddress;

public void addUserAuthority() {
this.role = UserRole.USER;
}
Expand All @@ -91,4 +94,7 @@ public void updateFoodCategory(List<FoodCategoryName> foodCategoryNameList) {
this.foodCategoryNameList = foodCategoryNameList;
}

public void updateCameraAddress(String address) {
this.cameraAddress = address;
}
}
1 change: 1 addition & 0 deletions src/main/java/BabAl/BabalServer/dto/request/SignUpDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public User toEntity() {
.bmr(calculatedBmr)
.foodCategoryNameList(foodCategory)
.role(UserRole.USER)
.cameraAddress(null)
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
public interface UserRepository extends JpaRepository<User, Long> {

Optional<User> findByEmail(String email);
Optional<User> findByCameraAddress(String address);
}

0 comments on commit cac1ae9

Please sign in to comment.