diff --git a/Swift/NetworkService.swift.twig b/Swift/NetworkService.swift.twig index 867f019..909dfef 100644 --- a/Swift/NetworkService.swift.twig +++ b/Swift/NetworkService.swift.twig @@ -7,7 +7,7 @@ import Alamofire protocol {{ protocolName }} { - func apiRequest(with parametersSingle: Single, decoder: JSONDecoder) -> Single + func apiRequest(with parametersSingle: Single, additionalValidStatusCodes: Set, decoder: JSONDecoder) -> Single func deferredApiRequestParameters(relativeUrl: String, method: HTTPMethod, parameters: Parameters?, @@ -27,9 +27,9 @@ class {{ serviceName }}: NetworkService, {{ protocolName }} { self.init(configuration: NetworkServiceConfiguration(baseUrl: {{ serviceName }}.apiBaseUrl)) } - func apiRequest(with parametersSingle: Single, decoder: JSONDecoder = JSONDecoder()) -> Single { + func apiRequest(with parametersSingle: Single, additionalValidStatusCodes: Set = [], decoder: JSONDecoder = JSONDecoder()) -> Single { return parametersSingle.flatMap { - self.rxRequest(with: $0, decoder: decoder).map { $0.model }.asSingle() + self.rxRequest(with: $0, additionalValidStatusCodes: additionalValidStatusCodes, decoder: decoder).map { $0.model }.asSingle() } } diff --git a/Swift/blocks/method/method-declaration.twig b/Swift/blocks/method/method-declaration.twig index d963da6..2bb2448 100644 --- a/Swift/blocks/method/method-declaration.twig +++ b/Swift/blocks/method/method-declaration.twig @@ -9,4 +9,4 @@ {%- set funcName = utils.decapitalize(method.name) -%} -{{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ " " }}{%- endif -%}requestEncoding: ParameterEncoding?, requestHeaders: HTTPHeaders?) -> Single<{{ method.responseType.type.typeName }}> +{{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ " " }}{%- endif -%}requestEncoding: ParameterEncoding?, requestHeaders: HTTPHeaders?, additionalValidStatusCodes: Set) -> Single<{{ method.responseType.type.typeName }}> diff --git a/Swift/blocks/method/method-func.twig b/Swift/blocks/method/method-func.twig index b167745..bd28b53 100644 --- a/Swift/blocks/method/method-func.twig +++ b/Swift/blocks/method/method-func.twig @@ -13,7 +13,8 @@ /// {{ method.description }} {{ isStatic ? "static " : "" }}func {{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyTypeName }},{{ "\n " }}{%- endif -%} requestEncoding: ParameterEncoding? = nil, - requestHeaders: HTTPHeaders? = nil) -> Single<{{ method.responseType.type.typeName }}> { + requestHeaders: HTTPHeaders? = nil, + additionalValidStatusCodes: Set = []) -> Single<{{ method.responseType.type.typeName }}> { {% if isStatic -%} return shared.{{ funcName }}({%- if hasBody -%}{{ bodyParamName }}: {{ bodyParamName }},{{ "\n " }}{%- endif -%} @@ -26,7 +27,7 @@ requestEncoding: requestEncoding, requestHeaders: requestHeaders) - return apiRequest(with: parameters, decoder: JSONDecoder()) + return apiRequest(with: parameters, additionalValidStatusCodes: additionalValidStatusCodes, decoder: JSONDecoder()) {%- endif %} }