nokia-api-gateway
Version:
Gateway to Nokia API
64 lines (53 loc) • 2.13 kB
JavaScript
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