diff --git a/backend/task-manager/src/main/java/com/example/task_manager/controller/TeamController.java b/backend/task-manager/src/main/java/com/example/task_manager/controller/TeamController.java index 8974d36..1fd93c8 100644 --- a/backend/task-manager/src/main/java/com/example/task_manager/controller/TeamController.java +++ b/backend/task-manager/src/main/java/com/example/task_manager/controller/TeamController.java @@ -51,7 +51,7 @@ public ResponseEntity> deleteTeam(@PathVariable int teamId) { @PutMapping("/{teamId}/change-lead") public ResponseEntity> changeTeamLead(@PathVariable int teamId, @RequestBody TeamRequestDTO request) { try { - TeamDTO updatedTeam = teamService.changeTeamLead(teamId, request.getTeamName(), request.getTeamLeadId()); + TeamDTO updatedTeam = teamService.changeTeamLead(teamId, request.getTeamLeadId()); return ResponseEntity.ok(updatedTeam); } catch (RuntimeException e) { return ResponseEntity.badRequest().body(e.getMessage()); diff --git a/backend/task-manager/src/main/java/com/example/task_manager/service/TeamService.java b/backend/task-manager/src/main/java/com/example/task_manager/service/TeamService.java index d352c2e..e4167ee 100644 --- a/backend/task-manager/src/main/java/com/example/task_manager/service/TeamService.java +++ b/backend/task-manager/src/main/java/com/example/task_manager/service/TeamService.java @@ -85,7 +85,7 @@ public void deleteTeam(int teamId) { * @param teamId The ID of the team whose lead should be changed. * @param teamLeadId The ID of the new team lead. */ - public TeamDTO changeTeamLead(int teamId, String teamName, int teamLeadId) { + public TeamDTO changeTeamLead(int teamId, int teamLeadId) { Team team = teamRepository.findById(teamId) .orElseThrow(() -> new RuntimeException("Team not found with ID: " + teamId)); @@ -93,7 +93,6 @@ public TeamDTO changeTeamLead(int teamId, String teamName, int teamLeadId) { .orElseThrow(() -> new RuntimeException("Team Lead not found with ID: " + teamLeadId)); team.setTeamLead(teamMember); - team.setTeamName(teamName); teamRepository.save(team); return new TeamDTO(team.getTeamId(), team.getTeamName(), team.getTeamLead().getAccountId()); diff --git a/backend/task-manager/src/test/java/com/example/task_manager/controller_tests/TeamControllerTest.java b/backend/task-manager/src/test/java/com/example/task_manager/controller_tests/TeamControllerTest.java index d711dc7..70b4f78 100644 --- a/backend/task-manager/src/test/java/com/example/task_manager/controller_tests/TeamControllerTest.java +++ b/backend/task-manager/src/test/java/com/example/task_manager/controller_tests/TeamControllerTest.java @@ -94,14 +94,13 @@ void testChangeTeamLead() throws Exception { TeamRequestDTO requestDTO = new TeamRequestDTO(uniqueId, newTeamName, newLeadId); TeamDTO mockResponse = new TeamDTO(uniqueId, newTeamName, newLeadId); - when(teamService.changeTeamLead(uniqueId, newTeamName, newLeadId)).thenReturn(mockResponse); + when(teamService.changeTeamLead(uniqueId, newLeadId)).thenReturn(mockResponse); mockMvc.perform(put("/api/teams/" + uniqueId + "/change-lead") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(requestDTO))) .andExpect(status().isOk()) .andExpect(jsonPath("$.teamId").value(uniqueId)) - .andExpect(jsonPath("$.teamName").value(newTeamName)) .andExpect(jsonPath("$.teamLeadId").value(newLeadId)); } diff --git a/backend/task-manager/src/test/java/com/example/task_manager/service_tests/TeamServiceTest.java b/backend/task-manager/src/test/java/com/example/task_manager/service_tests/TeamServiceTest.java index 5b880ab..9b33599 100644 --- a/backend/task-manager/src/test/java/com/example/task_manager/service_tests/TeamServiceTest.java +++ b/backend/task-manager/src/test/java/com/example/task_manager/service_tests/TeamServiceTest.java @@ -95,16 +95,13 @@ void testChangeTeamLead() { TeamMember newLead = createUniqueTeamMember("NewLead"); Team team = createUniqueTeam(oldLead); - String newTeamName = "Updated Team Name"; - TeamDTO updatedTeamDTO = teamService.changeTeamLead(team.getTeamId(), newTeamName, newLead.getAccountId()); + TeamDTO updatedTeamDTO = teamService.changeTeamLead(team.getTeamId(), newLead.getAccountId()); assertNotNull(updatedTeamDTO); - assertEquals(newTeamName, updatedTeamDTO.getTeamName()); assertEquals(newLead.getAccountId(), updatedTeamDTO.getTeamLeadId()); Team updatedTeam = teamRepository.findById(team.getTeamId()).orElseThrow(); - assertEquals(newTeamName, updatedTeam.getTeamName()); assertEquals(newLead.getAccountId(), updatedTeam.getTeamLead().getAccountId()); } @@ -113,10 +110,9 @@ void testChangeTeamLeadToNonExistentMember() { TeamMember oldLead = createUniqueTeamMember("OldLead"); Team team = createUniqueTeam(oldLead); - String newTeamName = "Updated Team Name"; Exception exception = assertThrows(RuntimeException.class, - () -> teamService.changeTeamLead(team.getTeamId(), newTeamName, 9999)); + () -> teamService.changeTeamLead(team.getTeamId(), 9999)); assertTrue(exception.getMessage().contains("Team Lead not found")); } diff --git a/frontend/react-app/src/api/teamApi.js b/frontend/react-app/src/api/teamApi.js index 66b2244..b7c617b 100644 --- a/frontend/react-app/src/api/teamApi.js +++ b/frontend/react-app/src/api/teamApi.js @@ -32,12 +32,12 @@ export const deleteTeam = async (teamId) => { }; //Change team lead -export const changeTeamLead = async (teamId, teamLeadId, teamName) => { +export const changeTeamLead = async (teamId, teamLeadId) => { try { const response = await fetch(`${BASE_URL}/${teamId}/change-lead`, { method: 'PUT', headers: { "Content-Type": "application/json" }, - body: JSON.stringify({teamLeadId, teamName}) + body: JSON.stringify({teamLeadId}) }); if (!response.ok) { diff --git a/frontend/react-app/src/components/ChangeTeamLeadButton.jsx b/frontend/react-app/src/components/ChangeTeamLeadButton.jsx new file mode 100644 index 0000000..1603e2b --- /dev/null +++ b/frontend/react-app/src/components/ChangeTeamLeadButton.jsx @@ -0,0 +1,16 @@ +import { changeTeamLead } from "../api/teamApi" + +export default function ChangeTeamLeadButton({teamId, userId, setTeamLead}){ + async function onClick() { + try { + const response = await changeTeamLead(teamId, userId) + console.log(response) + setTeamLead(userId) + } catch (error) { + console.log(error) + } + } + return( + + ) +} \ No newline at end of file diff --git a/frontend/react-app/src/components/TeamMember.jsx b/frontend/react-app/src/components/TeamMember.jsx index 8003483..0bc42b1 100644 --- a/frontend/react-app/src/components/TeamMember.jsx +++ b/frontend/react-app/src/components/TeamMember.jsx @@ -1,7 +1,8 @@ import "../css/TeamTasks.css"; +import ChangeTeamLeadButton from "./ChangeTeamLeadButton"; import RemoveUserButton from "./RemoveUserButton"; -function TeamMember({ member,isAdminPage, teamLeadId, setTeamMembers, teamId, teamMembers}){ +function TeamMember({ member,isAdminPage, teamLeadId, setTeamMembers, teamId, teamMembers, setTeamLead}){ return(