UNPKG

nokia-api-gateway

Version:
64 lines (53 loc) 2.13 kB
const express = require('express') const { CONSUMER_KEY, CONSUMER_SECRET } = require('../../constants/oauth-keys') const { NOKIA_HEALTH_OAUTH, OAUTH_SIGNATURE_METHOD, OAUTH_VERSION } = require('../../constants/nokia-health-oauth') const uuid = require('uuid') const moment = require('moment') const oauthSignature = require('oauth-signature') const parseErrorInKeys = require('../parseErrorInKeys') const router = express.Router() const generateNonce = () => { const nonce = uuid.v4().split('-').join('') return nonce } const generateTimeStamp = () => { const unixtime = moment().unix() return unixtime } const generateSignature = (url, requestToken, requestTokenSecret, nonce, timestamp) => { const httpMethod = 'GET' const parameters = { oauth_consumer_key : CONSUMER_KEY, oauth_nonce : nonce, oauth_signature_method : OAUTH_SIGNATURE_METHOD, oauth_timestamp : timestamp, oauth_token : requestToken, oauth_version : OAUTH_VERSION, } const signature = oauthSignature.generate(httpMethod, url, parameters, CONSUMER_SECRET, requestTokenSecret) return signature } /* GET home page. */ router.get('/', function(req, res, next) { NOKIA_HEALTH_OAUTH.getOAuthRequestToken(function(error, requestToken, requestTokenSecret, results) { if(error) { return res.json({ success: false }) } const resultsError = parseErrorInKeys(results) if (resultsError) { return res.json({ success: false, error: resultsError.message }) } const url = 'https://developer.health.nokia.com/account/authorize' const nonce = generateNonce() const timestamp = generateTimeStamp() const signature = generateSignature(url, requestToken, requestTokenSecret, nonce, timestamp) const authUrl = `${url}?oauth_consumer_key=${CONSUMER_KEY}&oauth_nonce=${nonce}&oauth_signature=${signature}&oauth_signature_method=${OAUTH_SIGNATURE_METHOD}&oauth_timestamp=${timestamp}&oauth_token=${requestToken}&oauth_version=${OAUTH_VERSION}` res.json({ success: true, requestToken, requestTokenSecret, authUrl, }) }) }) module.exports = router