source: node_modules/swagger-client/es/execute/swagger2/parameter-builders.js@ d24f17c

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

Initial commit

  • Property mode set to 100644
File size: 1.7 KB
Line 
1// These functions will update the request.
2// They'll be given {req, value, paramter, spec, operation}.
3
4export default {
5 body: bodyBuilder,
6 header: headerBuilder,
7 query: queryBuilder,
8 path: pathBuilder,
9 formData: formDataBuilder
10};
11
12// Add the body to the request
13function bodyBuilder({
14 req,
15 value
16}) {
17 req.body = value;
18}
19
20// Add a form data object.
21function formDataBuilder({
22 req,
23 value,
24 parameter
25}) {
26 if (value || parameter.allowEmptyValue) {
27 req.form = req.form || {};
28 req.form[parameter.name] = {
29 value,
30 allowEmptyValue: parameter.allowEmptyValue,
31 collectionFormat: parameter.collectionFormat
32 };
33 }
34}
35
36// Add a header to the request
37function headerBuilder({
38 req,
39 parameter,
40 value
41}) {
42 req.headers = req.headers || {};
43 if (typeof value !== 'undefined') {
44 req.headers[parameter.name] = value;
45 }
46}
47
48// Replace path paramters, with values ( ie: the URL )
49function pathBuilder({
50 req,
51 value,
52 parameter
53}) {
54 req.url = req.url.split(`{${parameter.name}}`).join(encodeURIComponent(value));
55}
56
57// Add a query to the `query` object, which will later be stringified into the URL's search
58function queryBuilder({
59 req,
60 value,
61 parameter
62}) {
63 req.query = req.query || {};
64 if (value === false && parameter.type === 'boolean') {
65 value = 'false';
66 }
67 if (value === 0 && ['number', 'integer'].indexOf(parameter.type) > -1) {
68 value = '0';
69 }
70 if (value) {
71 req.query[parameter.name] = {
72 collectionFormat: parameter.collectionFormat,
73 value
74 };
75 } else if (parameter.allowEmptyValue && value !== undefined) {
76 const paramName = parameter.name;
77 req.query[paramName] = req.query[paramName] || {};
78 req.query[paramName].allowEmptyValue = true;
79 }
80}
Note: See TracBrowser for help on using the repository browser.