'use strict'
const db = require('APP/db')
const Product = db.model('product')

module.exports = require('express').Router()
  .get('/', (req, res, next) =>
    Product.findAll()
      .then(products => res.json(products))
      .catch(next))
  .post('/', (req, res, next) =>
    Product.create(req.body)
      .then(product => res.status(201).json(product))
      .catch(next))
  .get('/:id', (req, res, next) =>
    Product.findById(req.params.id)
      .then(product => res.json(product))
      .catch(next))
  .put('/:id', (req, res, next) =>
    Product.findById(req.params.id)
    .then(product => product.update(req.body.title))
    .then(updatedProduct => res.json(updatedProduct))
    .catch(next))
  .delete('/:id', (req, res, next) =>
    Product.findById(req.params.id)
    .then(product => product.destroy())
    .then(() => res.status(204).end())
    .catch(next))
@@ -61,23 +61,88 @@
 .model('
-p
+P
 roduct
+s')%0Aconst %7B mustBeLoggedIn, forbidden %7D = require('./auth.filters
 ')%0A%0Amodu
@@ -189,24 +189,78 @@
 %0A  .get('/',
+%0A    forbidden('listing Products is not allowed'),%0A   
  (req, res, 
@@ -260,32 +260,34 @@
 , res, next) =%3E%0A
+  
     Product.find
@@ -290,32 +290,34 @@
 findAll()%0A      
+ 
+ 
 .then(products =
@@ -336,32 +336,34 @@
 roducts))%0A      
+  
 .catch(next))%0A  
@@ -372,16 +372,20 @@
 ost('/',
+%0A   
  (req, r
@@ -393,32 +393,34 @@
 s, next) =%3E%0A    
+ 
+ 
 Product.create(r
@@ -428,16 +428,18 @@
 q.body)%0A
+  
       .t
@@ -482,32 +482,34 @@
 product))%0A      
+ 
+ 
 .catch(next))%0A  
@@ -512,32 +512,56 @@
 )%0A  .get('/:id',
+%0A    mustBeLoggedIn,%0A   
  (req, res, next
@@ -557,32 +557,34 @@
 , res, next) =%3E%0A
+  
     Product.find
@@ -605,24 +605,26 @@
 s.id)%0A      
+ 
+ 
 .then(produc
@@ -649,24 +649,26 @@
 uct))%0A      
+  
 .catch(next)
@@ -675,32 +675,56 @@
 )%0A  .put('/:id',
+%0A    mustBeLoggedIn,%0A   
  (req, res, next
@@ -724,32 +724,34 @@
 s, next) =%3E%0A    
+ 
+ 
 Product.findById
@@ -758,32 +758,36 @@
 (req.params.id)%0A
+    
     .then(produc
@@ -818,17 +818,15 @@
 body
-.title))%0A
+))%0A    
     
@@ -875,24 +875,28 @@
 oduct))%0A    
+ 
+   
 .catch(next)
@@ -914,16 +914,88 @@
 ('/:id',
+%0A    // TO DO: make sure that this user is Admin%0A    mustBeLoggedIn,%0A   
  (req, r
@@ -1003,24 +1003,26 @@
 s, next) =%3E%0A
+  
     Product.
@@ -1045,24 +1045,28 @@
 ams.id)%0A    
+   
+ 
 .then(produc
@@ -1085,24 +1085,28 @@
 .destroy())%0A
+    
     .then(()
@@ -1107,19 +1107,85 @@
 hen(
-() =%3E
+wasDestroyedBool =%3E %7B%0A          if (wasDestroyedBool) %7B%0A           
  res.s
+endS
 tatu
@@ -1194,16 +1194,161 @@
 204)
-.end())%0A
+%0A          %7D else %7B%0A            const err = Error('Product not destroyed')%0A            err.status = 400%0A            throw err%0A          %7D%0A        %7D)%0A    
     

product api