UNPKG

ohm

Version:

Node.js Session Manager

119 lines (108 loc) 3.24 kB
'use strict'; (function () { 'use strict'; var emptyFunction = include('models/emptyFunction.js'); var Parse = include('apis/Parse.js'); /** * This class is the essential class for determining * the identity of the logged in user. * * Never create a ViewerContext on your own, that is, DONT DO * > new ViewerContext(foo); // THIS IS BAD!! * * Instead do * > ViewerContext.fetchWithFBUserID(fbUserID, callback); * * or * > ViewerContext.genFromViewerContextID(viewerContextID, callback); * * The reason is so we never create more than one viewer context per * request. * @module ViewerContext */ var ViewerContext = Parse.Object.extend('ViewerContext', { /** * @param {object} slug */ getCredential: function getCredential(slug) { return this.get(slug); }, /** * @param {object} slug * @param {object} token */ setCredential: function setCredential(slug, token) { return this.set(slug, token); }, /** * @param {object} slug */ clearCredential: function clearCredential(slug) { return this.set(slug, {}); }, /** * @param {function} callback */ saveParseObject: function saveParseObject(callback) { this.save(null, { success: function success(data) { callback(null, data); }, error: function error(_error) { callback(_error); } }); } }, { /** * @param {function} callback * @param {string} primaryAccountKey * @returns {object} viewerContext */ genFromPrimaryAccount: function genFromPrimaryAccount(key, value, callback) { if (!callback) { return console.error('No callback passed into genFromClientID.'); } if (!key) { return callback(null, new ViewerContext({})); } var query = new Parse.Query(ViewerContext); query.equalTo(key, value); query.first().then(function (viewerContext) { return callback(null, viewerContext); }); }, /** Generate From ViewerContext ID * @param {string} viewerContextID * @param {function} callback * @returns {object} viewerContext */ genFromViewerContextID: function genFromViewerContextID(viewerContextID, callback) { if (!callback) { return console.error('No callback passed into genFromViewerContextID.'); } if (!viewerContextID) { var vc = new ViewerContext(); vc.saveParseObject(function (err, data) { return callback(null, data); }); } else { var query = new Parse.Query(ViewerContext); query.get(viewerContextID, { success: function success(viewerContext) { return callback(null, viewerContext); }, error: function error(object, _error2) { return callback(_error2, new ViewerContext({})); } }); } }, /** TESTING: Generate Temp ViewerContext */ genTemporaryViewerContext_UNITTEST: function genTemporaryViewerContext_UNITTEST(initData) { var temp = new ViewerContext(initData); return temp; } }); module.exports = ViewerContext; })();