From 2a3d76914e6391d9948dc949d5ba091364af75c5 Mon Sep 17 00:00:00 2001 From: Todd Treece Date: Fri, 27 May 2016 13:15:09 -0400 Subject: [PATCH] es6 changes for npr one module --- lib/one.js | 154 +++++++++++++++++++++++++---------------------------- 1 file changed, 73 insertions(+), 81 deletions(-) diff --git a/lib/one.js b/lib/one.js index a71a4a8..8fd5135 100644 --- a/lib/one.js +++ b/lib/one.js @@ -1,90 +1,82 @@ -/************************ DEPENDENCIES *****************************/ -var util = require('util'), - bunyan = require('bunyan'), - helpers = require('./helpers'), - swagger = require('swagger-client'); +'use strict'; -var proto = One.prototype; -exports = module.exports = One; +const bunyan = require('bunyan'), + helpers = require('./helpers'), + Swagger = require('swagger-client'); -/************************* CONSTRUCTOR ****************************/ -function One(config) { +class One { - if (! (this instanceof One)) - return new One(config); + constructor(config) { - util._extend(this, config || {}); + this.token = false; + this.swagger_url = 'https://api.npr.org/documentation/beryllium/api-docs'; + this.log = false; - if(! this.log) - this.log = bunyan.createLogger({name: 'npr-one'}); + Object.assign(this, config || {}); - // silence swagger log output - process.env.NODE_ENV = 'test'; + if(! this.log) + this.log = bunyan.createLogger({name: 'npr-one'}); + + // silence swagger log output + process.env.NODE_ENV = 'test'; + + } + + init(token) { + + if(token) + this.setAccessToken(token); + + return new Promise((resolve, reject) => { + + const client = new Swagger({ + url: this.swagger_url, + success: () => { + this.client = client; + helpers.processSwagger(this); + resolve(this); + }, + failure: () => { + reject('swagger init failed'); + } + }); + + }); + + } + + setAccessToken(token) { + + this.token = token; + + return new Promise((resolve, reject) => { + + if(! this.token) + return reject('no token supplied'); + + const auth = new Swagger.ApiKeyAuthorization('Authorization', `Bearer ${token}`, 'header'); + + this.client.clientAuthorizations.add('oauth2', auth); + + resolve(); + + }); + + } + + getAccessToken() { + + return new Promise((resolve, reject) => { + + if(! this.token) + return reject('no token supplied'); + + resolve(this.token); + + }); + + } } -/*************************** DEFAULTS *****************************/ -proto.token = false; -proto.swagger_url = 'https://api.npr.org/documentation/beryllium/api-docs'; -proto.log = false; - -proto.init = function(token) { - - var self = this; - - if(token) - this.setAccessToken(token); - - return new Promise(function(resolve, reject) { - - var client = new swagger({ - url: self.swagger_url, - success: function() { - self.client = client; - helpers.processSwagger(self); - resolve(self); - }, - failure: function() { - reject('swagger init failed'); - } - }); - - }); - -}; - -proto.setAccessToken = function(token) { - - var self = this; - - this.token = token; - - return new Promise(function(resolve, reject) { - - if(! self.token) - return reject('no token supplied'); - - var auth = new swagger.ApiKeyAuthorization('Authorization', 'Bearer ' + token, 'header'); - - self.client.clientAuthorizations.add('oauth2', auth); - - resolve(); - - }); - -}; - -proto.getAccessToken = function() { - - var self = this; - - return new Promise(function(resolve, reject) { - - if(! self.token) - return reject('no token supplied'); - - resolve(self.token); - - }); - -}; +exports = module.exports = One;