35 lines
1.8 KiB
Twig
35 lines
1.8 KiB
Twig
{%- import '../../macroses/common.utils.twig' as utils -%}
|
|
|
|
{%- if (method.bodyType is not null) -%}
|
|
{%- set bodyParamName = utils.decapitalize(method.bodyType.type.typeName) -%}
|
|
{%- set bodyTypeName = method.bodyType.type.typeName -%}
|
|
|
|
{%- set hasBody = true -%}
|
|
{%- endif -%}
|
|
|
|
{%- set methodType = default(method.type, "POST") | lower -%}
|
|
{%- set funcName = utils.decapitalize(method.name) -%}
|
|
|
|
/// {{ method.description }}
|
|
{{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ "\n " }}{%- endif -%}
|
|
requestEncoding: ParameterEncoding? = nil,
|
|
requestHeaders: HTTPHeaders? = nil,
|
|
additionalValidStatusCodes: Set<Int> = []) -> Single<{{ method.responseType.type.typeName }}> {
|
|
|
|
{% if isStatic -%}
|
|
return shared.{{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyParamName }},{{ "\n " }}{%- endif -%}
|
|
requestEncoding: requestEncoding,
|
|
requestHeaders: requestHeaders,
|
|
additionalValidStatusCodes: additionalValidStatusCodes)
|
|
{%- else -%}
|
|
let parameters = deferredApiRequestParameters(relativeUrl: "{{ method.url }}",
|
|
method: .{{ methodType }},
|
|
parameters: {% if hasBody -%}{{ bodyParamName }}.toJSON(){%- else -%}nil{%- endif -%},
|
|
requestEncoding: requestEncoding,
|
|
requestHeaders: requestHeaders)
|
|
|
|
return apiRequest(with: parameters, additionalValidStatusCodes: additionalValidStatusCodes, decoder: JSONDecoder())
|
|
|
|
{%- endif %}
|
|
}
|