Skip to content

Instantly share code, notes, and snippets.

@baruchvlz
Created March 30, 2016 15:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save baruchvlz/d8d79134b4cf254612dc11aec5e72d9e to your computer and use it in GitHub Desktop.
Save baruchvlz/d8d79134b4cf254612dc11aec5e72d9e to your computer and use it in GitHub Desktop.
Simple CRUD Helper to be used with MongoDB. Uses `q`
import q from 'q'
/*******************************************************************************
Create
*******************************************************************************/
export function crudCreate ( model, body ){
let dfd = q.defer()
new model(body).save()
.then(result => {
return dfd.resolve(result)
})
.catch(err => {
return dfd.reject(err)
})
return dfd.promise
}
/*******************************************************************************
Read
*******************************************************************************/
export function crudReadOne( model, query ){
let dfd = q.defer()
model.findOne( query )
.then( result => {
if(!result){
return dfd.reject(result)
}
return dfd.resolve(result)
})
.catch( err => {
return dfd.reject(err)
})
return dfd.promise
}
export function crudReadAll( model ){
let dfd = q.defer()
model.find()
.then( result => {
if(!result || result.length === 0){
return dfd.reject(result)
}
return dfd.resolve(result)
})
.catch( err => {
return dfd.reject(err)
})
return dfd.promise
}
/*******************************************************************************
Update
*******************************************************************************/
export function crudUpdate( model, query, body ){
let dfd = q.defer()
model.findOneAndUpdate(query, body, {}, (err, result) => {
if(err)
return dfd.reject(err)
return dfd.resolve(result)
})
return dfd.promise
}
/*******************************************************************************
Delete
*******************************************************************************/
export function crudDelete( model, query = {}){
let dfd = q.defer()
model.find(query).remove()
.then( result => {
return dfd.resolve(`Delete Successful`)
})
.catch( err => {
return dfd.reject(`Could Not Delete`)
})
return dfd.promise
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment