octoblu/meshblu-server-http

View on GitHub
src/controllers/token-controller.coffee

Summary

Maintainability
Test Coverage
MeshbluAuthParser = require '../helpers/meshblu-auth-parser'
debug = require('debug')('meshblu-core-protocol-adapter-http:token-controller')
_     = require 'lodash'
JobToHttp = require '../helpers/job-to-http'

class TokenController
  constructor: ({@jobManager, @jobToHttp}) ->

  create: (req, res) =>
    job = @jobToHttp.httpToJob
      jobType: 'CreateSessionToken'
      request: req
      toUuid: req.params.uuid
      data: req.body

    debug('dispatching request', job)
    @jobManager.do job, (error, jobResponse) =>
      return res.sendError error if error?
      @jobToHttp.sendJobResponse {jobResponse, res}

  destroy: (req, res) =>
    job = @jobToHttp.httpToJob
      jobType: 'RevokeSessionToken'
      request: req
      toUuid: req.params.uuid
      data:
        token: req.params.token
        
    debug('dispatching request', job)
    @jobManager.do job, (error, jobResponse) =>
      return res.sendError error if error?
      @jobToHttp.sendJobResponse {jobResponse, res}

  revokeByQuery: (req, res) =>
    job = @jobToHttp.httpToJob
      jobType: 'RevokeTokenByQuery'
      request: req
      toUuid: req.params.uuid
      data: req.query

    debug('dispatching request', job)
    @jobManager.do job, (error, jobResponse) =>
      return res.sendError error if error?
      @jobToHttp.sendJobResponse {jobResponse, res}

  resetToken: (req, res) =>
    job = @jobToHttp.httpToJob
      jobType: 'ResetToken'
      request: req
      toUuid: req.params.uuid

    debug('dispatching request', job)
    @jobManager.do job, (error, jobResponse) =>
      return res.sendError error if error?
      @jobToHttp.sendJobResponse {jobResponse, res}

module.exports = TokenController