add api request parameters customization
This commit is contained in:
parent
47b14126b1
commit
a9afe6b562
|
|
@ -4,13 +4,27 @@ import RxSwift
|
|||
{% set serviceName = concat(networkServiceName, "NetworkService") -%}
|
||||
class {{ serviceName }}: NetworkService {
|
||||
|
||||
static let apiBaseUrl = "{{ apiUrl }}"
|
||||
|
||||
convenience init() {
|
||||
self.init(configuration: NetworkServiceConfiguration(baseUrl: "{{ apiUrl }}"))
|
||||
self.init(configuration: NetworkServiceConfiguration(baseUrl: {{ serviceName }}.apiBaseUrl))
|
||||
}
|
||||
|
||||
func apiRequest<T: ImmutableMappable>(with parameters: ApiRequestParameters) -> Single<T> {
|
||||
return rxRequest(with: parameters).map { $0.model }.asSingle()
|
||||
}
|
||||
|
||||
func apiRequestParameters(relativeUrl: String,
|
||||
method: HTTPMethod = .get,
|
||||
parameters: Parameters? = nil,
|
||||
requestEncoding: ParameterEncoding? = nil,
|
||||
requestHeaders: HTTPHeaders? = nil) -> ApiRequestParameters {
|
||||
return configuration.apiRequestParameters(relativeUrl: relativeUrl,
|
||||
method: method,
|
||||
parameters: parameters,
|
||||
requestEncoding: requestEncoding,
|
||||
requestHeaders: requestHeaders)
|
||||
}
|
||||
|
||||
}
|
||||
{{ "\n" }}
|
||||
|
|
@ -12,19 +12,19 @@
|
|||
|
||||
/// {{ method.description }}
|
||||
{{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ "\n " }}{%- endif -%}
|
||||
encoding: ParameterEncoding? = nil,
|
||||
requestEncoding: ParameterEncoding? = nil,
|
||||
requestHeaders: HTTPHeaders? = nil) -> Single<{{ method.responseType.type.typeName }}> {
|
||||
|
||||
{% if isStatic -%}
|
||||
return shared.{{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyParamName }},{{ "\n " }}{%- endif -%}
|
||||
encoding: encoding,
|
||||
requestEncoding: requestEncoding,
|
||||
requestHeaders: requestHeaders)
|
||||
{%- else %}
|
||||
let parameters = ApiRequestParameters(url: configuration.baseUrl + "{{ method.url }}",
|
||||
method: .{{ methodType }},
|
||||
parameters: {% if hasBody -%}{{ bodyParamName }}.toJSON(){%- else -%}nil{%- endif -%},
|
||||
encoding: encoding ?? configuration.encoding,
|
||||
headers: requestHeaders)
|
||||
{%- else -%}
|
||||
let parameters = apiRequestParameters(relativeUrl: "{{ method.url }}",
|
||||
method: .{{ methodType }},
|
||||
parameters: {% if hasBody -%}{{ bodyParamName }}.toJSON(){%- else -%}nil{%- endif -%},
|
||||
requestEncoding: requestEncoding,
|
||||
requestHeaders: requestHeaders)
|
||||
|
||||
return apiRequest(with: parameters)
|
||||
{%- endif %}
|
||||
|
|
|
|||
Loading…
Reference in New Issue