Skip to content

Commit 67b5371

Browse files
committed
#1183 finishing touches
1 parent 8726611 commit 67b5371

6 files changed

Lines changed: 22 additions & 23 deletions

File tree

src/backend/src/services/teams.services.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ export default class TeamsService {
164164
},
165165
...teamQueryArgs
166166
});
167-
168167
return teamTransformer(updateTeam);
169168
}
170169

@@ -179,6 +178,6 @@ export default class TeamsService {
179178
if (!team) throw new NotFoundException('Team', teamId);
180179
if (!isAdmin(deleter.role)) throw new AccessDeniedAdminOnlyException('delete teams');
181180

182-
await prisma.team.delete({ where: { teamId } });
181+
await prisma.team.delete({ where: { teamId }, ...teamQueryArgs });
183182
}
184183
}

src/frontend/src/apis/teams.api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@ export const setTeamHead = (id: string, userId: number) => {
3838
};
3939

4040
export const deleteTeam = (id: string) => {
41-
return axios.post<{ message: string }>(apiUrls.teamsDelete(id));
41+
return axios.post(apiUrls.teamsDelete(id));
4242
};

src/frontend/src/pages/TeamDetailPage/DeleteTeamModalContainer/DeleteTeam.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useHistory } from 'react-router-dom';
22
import { useToast } from '../../../hooks/toasts.hooks';
3-
import { useDeleteTeam } from '../../../hooks/teams.hooks';
3+
import { useDeleteTeam, useSingleTeam } from '../../../hooks/teams.hooks';
44
import LoadingIndicator from '../../../components/LoadingIndicator';
55
import ErrorPage from '../../ErrorPage';
66
import DeleteTeamView from './DeleteTeamView';
@@ -12,23 +12,26 @@ interface DeleteTeamProps {
1212
}
1313

1414
export interface DeleteTeamInputs {
15-
teamId: string;
15+
teamName: string;
1616
}
1717

1818
const DeleteTeam: React.FC<DeleteTeamProps> = ({ teamId, showModal, handleClose }: DeleteTeamProps) => {
1919
const history = useHistory();
2020
const toast = useToast();
2121
const { isLoading, isError, error, mutateAsync } = useDeleteTeam();
22+
const { data: team } = useSingleTeam(teamId);
2223

23-
const handleConfirm = async ({ teamId }: DeleteTeamInputs) => {
24-
try {
25-
await mutateAsync(teamId);
26-
handleClose();
27-
history.goBack();
28-
toast.success('Team deleted successfully!');
29-
} catch (e) {
30-
if (e instanceof Error) {
31-
toast.error(e.message);
24+
const handleConfirm = async ({ teamName }: DeleteTeamInputs) => {
25+
if (team?.teamName.toLowerCase() === teamName.toLowerCase()) {
26+
try {
27+
await mutateAsync(teamId);
28+
handleClose();
29+
history.goBack();
30+
toast.success('Team deleted successfully!');
31+
} catch (e) {
32+
if (e instanceof Error) {
33+
toast.error(e.message);
34+
}
3235
}
3336
}
3437
};

src/frontend/src/pages/TeamDetailPage/DeleteTeamModalContainer/DeleteTeamView.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
Typography
1717
} from '@mui/material';
1818
import CloseIcon from '@mui/icons-material/Close';
19-
import { wbsPipe } from 'shared';
2019
import NERFailButton from '../../../components/NERFailButton';
2120
import NERSuccessButton from '../../../components/NERSuccessButton';
2221
import ReactHookTextField from '../../../components/ReactHookTextField';
@@ -32,7 +31,7 @@ const DeleteTeamView: React.FC<DeleteTeamViewProps> = ({ teamId, showModal, onHi
3231
const { isLoading, isError, data: team, error } = useSingleTeam(teamId);
3332

3433
const teamNameTester = (teamName: string | undefined) =>
35-
team !== undefined && teamName !== undefined && teamName.toLowerCase === team.teamName.toLowerCase;
34+
team !== undefined && teamName !== undefined && teamName.toLowerCase() === team.teamName.toLowerCase();
3635

3736
const schema = yup.object().shape({
3837
teamName: yup.string().required().test('team-name-test', 'Team name does not match', teamNameTester)
@@ -53,10 +52,8 @@ const DeleteTeamView: React.FC<DeleteTeamViewProps> = ({ teamId, showModal, onHi
5352
if (isLoading || !team) return <LoadingIndicator />;
5453
if (isError) return <ErrorPage message={error.message} />;
5554

56-
const onSubmitWrapper = async (data: { teamName: string }) => {
57-
const submitVal = { teamId };
58-
59-
await onSubmit(submitVal);
55+
const onSubmitWrapper = async (data: DeleteTeamInputs) => {
56+
await onSubmit(data);
6057
};
6158

6259
return (
@@ -117,7 +114,7 @@ const DeleteTeamView: React.FC<DeleteTeamViewProps> = ({ teamId, showModal, onHi
117114
<NERSuccessButton variant="contained" sx={{ mx: 1 }} onClick={onHide}>
118115
Cancel
119116
</NERSuccessButton>
120-
<NERFailButton variant="contained" type="submit" form="delete-wp-form" sx={{ mx: 1 }} disabled={!isValid}>
117+
<NERFailButton variant="contained" type="submit" form="delete-team-form" sx={{ mx: 1 }} disabled={!isValid}>
121118
Delete
122119
</NERFailButton>
123120
</DialogActions>

src/frontend/src/pages/TeamDetailPage/TeamDetailPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Button, Grid, ListItemIcon, MenuItem } from '@mui/material';
1+
import { Grid } from '@mui/material';
22
import { useSingleTeam } from '../../hooks/teams.hooks';
33
import { useParams } from 'react-router-dom';
44
import TeamMembersPageBlock from './TeamMembersPageBlock';

src/frontend/src/utils/urls.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const changeRequestCreateProposeSolution = () => `${changeRequestsCreate()}/prop
6868
/**************** Teams Endpoints ****************/
6969
const teams = () => `${API_URL}/teams`;
7070
const teamsById = (id: string) => `${teams()}/${id}`;
71-
const teamsDelete = (id: string) => `${teams()}/${id}`;
71+
const teamsDelete = (id: string) => `${teamsById(id)}/delete`;
7272
const teamsSetMembers = (id: string) => `${teamsById(id)}/set-members`;
7373
const teamsSetHead = (id: string) => `${teamsById(id)}/set-head`;
7474
const teamsSetDescription = (id: string) => `${teamsById(id)}/edit-description`;

0 commit comments

Comments
 (0)