Implement Recipe, Planning, Shopping, Pantry, and Admin domains
Outside-in TDD for all 5 remaining domains (128 tests total): - Recipe: CRUD, ingredients autocomplete/patch, tags, categories (27 tests) - Planning: week plans, slots, confirm, suggestions, variety score, cooking logs (24 tests) - Shopping: generate from plan, publish, check/add/remove items (15 tests) - Pantry: CRUD with expiry sorting (11 tests) - Admin: user management, password reset, audit logging (13 tests) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package com.recipeapp.recipe;
|
||||
|
||||
import com.recipeapp.common.ResourceNotFoundException;
|
||||
import com.recipeapp.household.HouseholdMemberRepository;
|
||||
import com.recipeapp.household.entity.HouseholdMember;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Component
|
||||
public class HouseholdResolver {
|
||||
|
||||
private final HouseholdMemberRepository householdMemberRepository;
|
||||
|
||||
public HouseholdResolver(HouseholdMemberRepository householdMemberRepository) {
|
||||
this.householdMemberRepository = householdMemberRepository;
|
||||
}
|
||||
|
||||
public UUID resolve(String userEmail) {
|
||||
return findMembership(userEmail).getHousehold().getId();
|
||||
}
|
||||
|
||||
public UUID resolveUserId(String userEmail) {
|
||||
return findMembership(userEmail).getUser().getId();
|
||||
}
|
||||
|
||||
private HouseholdMember findMembership(String userEmail) {
|
||||
return householdMemberRepository.findByUserEmailIgnoreCase(userEmail)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("User is not in a household"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user