@amidoltd/shared-req-res-handler

v1.0.3

Published

web response/request model classes for router's in express like framework

Downloads

6

Readme

Shared Rest Request/Response parser

Can be used with any web framework like express, should be used to strip out any meta data in the request object, allowing for quick access to headers, body, params, query objects

installation

npm i @amidoltd/shared-req-res-handler

sample usage

full request object parsed
var RestModel = require('@amidoltd/shared-req-res-handler');
var SomeFoo = require('./someFoo');

/**
 * sample PUT request
 */
router.post('/:mandatoryPathParam/:optionalPathParam?', function (req, res) {
    this._req = req;
    // fullObject will parse the entire request and strip out all properties except body, headers, params, query
    var someFoo = new SomeFoo(RestModel.Reqst.fullObject(this._req));
    someFoo.methodRequiringFullRequestObject((e, d) => {
        if (e) {
            res.statusCode = 500;
            res.send(RestModel.Resp.errorResp(e, "ANSIBLE160x5"));  // TODO stringify error response on app side
            res.end();
        } else {
            res.statusCode = 200;
            res.send(RestModel.Resp.successResp(d));
            res.end();
        }
    });
});
params only
var RestModel = require('@amidoltd/shared-req-res-handler');
var SomeFoo = require('./someFoo');

/**
 * sample PUT request
 */
router.put('/:mandatoryPathParam/:optionalPathParam?', function (req, res) {
    this._req = req;
    // params will parse the params of request and strip out all other properties
    var someFoo = new SomeFoo(RestModel.Reqst.fullObject(this._req));
    someFoo.methodRequiringParamsOfTheRequestOnly((e, d) => {
        if (e) {
            res.statusCode = 500;
            res.send(RestModel.Resp.errorResp(e, "ANSIBLE160x5"));  // TODO stringify error response on app side
            res.end();
        } else {
            res.statusCode = 200;
            res.send(RestModel.Resp.successResp(d));
            res.end();
        }
    });
});
request details
var RestModel = require('@amidoltd/shared-req-res-handler');
var requestParsed = RestModel.Reqst.fullObject(this._req);

console.log(requestParsed);
{   
    body: {},
    params: {},
    headers: {},
    query: {}
}

Response Parser

This will create a unified response Model to be consumed in client apps

  • on success returning an object
{ 
    responseData: {}
}
  • on success returning an array
{ 
    responseData: [{}]
}
  • on success returning a string
{ 
    responseData: ""
}
  • on error returns an error object and a code to allow for
{ 
    responseData: {},
    code: ""
}

RELEASE NOTES
  • 1.0.2 * *
TODO
  • improve docs