30 lines
640 B
JavaScript
30 lines
640 B
JavaScript
|
import Collection from '../../models/collection';
|
||
|
import User from '../../models/user';
|
||
|
|
||
|
export default function collectionForUserExists(username, collectionId, callback) {
|
||
|
function sendFailure() {
|
||
|
callback(false);
|
||
|
}
|
||
|
|
||
|
function sendSuccess(collection) {
|
||
|
callback(collection != null);
|
||
|
}
|
||
|
|
||
|
function findUser() {
|
||
|
return User.findOne({ username });
|
||
|
}
|
||
|
|
||
|
function findCollection(owner) {
|
||
|
if (owner == null) {
|
||
|
throw new Error('User not found');
|
||
|
}
|
||
|
|
||
|
return Collection.findOne({ _id: collectionId, owner });
|
||
|
}
|
||
|
|
||
|
return findUser()
|
||
|
.then(findCollection)
|
||
|
.then(sendSuccess)
|
||
|
.catch(sendFailure);
|
||
|
}
|