Simplify API wrappers (#839)
* Updated code generation * API generation * Updated test * Updated code generation * API generation * API generation
This commit is contained in:
committed by
delvedor
parent
99ada00747
commit
132072b8ab
@ -128,17 +128,17 @@ function generate (spec, common) {
|
||||
return handleError(err, callback)
|
||||
}
|
||||
|
||||
var warnings = null
|
||||
var { ${genQueryBlacklist(false)} } = params
|
||||
var querystring = semicopy(params, [${genQueryBlacklist()}])
|
||||
var warnings = []
|
||||
var { ${genQueryBlacklist(false)}, ...querystring } = params
|
||||
querystring = snakeCaseKeys(acceptedQuerystring, snakeCase, querystring, warnings)
|
||||
|
||||
if (method == null) {
|
||||
${generatePickMethod(methods)}
|
||||
}
|
||||
|
||||
var ignore = options.ignore || null
|
||||
var ignore = options.ignore
|
||||
if (typeof ignore === 'number') {
|
||||
ignore = [ignore]
|
||||
options.ignore = [ignore]
|
||||
}
|
||||
|
||||
|
||||
@ -153,36 +153,8 @@ function generate (spec, common) {
|
||||
querystring
|
||||
}
|
||||
|
||||
const requestOptions = {
|
||||
ignore,
|
||||
requestTimeout: options.requestTimeout || null,
|
||||
maxRetries: options.maxRetries || null,
|
||||
asStream: options.asStream || false,
|
||||
headers: options.headers || null,
|
||||
querystring: options.querystring || null,
|
||||
compression: options.compression || false,
|
||||
id: options.id || null,
|
||||
context: options.context || null,
|
||||
warnings
|
||||
}
|
||||
|
||||
return makeRequest(request, requestOptions, callback)
|
||||
|
||||
function semicopy (obj, exclude) {
|
||||
var target = {}
|
||||
var keys = Object.keys(obj)
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i]
|
||||
if (exclude.indexOf(key) === -1) {
|
||||
target[snakeCase[key] || key] = obj[key]
|
||||
if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) {
|
||||
warnings = warnings || []
|
||||
warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter')
|
||||
}
|
||||
}
|
||||
}
|
||||
return target
|
||||
}
|
||||
options.warnings = warnings.length === 0 ? null : warnings
|
||||
return makeRequest(request, options, callback)
|
||||
}
|
||||
`.trim() // always call trim to avoid newlines
|
||||
|
||||
@ -213,7 +185,7 @@ function generate (spec, common) {
|
||||
|
||||
function build${name[0].toUpperCase() + name.slice(1)} (opts) {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const { makeRequest, ConfigurationError, handleError } = opts
|
||||
const { makeRequest, ConfigurationError, handleError, snakeCaseKeys } = opts
|
||||
${generateDocumentation(spec[api], api)}
|
||||
|
||||
const acceptedQuerystring = [
|
||||
|
||||
@ -125,6 +125,7 @@ function genFactory (folder) {
|
||||
|
||||
const { result } = opts
|
||||
opts.handleError = handleError
|
||||
opts.snakeCaseKeys = snakeCaseKeys
|
||||
|
||||
const apis = ${apisStr}
|
||||
|
||||
@ -135,6 +136,19 @@ function genFactory (folder) {
|
||||
if (callback) return callback(err, result)
|
||||
return Promise.reject(err)
|
||||
}
|
||||
|
||||
function snakeCaseKeys (acceptedQuerystring, snakeCase, querystring, warnings) {
|
||||
var target = {}
|
||||
var keys = Object.keys(querystring)
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i]
|
||||
target[snakeCase[key] || key] = querystring[key]
|
||||
if (acceptedQuerystring.indexOf(snakeCase[key] || key) === -1) {
|
||||
warnings.push('Client - Unknown parameter: "' + key + '", sending it as query parameter')
|
||||
}
|
||||
}
|
||||
return target
|
||||
}
|
||||
}
|
||||
|
||||
// It's unlikely that a user needs all of our APIs,
|
||||
|
||||
Reference in New Issue
Block a user