diff --git a/eatery-service/src/main/java/com/drinkool/services/ShiftService.java b/eatery-service/src/main/java/com/drinkool/services/ShiftService.java index 1d8cf4c..96a6a34 100644 --- a/eatery-service/src/main/java/com/drinkool/services/ShiftService.java +++ b/eatery-service/src/main/java/com/drinkool/services/ShiftService.java @@ -29,8 +29,15 @@ public class ShiftService { @Query("allShifts") @Description("Lấy danh sách tất cả các loại ca trực") @RolesAllowed({ Role.Staff, Role.Manager }) - public List getAllShifts() { - return ShiftEntity.listAll(); + public List getAllShifts() throws GraphQLException { + String ownerId = request.getHeader(InternalValue.managerId); + if (ownerId == null || ownerId.isEmpty()) { + ownerId = request.getHeader(InternalValue.userId); + } + + EateryEntity eatery = EateryEntity.findByOwnerId(ownerId); + + return ShiftEntity.list("eatery", eatery); } @Query("myRegistrations") diff --git a/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java b/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java index a3d0cf8..854b33c 100644 --- a/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java +++ b/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java @@ -31,9 +31,14 @@ public class ShiftServiceTest { @Test void testGetAllShifts() { - createMockShift("Ca Sáng", "08:00:00", "12:00:00"); + UUID ownerId = createMockOwner(); + EateryEntity eatery = createMockEatery(ownerId); + + createMockShift("Ca Sáng", "08:00:00", "12:00:00", eatery); given() + .header(InternalValue.role, Role.Manager) + .header(InternalValue.userId, ownerId) .contentType("application/json") .body("{ \"query\": \"{ allShifts { name startTime } }\" }") .when() @@ -74,12 +79,20 @@ public class ShiftServiceTest { .post("/graphql") .then() .statusCode(200) - .body("data.createShift.name", is("Ca Chiều")); + .body("data.createShift.name", is("Ca Sáng")); } @Test void testRegisterShift_Success() { - ShiftEntity shift = createMockShift("Ca Tối", "18:00:00", "22:00:00"); + UUID ownerId = createMockOwner(); + EateryEntity eatery = createMockEatery(ownerId); + + ShiftEntity shift = createMockShift( + "Ca Tối", + "18:00:00", + "22:00:00", + eatery + ); UUID staffId = UUID.randomUUID(); String mutation = String.format( @@ -100,11 +113,23 @@ public class ShiftServiceTest { @Test void testRegisterShift_Overlap_Fail() { + UUID ownerId = createMockOwner(); + EateryEntity eatery = createMockEatery(ownerId); UUID staffId = UUID.randomUUID(); // Tạo 2 ca bị trùng giờ nhau - ShiftEntity shift1 = createMockShift("Ca 1", "08:00:00", "12:00:00"); - ShiftEntity shift2 = createMockShift("Ca 2", "10:00:00", "14:00:00"); + ShiftEntity shift1 = createMockShift( + "Ca 1", + "08:00:00", + "12:00:00", + eatery + ); + ShiftEntity shift2 = createMockShift( + "Ca 2", + "10:00:00", + "14:00:00", + eatery + ); // Đăng ký ca 1 trước registerStaffToShift(staffId, shift1); @@ -129,8 +154,16 @@ public class ShiftServiceTest { @Test void testDeleteShift_WithRegistrations_Fail() { - ShiftEntity shift = createMockShift("Ca Xóa", "08:00:00", "12:00:00"); - registerStaffToShift(UUID.randomUUID(), shift); + UUID ownerId = createMockOwner(); + EateryEntity eatery = createMockEatery(ownerId); + ShiftEntity shift = createMockShift( + "Ca Xóa", + "08:00:00", + "12:00:00", + eatery + ); + UUID staffId = UUID.randomUUID(); + registerStaffToShift(staffId, shift); String mutation = String.format( "mutation { deleteShift(id: \\\"%s\\\") }", @@ -150,8 +183,14 @@ public class ShiftServiceTest { // --- HELPER METHODS --- @Transactional - ShiftEntity createMockShift(String name, String start, String end) { + ShiftEntity createMockShift( + String name, + String start, + String end, + EateryEntity eatery + ) { ShiftEntity shift = new ShiftEntity(); + shift.eatery = eatery; shift.name = name; shift.startTime = LocalTime.parse(start); shift.endTime = LocalTime.parse(end);