Skip to content

Commit 0f5492f

Browse files
committed
fixed delete using _id instead of name so duplicate named projects are now selectively deleted
1 parent 92b7c0d commit 0f5492f

File tree

6 files changed

+17
-17
lines changed

6 files changed

+17
-17
lines changed

app/src/components/App.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ export const App = (): JSX.Element => {
3030
//setToggleAttempt(!toggleAttempt);
3131
}, []);
3232

33-
useEffect(()=>{console.log(state)}, [state])
34-
3533
// following useEffect runs on first mount
3634
useEffect(() => {
3735
console.log('state.isLoggedIn', state.isLoggedIn)

app/src/components/marketplace/MarketplaceCard.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
} from '@mui/material';
1515

1616
import { MoreVert } from '@mui/icons-material';
17-
import React from 'react';
17+
import React, { useEffect } from 'react';
1818
import imageSrc from '../../../../resources/marketplace_images/marketplace_image.png';
1919
import { red } from '@mui/material/colors';
2020
import axios from 'axios';
@@ -50,10 +50,11 @@ const MarketplaceCard = ({proj} :{proj: Project}) => {
5050
const handleClone = async () => { // creates a copy of the project
5151
const docId = proj._id;
5252
const response = await axios.get(`/cloneProject/${docId}`, { params: { username: window.localStorage.getItem('username') } });//passing in username as a query param is query params
53-
const project = response.data.project;
53+
const project = response.data;
54+
console.log('handleClone project', response.data)
5455
alert('Project cloned!');
5556
setAnchorEl(null);
56-
return project;
57+
return {_id: project._id, name: project.name, published: project.published, ...project.project};
5758
};
5859

5960
const handleCloneOpen = async() => {
@@ -66,6 +67,8 @@ const MarketplaceCard = ({proj} :{proj: Project}) => {
6667
};
6768

6869

70+
71+
6972
return (
7073
<>
7174
<Card

app/src/components/right/DeleteProjects.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ function ProjectsDialog(props: ProjectDialogProps) {
3939
// If new project selected, close and set value to new project name
4040
const handleDelete = (value: string) => {
4141
const selectedProject = projects.filter(
42-
(project: any) => project.name === value
43-
)[0];
42+
(project: any) => project._id === value
43+
)[0];
44+
console.log('deleting this one', selectedProject)
4445
deleteProject(selectedProject);
4546
localforage.removeItem(window.localStorage.getItem('ssid'));
4647
dispatch(setInitialState(initialState))
@@ -59,7 +60,7 @@ function ProjectsDialog(props: ProjectDialogProps) {
5960
{projects.filter((project: any) => project.forked === undefined || project.forked === false).map((project: any, index: number) => (
6061
<ListItem
6162
button
62-
onClick={() => handleDelete(project.name)}
63+
onClick={() => handleDelete(project._id)}
6364
key={index}
6465
>
6566
<ListItemAvatar>
@@ -76,7 +77,7 @@ function ProjectsDialog(props: ProjectDialogProps) {
7677
{projects.filter((project: any) => project.forked === true).map((project: any, index: number) => (
7778
<ListItem
7879
button
79-
onClick={() => handleDelete(project.name)}
80+
onClick={() => handleDelete(project._id)}
8081
key={index}
8182
>
8283
<ListItemAvatar>

app/src/components/top/NavBar.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ const NavBar = () => {
6565
};
6666

6767
const handlePublish = () => {
68-
console.log('projectName', projectName)
69-
console.log('state.name', state.name)
7068
if (state.isLoggedIn === true && projectName === '') {
7169
setInvalidProjectName(true);
7270
setPublishModalOpen(true);

app/src/helperFunctions/projectGetSaveDel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const getProjects = (): Promise<any> => {
2626
return data;
2727
})
2828
.catch((err) => console.log(`Error getting project ${err}`));
29-
return projects;
29+
return projects;//returns an array of projects with _id, name, project
3030
};
3131

3232
export const saveProject = (
@@ -53,7 +53,7 @@ export const saveProject = (
5353
})
5454
.then((res) => res.json())
5555
.then((data) => {
56-
return {_id: data._id, name: data.name, published:data.published, ...data.project}; //passing up what is needed for the global appstateslice
56+
return {_id: data._id, name: data.name, published: data.published, ...data.project}; //passing up what is needed for the global appstateslice
5757
})
5858
.catch((err) => console.log(`Error saving project ${err}`));
5959
return project;//returns _id in addition to the project object from the document
@@ -130,7 +130,7 @@ export const unpublishProject = (
130130

131131
export const deleteProject = (project: any): Promise<Object> => {
132132
const body = JSON.stringify({
133-
name: project.name,
133+
_id: project._id,
134134
userId: window.localStorage.getItem('ssid')
135135
});
136136
const deletedProject = fetch(`${serverURL}/deleteProject`, {
@@ -143,7 +143,7 @@ export const deleteProject = (project: any): Promise<Object> => {
143143
})
144144
.then((res) => res.json())
145145
.then((data) => {
146-
return data;
146+
return {_id: data._id, name: data.name, published:data.published, ...data.project};
147147
})
148148
.catch((err) => console.log(`Error deleting project ${err}`));
149149
return deletedProject;

server/controllers/projectController.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ const projectController: ProjectController = {
6868
// delete project from database **currently not integrated into app**
6969
deleteProject: (req, res, next) => {
7070
// pull project name and userId from req.body
71-
const { name, userId } = req.body;
72-
Projects.findOneAndDelete({ name, userId }, null, (err, deleted) => {
71+
const { _id, userId } = req.body;
72+
Projects.findOneAndDelete({ _id, userId }, null, (err, deleted) => {
7373
if (err) {
7474
return next({
7575
log: `Error in projectController.deleteProject: ${err}`,

0 commit comments

Comments
 (0)