From f7b4283b914a494f906a38c2d2281bb50cf9c91a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Jab=C5=82o=C5=84ski?= Date: Tue, 24 Jun 2025 21:10:00 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Poprawienie=20useEffect=20by=20zniwelowa?= =?UTF-8?q?=C4=87=20p=C4=99tl=C4=99=20requestow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/app/(root)/trips/[id]/bill-splitting/page.tsx | 2 +- frontend/components/bill-splitting/ExpensesDashboard.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/app/(root)/trips/[id]/bill-splitting/page.tsx b/frontend/app/(root)/trips/[id]/bill-splitting/page.tsx index 84ff3f0..3825d7a 100644 --- a/frontend/app/(root)/trips/[id]/bill-splitting/page.tsx +++ b/frontend/app/(root)/trips/[id]/bill-splitting/page.tsx @@ -57,7 +57,7 @@ export default function GroupExpensesPage() { useEffect(() => { if (!trip || !trip.id) return; fetchData(); - }); + }, [trip]); const fetchData = async () => { try { diff --git a/frontend/components/bill-splitting/ExpensesDashboard.tsx b/frontend/components/bill-splitting/ExpensesDashboard.tsx index 508ce87..7992851 100644 --- a/frontend/components/bill-splitting/ExpensesDashboard.tsx +++ b/frontend/components/bill-splitting/ExpensesDashboard.tsx @@ -34,7 +34,7 @@ export default function ExpansesDashboard({ trip }: { trip: Group }) { useEffect(() => { fetchGroupExpenses(); - }, []); + }, [trip]); if (error) { return ( From 0e102506b827521eb288286efafda86b52526265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Jab=C5=82o=C5=84ski?= Date: Tue, 24 Jun 2025 21:45:44 +0200 Subject: [PATCH 2/4] =?UTF-8?q?Dodano=20interceptor=20przekierowuj=C4=85cy?= =?UTF-8?q?=20na=20strone=20glowna=20przy=20requescie=20z=20konfliktem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/lib/axiosInstance.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/frontend/lib/axiosInstance.ts b/frontend/lib/axiosInstance.ts index 8a4951d..6eb0562 100644 --- a/frontend/lib/axiosInstance.ts +++ b/frontend/lib/axiosInstance.ts @@ -20,4 +20,23 @@ axiosInstance.interceptors.request.use( }, ); +axiosInstance.interceptors.response.use( + (response) => { + console.log('AXIOS INTERCEPTOR RESPONSE:', response.status); + return response; + }, + (error) => { + console.log('AXIOS INTERCEPTOR ERROR:', error.response?.status); + if ( + error.response && + (error.response.status === 403 || error.response.status === 409) + ) { + if (typeof window !== 'undefined') { + window.location.href = '/trips'; + } + } + return Promise.reject(error); + }, +); + export default axiosInstance; From 4177fb961e289e5c1dee93386c3acec77b677071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Jab=C5=82o=C5=84ski?= Date: Tue, 24 Jun 2025 21:49:47 +0200 Subject: [PATCH 3/4] Usuniecie console.log --- frontend/lib/axiosInstance.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/frontend/lib/axiosInstance.ts b/frontend/lib/axiosInstance.ts index 6eb0562..4ab3119 100644 --- a/frontend/lib/axiosInstance.ts +++ b/frontend/lib/axiosInstance.ts @@ -21,12 +21,8 @@ axiosInstance.interceptors.request.use( ); axiosInstance.interceptors.response.use( - (response) => { - console.log('AXIOS INTERCEPTOR RESPONSE:', response.status); - return response; - }, + (response) => response, (error) => { - console.log('AXIOS INTERCEPTOR ERROR:', error.response?.status); if ( error.response && (error.response.status === 403 || error.response.status === 409) From ee458aed94ec95b970d46aef304a684e138d6129 Mon Sep 17 00:00:00 2001 From: szymongrabski Date: Tue, 24 Jun 2025 22:12:09 +0200 Subject: [PATCH 4/4] change status code when user is not in group from conflict to forbidden --- .../exception/FareShareResponseEntityExceptionHandler.java | 2 +- .../share/fare/backend/exception/UserIsNotInGroupException.java | 2 +- .../share/fare/backend/controller/GroupChatControllerTest.java | 2 +- .../fare/backend/controller/GroupInvitationControllerTest.java | 2 +- .../fare/backend/controller/GroupMembershipControllerTest.java | 2 +- .../java/share/fare/backend/controller/VoteControllerTest.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/share/fare/backend/exception/FareShareResponseEntityExceptionHandler.java b/backend/src/main/java/share/fare/backend/exception/FareShareResponseEntityExceptionHandler.java index 90273b3..895195b 100644 --- a/backend/src/main/java/share/fare/backend/exception/FareShareResponseEntityExceptionHandler.java +++ b/backend/src/main/java/share/fare/backend/exception/FareShareResponseEntityExceptionHandler.java @@ -69,7 +69,7 @@ public final ResponseEntity userAlreadyInGroupException(Exception @ExceptionHandler(UserIsNotInGroupException.class) public final ResponseEntity userIsNotInGroupException(Exception ex, WebRequest request) { ErrorDetails errorDetails = new ErrorDetails(LocalDateTime.now(), ex.getMessage(), request.getDescription(false), ex.getStackTrace().length); - return new ResponseEntity<>(errorDetails, HttpStatus.CONFLICT); + return new ResponseEntity<>(errorDetails, HttpStatus.FORBIDDEN); } @ExceptionHandler(UserIsNotGroupOwner.class) diff --git a/backend/src/main/java/share/fare/backend/exception/UserIsNotInGroupException.java b/backend/src/main/java/share/fare/backend/exception/UserIsNotInGroupException.java index 119fc05..012bd47 100644 --- a/backend/src/main/java/share/fare/backend/exception/UserIsNotInGroupException.java +++ b/backend/src/main/java/share/fare/backend/exception/UserIsNotInGroupException.java @@ -4,7 +4,7 @@ import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; -@ResponseStatus(HttpStatus.CONFLICT) +@ResponseStatus(HttpStatus.FORBIDDEN) public class UserIsNotInGroupException extends RuntimeException { public UserIsNotInGroupException(String message) { super(message); diff --git a/backend/src/test/java/share/fare/backend/controller/GroupChatControllerTest.java b/backend/src/test/java/share/fare/backend/controller/GroupChatControllerTest.java index ce184a2..9dfc179 100644 --- a/backend/src/test/java/share/fare/backend/controller/GroupChatControllerTest.java +++ b/backend/src/test/java/share/fare/backend/controller/GroupChatControllerTest.java @@ -115,7 +115,7 @@ public void getRecentMessagesUserNotInGroupTest() throws Exception { .param("size", "20") .with(user(testSecondUser)) ) - .andExpect(status().isConflict()) + .andExpect(status().isForbidden()) .andExpect(jsonPath("$.message").value("User " + testSecondUser.getId() + " is not in group " + testGroup.getName())); } } diff --git a/backend/src/test/java/share/fare/backend/controller/GroupInvitationControllerTest.java b/backend/src/test/java/share/fare/backend/controller/GroupInvitationControllerTest.java index c44a7c7..7e12e78 100644 --- a/backend/src/test/java/share/fare/backend/controller/GroupInvitationControllerTest.java +++ b/backend/src/test/java/share/fare/backend/controller/GroupInvitationControllerTest.java @@ -173,7 +173,7 @@ void sendGroupInvitationSenderNotInGroupTest() throws Exception { .principal(() -> String.valueOf(testUser.getId())) .param("receiverId", String.valueOf(testSecondUser.getId())) .param("groupId", String.valueOf(testGroup.getId()))) - .andExpect(status().isConflict()) + .andExpect(status().isForbidden()) .andExpect(jsonPath("$.message").value("Sender does not belong to group.")); } diff --git a/backend/src/test/java/share/fare/backend/controller/GroupMembershipControllerTest.java b/backend/src/test/java/share/fare/backend/controller/GroupMembershipControllerTest.java index c869bc7..2cab320 100644 --- a/backend/src/test/java/share/fare/backend/controller/GroupMembershipControllerTest.java +++ b/backend/src/test/java/share/fare/backend/controller/GroupMembershipControllerTest.java @@ -171,7 +171,7 @@ void removeNonMemberTest() throws Exception { mockMvc.perform(delete(URI + "/{userId}", testGroup.getId(), newUser.getId()) .with(user(testUser)) .principal(() -> String.valueOf(testUser.getId()))) - .andExpect(status().isConflict()); + .andExpect(status().isForbidden()); } @Test diff --git a/backend/src/test/java/share/fare/backend/controller/VoteControllerTest.java b/backend/src/test/java/share/fare/backend/controller/VoteControllerTest.java index cc962a6..122a876 100644 --- a/backend/src/test/java/share/fare/backend/controller/VoteControllerTest.java +++ b/backend/src/test/java/share/fare/backend/controller/VoteControllerTest.java @@ -140,7 +140,7 @@ void addVoteNotGroupMemberTest() throws Exception { .content(objectMapper.writeValueAsString(voteRequest)) .with(user(anotherUser)) .principal(() -> String.valueOf(anotherUser.getId()))) - .andExpect(status().isConflict()) + .andExpect(status().isForbidden()) .andExpect(jsonPath("$.message").value("User with ID: " + anotherUser.getId() +" is not a member of the group")); }