11const mongoose = require ( 'mongoose' ) ;
22const { format } = require ( 'date-fns' ) ;
33const sanitize = require ( 'mongo-sanitize' ) ;
4+ const { v4 : uuidv4 } = require ( 'uuid' ) ;
45const tokenMiddleware = require ( '../../middlewares/token' ) ;
56const { checkUserExists } = require ( '../../middlewares/validators' ) ;
67const Task = require ( '../models/taskModel' ) ;
@@ -28,6 +29,7 @@ exports.create_new_task = async (req, res) => {
2829 if ( tokenValid . success && userExists ) {
2930 let newTask = new Task ( {
3031 task : sanitize ( task ) ,
32+ externalId : uuidv4 ( ) ,
3133 user : uniqueId ,
3234 createdOnDate : format ( new Date ( ) , 'dd/MM/yyyy' ) ,
3335 createdOnTime : format ( new Date ( ) , 'HH:mm' ) ,
@@ -116,11 +118,11 @@ exports.read_all_user_tasks = async (req, res) => {
116118/**
117119 * Gets all user tasks from the DB
118120 * GET
119- * PARAMS: /:uniqueId /:token /:taskId
121+ * PARAMS: /:uniqueId /:token /:externalId
120122 */
121123exports . read_single_task = async ( req , res ) => {
122- const { uniqueId, token, taskId } = req . params ;
123- if ( ! uniqueId || ! token || ! taskId ) {
124+ const { uniqueId, token, externalId } = req . params ;
125+ if ( ! uniqueId || ! token || ! externalId ) {
124126 res . status ( 400 ) . json ( {
125127 success : false ,
126128 message : 'Missing request data' ,
@@ -131,7 +133,7 @@ exports.read_single_task = async (req, res) => {
131133 let tokenValid = await tokenMiddleware . checkToken ( token ) ;
132134 let userExists = await checkUserExists ( uniqueId ) ;
133135 if ( tokenValid . success && userExists ) {
134- Task . findById ( taskId , ( err , task ) => {
136+ Task . find ( { externalId : sanitize ( externalId ) } , ( err , task ) => {
135137 if ( err ) {
136138 res . status ( 400 ) . json ( {
137139 success : false ,
@@ -165,15 +167,16 @@ exports.read_single_task = async (req, res) => {
165167/**
166168 * Creates a new task in the database
167169 * PUT
168- * PARAMS: /:uniqueId /:token /:taskId
170+ * PARAMS: /:uniqueId /:token /:externalId
169171 * {
170- * "task": ""
172+ * "task": "",
173+ * "completed": boolean
171174 * }
172175 */
173176exports . update_single_task = async ( req , res ) => {
174- const { uniqueId, token, taskId } = req . params ;
175- const { task } = sanitize ( req . body . task ) ;
176- if ( ! uniqueId || ! token || ! taskId || ! task ) {
177+ const { uniqueId, token, externalId } = req . params ;
178+ const { task, completed } = req . body ;
179+ if ( ! uniqueId || ! token || ! externalId || ! task ) {
177180 res . status ( 400 ) . json ( {
178181 success : false ,
179182 message : 'Missing request data' ,
@@ -185,8 +188,8 @@ exports.update_single_task = async (req, res) => {
185188 let userExists = await checkUserExists ( uniqueId ) ;
186189 if ( tokenValid . success && userExists ) {
187190 Task . updateOne (
188- { _id : taskId } ,
189- { $set : { task : task } } ,
191+ { externalId : sanitize ( externalId ) } ,
192+ { $set : { task : sanitize ( task ) , completed : completed } } ,
190193 { new : true } ,
191194 ( err , task ) => {
192195 if ( err ) {
@@ -223,11 +226,11 @@ exports.update_single_task = async (req, res) => {
223226/**
224227 * Creates a new task in the database
225228 * DELETE
226- * PARAMS: /:uniqueId /:token /:taskId
229+ * PARAMS: /:uniqueId /:token /:externalId
227230 */
228231exports . delete_single_task = async ( req , res ) => {
229- const { uniqueId, token, taskId } = req . params ;
230- if ( ! uniqueId || ! token || ! taskId ) {
232+ const { uniqueId, token, externalId } = req . params ;
233+ if ( ! uniqueId || ! token || ! externalId ) {
231234 res . status ( 400 ) . json ( {
232235 success : false ,
233236 message : 'Missing request data' ,
@@ -238,20 +241,24 @@ exports.delete_single_task = async (req, res) => {
238241 let tokenValid = await tokenMiddleware . checkToken ( token ) ;
239242 let userExists = await checkUserExists ( uniqueId ) ;
240243 if ( tokenValid . success && userExists ) {
241- Task . remove ( { _id : taskId } , { new : true } , ( err , task ) => {
242- if ( err ) {
243- res . status ( 400 ) . json ( {
244- success : false ,
245- message : "Couldn't delete task" ,
246- data : err ,
244+ Task . deleteOne (
245+ { externalId : externalId } ,
246+ { new : true } ,
247+ ( err , task ) => {
248+ if ( err ) {
249+ res . status ( 400 ) . json ( {
250+ success : false ,
251+ message : "Couldn't delete task" ,
252+ data : err ,
253+ } ) ;
254+ }
255+ res . status ( 200 ) . json ( {
256+ success : true ,
257+ message : 'Task deleted successfully' ,
258+ data : task ,
247259 } ) ;
248260 }
249- res . status ( 200 ) . json ( {
250- success : true ,
251- message : 'Task deleted successfully' ,
252- data : task ,
253- } ) ;
254- } ) ;
261+ ) ;
255262 } else {
256263 res . status ( 400 ) . json ( {
257264 success : false ,
0 commit comments