Skip to content

Commit c9aeca4

Browse files
authored
Merge pull request #22630 from github/repo-sync
repo sync
2 parents b2b3358 + 2fd7e0f commit c9aeca4

File tree

1 file changed

+9
-33
lines changed

1 file changed

+9
-33
lines changed

components/lib/get-rest-code-samples.ts

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { useMainContext } from 'components/context/MainContext'
88
type CodeExamples = Record<string, any>
99
/*
1010
Generates a curl example
11+
1112
For example:
1213
curl \
1314
-X POST \
@@ -23,11 +24,6 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
2324
? codeSample.response.contentType
2425
: 'application/vnd.github+json'
2526

26-
const contentTypeHeader =
27-
codeSample?.request?.contentType === 'application/octet-stream'
28-
? '-H "Content-Type: application/octet-stream"'
29-
: ''
30-
3127
let requestPath = codeSample?.request?.parameters
3228
? parseTemplate(operation.requestPath).expand(codeSample.request.parameters)
3329
: operation.requestPath
@@ -50,22 +46,14 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
5046
const CURL_CONTENT_TYPE_MAPPING: { [key: string]: string } = {
5147
'application/x-www-form-urlencoded': '--data-urlencode',
5248
'multipart/form-data': '--form',
53-
'application/octet-stream': '--data-binary',
5449
}
5550
const contentType = codeSample.request.contentType
5651
if (codeSample.request.contentType in CURL_CONTENT_TYPE_MAPPING) {
5752
requestBodyParams = ''
58-
// Most of the time the example body parameters have a name and value
59-
// and are included in an object. But, some cases are a single value
60-
// and the type is a string.
61-
if (typeof codeSample.request.bodyParameters === 'object') {
62-
const paramNames = Object.keys(codeSample.request.bodyParameters)
63-
paramNames.forEach((elem) => {
64-
requestBodyParams = `${requestBodyParams} ${CURL_CONTENT_TYPE_MAPPING[contentType]} "${elem}=${codeSample.request.bodyParameters[elem]}"`
65-
})
66-
} else {
67-
requestBodyParams = `${CURL_CONTENT_TYPE_MAPPING[contentType]} "${codeSample.request.bodyParameters}"`
68-
}
53+
const paramNames = Object.keys(codeSample.request.bodyParameters)
54+
paramNames.forEach((elem) => {
55+
requestBodyParams = `${requestBodyParams} ${CURL_CONTENT_TYPE_MAPPING[contentType]} "${elem}=${codeSample.request.bodyParameters[elem]}"`
56+
})
6957
}
7058
}
7159

@@ -83,7 +71,6 @@ export function getShellExample(operation: Operation, codeSample: CodeSample) {
8371
const args = [
8472
operation.verb !== 'get' && `-X ${operation.verb.toUpperCase()}`,
8573
`-H "Accept: ${defaultAcceptHeader}" \\\n ${authHeader}${apiVersionHeader}`,
86-
contentTypeHeader,
8774
`${operation.serverUrl}${requestPath}`,
8875
requestBodyParams,
8976
].filter(Boolean)
@@ -114,10 +101,7 @@ export function getGHExample(operation: Operation, codeSample: CodeSample) {
114101
requestPath += requiredQueryParams ? `?${requiredQueryParams}` : ''
115102

116103
let requestBodyParams = ''
117-
// Most of the time the example body parameters have a name and value
118-
// and are included in an object. But, some cases are a single value
119-
// and the type is a string.
120-
if (typeof codeSample?.request?.bodyParameters === 'object') {
104+
if (codeSample?.request?.bodyParameters) {
121105
const bodyParamValues = Object.values(codeSample.request.bodyParameters)
122106
// GitHub CLI does not support sending Objects and arrays using the -F or
123107
// -f flags. That support may be added in the future. It is possible to
@@ -136,8 +120,6 @@ export function getGHExample(operation: Operation, codeSample: CodeSample) {
136120
}
137121
})
138122
.join('\\\n ')
139-
} else {
140-
requestBodyParams = `-f '${codeSample.request.bodyParameters}'`
141123
}
142124
const args = [
143125
operation.verb !== 'get' && `--method ${operation.verb.toUpperCase()}`,
@@ -165,15 +147,9 @@ export function getGHExample(operation: Operation, codeSample: CodeSample) {
165147
166148
*/
167149
export function getJSExample(operation: Operation, codeSample: CodeSample) {
168-
const parameters =
169-
// Most of the time the example body parameters have a name and value
170-
// and are included in an object. But, some cases are a single value
171-
// and the type is a string.
172-
typeof codeSample.request.bodyParameters === 'object'
173-
? codeSample.request
174-
? { ...codeSample.request.parameters, ...codeSample.request.bodyParameters }
175-
: {}
176-
: { ...codeSample.request.parameters, data: codeSample.request.bodyParameters }
150+
const parameters = codeSample.request
151+
? { ...codeSample.request.parameters, ...codeSample.request.bodyParameters }
152+
: {}
177153

178154
let queryParameters = ''
179155

0 commit comments

Comments
 (0)