From d4fdda840f59b6e6738cb4237e8344dc2a2f7804 Mon Sep 17 00:00:00 2001 From: Peter DeMartini Date: Mon, 13 Feb 2017 10:27:41 -0700 Subject: [PATCH] v10.0.0 use meshblu-connector-service to generate OTP --- package.json | 2 +- src/helpers/connector-metadata.js | 28 ----------------- src/services/connector-creator.js | 49 ++++++++++++++++-------------- src/services/go-version-service.js | 16 ---------- src/services/otp-service.js | 13 -------- 5 files changed, 27 insertions(+), 81 deletions(-) delete mode 100644 src/services/go-version-service.js diff --git a/package.json b/package.json index db7ae04..0e2c379 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshblu-connector-factory", - "version": "9.9.2", + "version": "10.0.0", "description": "meshblu-connector-factory", "main": "index.js", "scripts": { diff --git a/src/helpers/connector-metadata.js b/src/helpers/connector-metadata.js index 85e3c54..a023401 100644 --- a/src/helpers/connector-metadata.js +++ b/src/helpers/connector-metadata.js @@ -1,5 +1,4 @@ import _ from 'lodash' -import { getAllLatestVersions } from '../services/go-version-service' export function getConnectorName(connector) { return connector.replace(/^meshblu-(connector-)/, '') @@ -9,30 +8,3 @@ export function getFriendlyName(connector) { const name = getConnectorName(connector) return `Connector ${_.startCase(name)}` } - -export function getConnectorMetadata({ connector, githubSlug, version, octoblu, meshblu }, callback) { - const betterVersion = version.replace('v', '') - const tag = `v${betterVersion}` - - getAllLatestVersions((error, versions) => { - if (error != null) return callback(error) - const { - ignitionVersion, - installerVersion, - } = versions - - const defaults = { - meshblu: { domain: 'octoblu.com' }, - } - - callback(null, _.defaultsDeep({ - connector: getConnectorName(connector), - tag, - githubSlug, - installerVersion, - ignitionVersion, - octoblu, - meshblu, - }, defaults)) - }) -} diff --git a/src/services/connector-creator.js b/src/services/connector-creator.js index 35944cd..1944bb0 100644 --- a/src/services/connector-creator.js +++ b/src/services/connector-creator.js @@ -1,40 +1,22 @@ import _ from 'lodash' import request from 'superagent' import { getMeshbluConfig } from '../helpers/authentication' -import { getFriendlyName, getConnectorMetadata } from '../helpers/connector-metadata' +import { getFriendlyName } from '../helpers/connector-metadata' import { CONNECTOR_SERVICE_URI } from '../constants/config' import { - generateAndStoreToken, getDevice, } from '../services/device-service' -import { generateOtp } from '../services/otp-service' - function generateKeyWrapper({ registryItem, connector, version, octoblu }, callback) { return (error, device) => { if (error) return callback(error) const { uuid } = device - const meshblu = _.get(device, 'connectorMetadata.meshblu') - generateAndStoreToken({ uuid }, (error, { token } = {}) => { - if (error != null) return callback(error) - const { githubSlug } = registryItem - const options = { - connector, - githubSlug, - version, - octoblu, - meshblu, - } - getConnectorMetadata(options, (error, metadata) => { - if (error != null) return callback(error) - generateOtp({ uuid, token, metadata }, (error, response) => { - if (error != null) return callback(error) - const { key } = response || {} - return callback(null, { key, uuid }) - }) - }) + generateOtp({ uuid }, (error, response) => { + if (error) return callback(error) + const { key } = response || {} + return callback(null, { key, uuid }) }) } } @@ -59,6 +41,27 @@ function updateConnector({ uuid, properties }, callback) { }) } +function generateOtp({ uuid }, callback) { + request + .post(`${CONNECTOR_SERVICE_URI}/connectors/${uuid}/otp`) + .auth(getMeshbluConfig().uuid, getMeshbluConfig().token) + .accept('application/json') + .set('Content-Type', 'application/json') + .end((error, response) => { + if (error) { + callback(error) + return + } + if (!response.ok) { + callback(new Error(_.get(response, 'body.error', 'Unable to update the connector'))) + return + } + const key = _.get(response, 'body.key') + if (!key) return callback(new Error('Unable to generate OTP')) + callback(null, { key }) + }) +} + function createConnector({ properties }, callback) { request .post(`${CONNECTOR_SERVICE_URI}/users/${getMeshbluConfig().uuid}/connectors`) diff --git a/src/services/go-version-service.js b/src/services/go-version-service.js deleted file mode 100644 index fa054d2..0000000 --- a/src/services/go-version-service.js +++ /dev/null @@ -1,16 +0,0 @@ -import async from 'async' - -export function getLatestIgnitionVersion(callback) { - callback(null, 'v8.2.1') -} - -export function getLatestInstallerVersion(callback) { - callback(null, 'v2.2.1') -} - -export function getAllLatestVersions(callback) { - async.parallel({ - ignitionVersion: getLatestIgnitionVersion, - installerVersion: getLatestInstallerVersion, - }, callback) -} diff --git a/src/services/otp-service.js b/src/services/otp-service.js index bb728c1..e97191d 100644 --- a/src/services/otp-service.js +++ b/src/services/otp-service.js @@ -11,16 +11,3 @@ export function resolveOtp({ otp }, callback) { return callback(null, response.body) }) } - -export function generateOtp({ uuid, token, metadata }, callback) { - return request - .post(`${OTP_SERVICE_URI}/generate`) - .auth(uuid, token) - .send(metadata) - .end((error, response) => { - if (error) return callback(error) - if (!response.ok) return callback(new Error('Invalid Response')) - - return callback(null, response.body) - }) -}