ronelliott/kj-handler-crud-mongo

View on GitHub
handlers/mongo-collection-get.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

const is = require('is');

module.exports = function($opts) {
    var inject = $opts.inject,
        resource = $opts.resource || '$mongo';

    return function(err, $caller, $$resolver, $resolver, $next) {
        if (err) {
            $next(err);
            return;
        }

        var query = {};

        if (is.function($opts.query)) {
            query = $caller($opts.query);
        }

        resource = is.string(resource) ? $$resolver(resource) : resource;
        resource
            .collection($opts.collection)
            .findOne(query, function(err, data) {
                !err && data && inject && $resolver.add(inject, data);
                $next(err);
            });
    };
};