11import { ProjectController } from '../interfaces' ;
22import { Projects } from '../models/reactypeModels' ;
3+ import { State } from '../../app/src/interfaces/Interfaces'
34
45// array of objects, objects inside
56type Projects = { project : { } } [ ] ;
67
78const projectController : ProjectController = {
89 // saveProject saves current workspace to database
910 saveProject : ( req , res , next ) => {
11+
1012 // pull project name and project itself from body
1113 const { name, project, userId, username, comments } = req . body ;
14+ //deleted published from project
15+ const noPub = { ...project } ;
16+ delete noPub . published ;
1217 // create createdBy field for the document
1318 const createdAt = Date . now ( ) ;
1419 // pull ssid from cookies for user id
1520 Projects . findOneAndUpdate (
1621 // looks in projects collection for project by user and name
1722 { name, userId, username} ,
1823 // update or insert the project
19- { project, createdAt, comments } ,
24+ { project : noPub , createdAt, published : false , comments } ,
2025 // Options:
2126 // upsert: true - if none found, inserts new project, if found, updates project
2227 // new: true - returns updated document not the original one
@@ -39,7 +44,7 @@ const projectController: ProjectController = {
3944 // gets all of current user's projects
4045 getProjects : ( req , res , next ) => {
4146 const { userId } = req . body ;
42- Projects . find ( { userId } , ( err , projects : Array < { _id : string ; project : any } > ) => {
47+ Projects . find ( { userId } , ( err , projects : Array < { _id : string ; published : boolean ; project : object } > ) => {
4348 if ( err ) {
4449 return next ( {
4550 log : `Error in projectController.getProjects: ${ err } ` ,
@@ -49,8 +54,9 @@ const projectController: ProjectController = {
4954 } ) ;
5055 }
5156 // so it returns each project like it is in state, not the whole object in DB
52- res . locals . projects = projects . map ( ( elem ) => ( {
57+ res . locals . projects = projects . map ( ( elem : { _id : string ; published : boolean ; project : object } ) => ( {
5358 _id : elem . _id ,
59+ published : elem . published ,
5460 ...elem . project
5561 } ) ) ;
5662 return next ( ) ;
0 commit comments