Skip to content

Commit

Permalink
return collector token when posting/regsitering a collector
Browse files Browse the repository at this point in the history
  • Loading branch information
shriramshankar committed Aug 1, 2017
1 parent fd21561 commit 0e80946
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 10 deletions.
23 changes: 18 additions & 5 deletions api/v1/controllers/collectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,19 @@
'use strict'; // eslint-disable-line strict
const featureToggles = require('feature-toggles');
const utils = require('./utils');
const jwtUtil = require('../../../utils/jwtUtil');
const apiErrors = require('../apiErrors');
const helper = require('../helpers/nouns/collectors');
const userProps = require('../helpers/nouns/users');
const doDelete = require('../helpers/verbs/doDelete');
const doDeleteAllAssoc = require('../helpers/verbs/doDeleteAllBToMAssoc');
const doDeleteOneAssoc = require('../helpers/verbs/doDeleteOneBToMAssoc');
const doPostAssoc = require('../helpers/verbs/doPostBToMAssoc');
const doFind = require('../helpers/verbs/doFind');
const doGet = require('../helpers/verbs/doGet');
const doPatch = require('../helpers/verbs/doPatch');
const doPost = require('../helpers/verbs/doPost');
const doPut = require('../helpers/verbs/doPut');
const u = require('../helpers/verbs/utils');
const httpStatus = require('../constants').httpStatus;
const authUtils = require('../helpers/authUtils');
const ZERO = 0;

/**
Expand All @@ -37,8 +35,23 @@ const ZERO = 0;
* @param {Function} next - The next middleware function in the stack
*/
function postCollector(req, res, next) {
// TODO reject if caller is not a collector
doPost(req, res, next, helper);
const collectorToPost = req.swagger.params.queryBody.value;
const resultObj = { reqStartTime: new Date() };
const tokenToReturn = jwtUtil.createToken(collectorToPost.name,
collectorToPost.name);
const toPost = req.swagger.params.queryBody.value;
helper.model.create(toPost)
.then((o) => {
if (helper.loggingEnabled) {
resultObj.dbTime = new Date() - resultObj.reqStartTime;
utils.logAPI(req, resultObj, o);
}

o.dataValues.token = tokenToReturn;
return res.status(httpStatus.CREATED)
.json(u.responsify(o, helper, req.method));
})
.catch((err) => u.handleError(next, err, helper.modelName));
} // postCollector

/**
Expand Down
14 changes: 9 additions & 5 deletions tests/api/v1/collectors/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
const supertest = require('supertest');
const api = supertest(require('../../../../index').app);
const constants = require('../../../../api/v1/constants');
const jwtUtil = require('../../../../utils/jwtUtil');
const tu = require('../../../testUtils');
const u = require('./utils');
const path = '/v1/collectors';
Expand All @@ -33,17 +34,20 @@ describe(`api: POST ${path}`, () => {
afterEach(u.forceDelete);
after(tu.forceDeleteUser);

it('OK', (done) => {
it('OK: a collector token should also be returned', (done) => {
api.post(path)
.set('Authorization', token)
.send(u.toCreate)
.expect(constants.httpStatus.CREATED)
.end((err /* , res */) => {
.end((err, res) => {
if (err) {
done(err);
return done(err);
}

done();
const collectortoken = jwtUtil
.createToken(u.toCreate.name, u.toCreate.name);
expect(res.body.registered).to.equal(true);
expect(res.body.token).to.equal(collectortoken);
return done();
});
});

Expand Down

0 comments on commit 0e80946

Please sign in to comment.