Created
March 30, 2016 15:20
-
-
Save baruchvlz/d8d79134b4cf254612dc11aec5e72d9e to your computer and use it in GitHub Desktop.
Simple CRUD Helper to be used with MongoDB. Uses `q`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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