[
  {
    "path": ".gitignore",
    "content": "logs\n*.log\nnpm-debug.log*\nnode_modules\n.npm\n.DS_Store\n"
  },
  {
    "path": "README.md",
    "content": "## Nodejs in 10 minutes\n\nclone the project\n\n### Installations\n* npm install\n\n### Run\n\n* npm run start\n\n:)"
  },
  {
    "path": "api/controllers/todoListController.js",
    "content": "'use strict';\n\nvar mongoose = require('mongoose'),\n  Task = mongoose.model('Tasks');\n\n\n\nexports.list_all_tasks = function(req, res) {\n  Task.find({}, function(err, task) {\n    if (err)\n      res.send(err);\n    res.json(task);\n  });\n};\n\n\nexports.create_a_task = function(req, res) {\n  var new_task = new Task(req.body);\n  new_task.save(function(err, task) {\n    if (err)\n      res.send(err);\n    res.json(task);\n  });\n};\n\nexports.read_a_task = function(req, res) {\n  Task.findById(req.params.taskId, function(err, task) {\n    if (err)\n      res.send(err);\n    res.json(task);\n  });\n};\n\nexports.update_a_task = function(req, res) {\n  Task.findOneAndUpdate({_id:req.params.taskId}, req.body, {new: true}, function(err, task) {\n    if (err)\n      res.send(err);\n    res.json(task);\n  });\n};\n// Task.remove({}).exec(function(){});\nexports.delete_a_task = function(req, res) {\n\n  Task.remove({\n    _id: req.params.taskId\n  }, function(err, task) {\n    if (err)\n      res.send(err);\n    res.json({ message: 'Task successfully deleted' });\n  });\n};\n"
  },
  {
    "path": "api/models/todoListModel.js",
    "content": "'use strict';\n\n\nvar mongoose = require('mongoose');\nvar Schema = mongoose.Schema;\n\nvar TaskSchema = new Schema({\n  name: {\n    type: String,\n    Required: 'Kindly enter the name of the task'\n  },\n  Created_date: {\n    type: Date,\n    default: Date.now\n  },\n  status: {\n    type: [{\n      type: String,\n      enum: ['pending', 'ongoing', 'completed']\n    }],\n    default: ['pending']\n  }\n});\n\n\nmodule.exports = mongoose.model('Tasks', TaskSchema);"
  },
  {
    "path": "api/routes/todoListRoutes.js",
    "content": "'use strict';\n\nmodule.exports = function(app) {\n\tvar todoList = require('../controllers/todoListController');\n\n\t// todoList Routes\n\tapp.route('/tasks')\n\t\t.get(todoList.list_all_tasks)\n\t\t.post(todoList.create_a_task);\n\n\tapp.route('/tasks/:taskId')\n\t\t.get(todoList.read_a_task)\n\t\t.put(todoList.update_a_task)\n\t\t.delete(todoList.delete_a_task);\n};\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"todolistapi\",\n  \"version\": \"1.0.0\",\n  \"description\": \"RESTful todoListApi\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"start\": \"nodemon server.js\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/generalgmt/RESTfulAPITutorial.git\"\n  },\n  \"keywords\": [\n    \"RESTful\",\n    \"API\",\n    \"Tutorial\"\n  ],\n  \"author\": \"olatunde garuba\",\n  \"license\": \"ISC\",\n  \"bugs\": {\n    \"url\": \"https://github.com/generalgmt/RESTfulAPITutorial/issues\"\n  },\n  \"homepage\": \"https://github.com/generalgmt/RESTfulAPITutorial#readme\",\n  \"devDependencies\": {\n    \"nodemon\": \"^1.11.0\"\n  },\n  \"dependencies\": {\n    \"body-parser\": \"^1.15.2\",\n    \"express\": \"^4.14.0\",\n    \"mongoose\": \"^5.7.7\"\n  }\n}\n"
  },
  {
    "path": "server.js",
    "content": "var express = require('express'),\n  app = express(),\n  port = process.env.PORT || 3000,\n  mongoose = require('mongoose'),\n  Task = require('./api/models/todoListModel'),\n  bodyParser = require('body-parser');\n\nmongoose.Promise = global.Promise;\nmongoose.connect('mongodb://localhost/Tododb');\n\n\napp.use(bodyParser.urlencoded({ extended: true }));\napp.use(bodyParser.json());\n\n\nvar routes = require('./api/routes/todoListRoutes');\nroutes(app);\n\napp.use(function(req, res) {\n  res.status(404).send({url: req.originalUrl + ' not found'})\n});\n\napp.listen(port);\n\nconsole.log('todo list RESTful API server started on: ' + port);\n"
  }
]