slouch/scripts/index.js
Geoff Cox 54a60e7a21 feat(auth): cookie authentication in node (#27)
* feat(cookie): request-wrapper

* test(request-wrapper): 100% coverage

* test(browser): 100% coverage

* refactor(request-class): rename to enhanced-request

* feat(get-session)

* feat(enhanced-request): full response

* refactor(enhanced-request): enhanced opts

* feat(example): authentication
2017-09-23 04:49:07 -07:00

46 lines
1.5 KiB
JavaScript

'use strict';
var Attachment = require('./attachment'),
Config = require('./config'),
DB = require('./db'),
Doc = require('./doc'),
ExcludeDesignDocsIterator = require('./exclude-design-docs-iterator'),
Membership = require('./membership'),
NotAuthenticatedError = require('./not-authenticated-error'),
Security = require('./security'),
System = require('./system'),
User = require('./user'),
EnhancedRequest = require('./enhanced-request'),
RequestWrapper = require('./request-wrapper');
var Slouch = function (url) {
this._url = url;
// Package request so that we can inject a cookie, provide promises and better built-in logic
this._requestWrapper = new RequestWrapper();
this._request = this._requestWrapper.requestFactory();
this._enhancedRequest = new EnhancedRequest(this._request);
// Shorthand so that can just issue _slouch.req() in different modules
this._req = this._requestFactory();
this.attachment = new Attachment(this);
this.config = new Config(this);
this.db = new DB(this);
this.doc = new Doc(this);
this.ExcludeDesignDocsIterator = ExcludeDesignDocsIterator;
this.system = new System(this);
this.membership = new Membership(this);
this.NotAuthenticatedError = NotAuthenticatedError;
this.security = new Security(this);
this.user = new User(this);
};
Slouch.prototype._requestFactory = function () {
var self = this;
return function () {
return self._enhancedRequest.request.apply(self._enhancedRequest, arguments);
};
};
module.exports = Slouch;