source: node_modules/swagger-client/lib/execute/oas3/parameter-builders.js@ 65b6638

main
Last change on this file since 65b6638 was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 3.8 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5exports.__esModule = true;
6exports.cookie = cookie;
7exports.header = header;
8exports.path = path;
9exports.query = query;
10var _styleSerializer = _interopRequireWildcard(require("./style-serializer.js"));
11var _contentSerializer = _interopRequireDefault(require("./content-serializer.js"));
12function path({
13 req,
14 value,
15 parameter
16}) {
17 const {
18 name,
19 style,
20 explode,
21 content
22 } = parameter;
23 if (content) {
24 const effectiveMediaType = Object.keys(content)[0];
25 req.url = req.url.split(`{${name}}`).join((0, _styleSerializer.encodeDisallowedCharacters)((0, _contentSerializer.default)(value, effectiveMediaType), {
26 escape: true
27 }));
28 return;
29 }
30 const styledValue = (0, _styleSerializer.default)({
31 key: parameter.name,
32 value,
33 style: style || 'simple',
34 explode: explode || false,
35 escape: true
36 });
37 req.url = req.url.split(`{${name}}`).join(styledValue);
38}
39function query({
40 req,
41 value,
42 parameter
43}) {
44 req.query = req.query || {};
45 if (parameter.content) {
46 const effectiveMediaType = Object.keys(parameter.content)[0];
47 const serializedValue = (0, _contentSerializer.default)(value, effectiveMediaType);
48 if (serializedValue) {
49 req.query[parameter.name] = serializedValue;
50 } else if (parameter.allowEmptyValue && value !== undefined) {
51 const paramName = parameter.name;
52 req.query[paramName] = req.query[paramName] || {};
53 req.query[paramName].allowEmptyValue = true;
54 }
55 return;
56 }
57 if (value === false) {
58 value = 'false';
59 }
60 if (value === 0) {
61 value = '0';
62 }
63 if (value) {
64 const {
65 style,
66 explode,
67 allowReserved
68 } = parameter;
69 req.query[parameter.name] = {
70 value,
71 serializationOption: {
72 style,
73 explode,
74 allowReserved
75 }
76 };
77 } else if (parameter.allowEmptyValue && value !== undefined) {
78 const paramName = parameter.name;
79 req.query[paramName] = req.query[paramName] || {};
80 req.query[paramName].allowEmptyValue = true;
81 }
82}
83const PARAMETER_HEADER_BLACKLIST = ['accept', 'authorization', 'content-type'];
84function header({
85 req,
86 parameter,
87 value
88}) {
89 req.headers = req.headers || {};
90 if (PARAMETER_HEADER_BLACKLIST.indexOf(parameter.name.toLowerCase()) > -1) {
91 return;
92 }
93 if (parameter.content) {
94 const effectiveMediaType = Object.keys(parameter.content)[0];
95 req.headers[parameter.name] = (0, _contentSerializer.default)(value, effectiveMediaType);
96 return;
97 }
98 if (value !== undefined && !(Array.isArray(value) && value.length === 0)) {
99 req.headers[parameter.name] = (0, _styleSerializer.default)({
100 key: parameter.name,
101 value,
102 style: parameter.style || 'simple',
103 explode: typeof parameter.explode === 'undefined' ? false : parameter.explode,
104 escape: false
105 });
106 }
107}
108function cookie({
109 req,
110 parameter,
111 value
112}) {
113 req.headers = req.headers || {};
114 const type = typeof value;
115 if (parameter.content) {
116 const effectiveMediaType = Object.keys(parameter.content)[0];
117 req.headers.Cookie = `${parameter.name}=${(0, _contentSerializer.default)(value, effectiveMediaType)}`;
118 return;
119 }
120 if (value !== undefined && !(Array.isArray(value) && value.length === 0)) {
121 const prefix = type === 'object' && !Array.isArray(value) && parameter.explode ? '' : `${parameter.name}=`;
122 req.headers.Cookie = prefix + (0, _styleSerializer.default)({
123 key: parameter.name,
124 value,
125 escape: false,
126 style: parameter.style || 'form',
127 explode: typeof parameter.explode === 'undefined' ? false : parameter.explode
128 });
129 }
130}
Note: See TracBrowser for help on using the repository browser.