Skip to content

Commit

Permalink
fix content type header for lex model v2 (#3616)
Browse files Browse the repository at this point in the history
* fix content type header for lex model v2

* rephrase changelog

Co-authored-by: Trivikram Kamat <[email protected]>
  • Loading branch information
AllanZhengYP and trivikr authored Jan 29, 2021
1 parent 99aaea2 commit 617d8fb
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .changes/next-release/bugfix-Lex Models V2-eca422d9.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "bugfix",
"category": "Lex Models V2",
"description": "Lex Models V2 service requires Content-Type header to be application/x-amz-json-1.1"
}
1 change: 1 addition & 0 deletions clients/lexmodelsv2.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var apiLoader = AWS.apiLoader;

apiLoader.services['lexmodelsv2'] = {};
AWS.LexModelsV2 = Service.defineService('lexmodelsv2', ['2020-08-07']);
require('../lib/services/lexmodelsv2');
Object.defineProperty(apiLoader.services['lexmodelsv2'], '2020-08-07', {
get: function get() {
var model = require('../apis/models.lex.v2-2020-08-07.min.json');
Expand Down
23 changes: 23 additions & 0 deletions lib/services/lexmodelsv2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
var AWS = require('../core');

AWS.util.update(AWS.LexModelsV2.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('build', this.modifyContentType);
},

/**
* Normally rest-json services require `Content-Type` header to be 'application/json',
* However Lex Model V2 services requires the header to be 'application/x-amz-json-1.1'.
*
* @api private
*/
modifyContentType: function modifyContentType(request) {
if (request.httpRequest.headers['Content-Type'] === 'application/json') {
request.httpRequest.headers['Content-Type'] = 'application/x-amz-json-1.1';
}
}
});

16 changes: 16 additions & 0 deletions test/services/lexmodelsv2.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
var helpers = require('../helpers');
var AWS = helpers.AWS;

describe('AWS.LexModelsV2', function() {
var lexmodelsv2 = null;
beforeEach(function() {
lexmodelsv2 = new AWS.LexModelsV2();
});

it('should set Content-Type header to application/x-amz-json-1.1', function () {
helpers.mockHttpResponse(200, {}, '');
req = lexmodelsv2.listBots();
req.build();
return expect(req.httpRequest.headers['Content-Type']).to.equal('application/x-amz-json-1.1');
});
});

0 comments on commit 617d8fb

Please sign in to comment.