UNPKG

adn

Version:

App.net API for Node

77 lines (56 loc) 1.68 kB
// Dependencies var request = require("request"), yoyaku = require("yoyaku"); // API components var ADNAuth = require("./auth"); // Uncommenting these as they get written. // ADNPost = require("./post"); // ADNUser = require("./user"); // ADNChannel = require("./channel"); // ADNMessage = require("./message"); // ADNFile = require("./file"); // ADNStream = require("./stream"); // ADNFilter = require("./filter"); function ADN(options) { options = options || {}; this.clientID = options.clientID; this.clientSecret = options.clientSecret; this.authKind = null; this.authenticated = false; this.appTokens = null; this.userToken = null; this.username = null; this.openStreams = []; return this; } ADN.prototype.auth = yoyaku( { "success": function() {}, "authfail": function(e) { throw e; }, "renderclient": function(e) { throw e; }, "error": function(e) { throw e; } }, function() { var promises = [].pop.call(arguments), parameters = arguments.length >= 1 && arguments[0]; var kind = parameters.kind || this.authKind || "appToken"; if (kind === "appToken") { if (!parameters.clientSecret || !parameters.clientID) return promises.error( new Error("You provide a client ID and secret for appToken authentication.")); ADNAuth.appToken( parameters.clientID, parameters.clientSecret ) .nope(promises.error) .yep(promises.success); } if (kind === "serverSide") { } if (kind === "password") { } new Error("Unspecified or unimplemented auth-type."); }); module.exports = ADN; module.exports.Auth = ADNAuth;