Reworked singleton client to remove instance tracking
diff --git a/helpers/callbackCheck.js b/helpers/callbackCheck.js
new file mode 100644
index 0000000..2562ee0
--- /dev/null
+++ b/helpers/callbackCheck.js
@@ -0,0 +1,3 @@
+module.exports = function(callback) {
+ return (typeof callback === 'function') ? callback : function() {};
+}
\ No newline at end of file
diff --git a/helpers/index.js b/helpers/index.js
index b28336b..491ad4d 100644
--- a/helpers/index.js
+++ b/helpers/index.js
@@ -1,6 +1,8 @@
var mutability = require('./mutability')
+var cb = require('./callbackCheck')
module.exports = {
setImmutable: mutability.setImmutable,
- setMutable: mutability.setMutable
+ setMutable: mutability.setMutable,
+ cb: cb
}
\ No newline at end of file
diff --git a/helpers/mutability.js b/helpers/mutability.js
index 5c56dd4..d70cb51 100644
--- a/helpers/mutability.js
+++ b/helpers/mutability.js
@@ -1,9 +1,9 @@
-function setImmutable(obj, property) {
- return Object.defineProperty(obj, property, { configurable: false, writable: false });
+function setImmutable(obj, key) {
+ return Object.defineProperty(obj, key, { configurable: false, writable: false });
}
-function setMutable(obj, property) {
- return Object.defineProperty(obj, property, { configurable: true, writable: true });
+function setMutable(obj, key) {
+ return Object.defineProperty(obj, key, { configurable: true, writable: true });
}
module.exports = {
diff --git a/lib/client.js b/lib/client.js
new file mode 100644
index 0000000..626b4be
--- /dev/null
+++ b/lib/client.js
@@ -0,0 +1,24 @@
+'use strict'
+
+var UsergridRequest = require('./request'),
+ ok = require('objectkit'),
+ helpers = require('../helpers')
+
+var UsergridClient = function(orgId, appId) {
+ var self = this
+ if (ok(orgId).exists() && ok(appId).exists()) {
+ self.orgId = orgId
+ self.appId = appId
+ console.log(self.orgId, self.appId)
+ return self;
+ } else {
+ throw new Error('orgId and appId must be passed during initialization')
+ }
+}
+
+UsergridClient.prototype.GET = function(uri, options, callback) {
+ return new UsergridRequest('GET', uri, options, callback)
+}
+
+// Exports
+module.exports = UsergridClient
\ No newline at end of file
diff --git a/lib/request.js b/lib/request.js
index c77ef98..d1ea651 100644
--- a/lib/request.js
+++ b/lib/request.js
@@ -6,7 +6,7 @@
var UsergridRequest = function(method, uri, options, callback) {
- if (typeof uri === 'undefined' && ok(options).check('uri') === ok.false) {
+ if (typeof uri === 'undefined' && ok(options).check(['uri', 'url']) === ok.false) {
throw new Error('undefined is not a valid uri or options object.')
}
diff --git a/usergrid.js b/usergrid.js
index 1ca1b52..0bb6835 100644
--- a/usergrid.js
+++ b/usergrid.js
@@ -1,12 +1,25 @@
'use strict'
-var extend = require('extend'),
- request = require('request'),
- UsergridRequest = require('./lib/request')
-var Usergrid = function() {}
+var UsergridClient = require('./lib/client'),
+ // ok = require('objectkit'),
+ helpers = require('./helpers'),
+ util = require("util")
-Usergrid.GET = function(uri, options, callback) {
- return new UsergridRequest('GET', uri, options, callback)
+var Usergrid = function() {
+ var self = this
+ if (self) {
+ return self
+ } else {
+ throw new Error('Usergrid shared instance has not been initialized')
+ }
}
-module.exports = Usergrid
\ No newline at end of file
+util.inherits(Usergrid, UsergridClient);
+
+Usergrid.prototype.initialize = function(orgId, appId, callback) {
+ var self = this
+ self = new UsergridClient(orgId, appId)
+}
+
+// Exports
+module.exports = new Usergrid
\ No newline at end of file