From a9c033605e775fffc3ecbf4ed1ee00c30d358cde Mon Sep 17 00:00:00 2001 From: Alexey Gerasimov Date: Tue, 16 Oct 2018 14:44:49 +0300 Subject: [PATCH] Optional or nullable encoding fixed --- Swift/macroses/common.utils.twig | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Swift/macroses/common.utils.twig b/Swift/macroses/common.utils.twig index 6f3684d..eb6c1b7 100644 --- a/Swift/macroses/common.utils.twig +++ b/Swift/macroses/common.utils.twig @@ -28,13 +28,17 @@ {%- endif -%} {% endmacro %} -{% macro formatEncodingValue(field) %} +{% macro formatEncodingValue(field, strong) %} {%- import _self as self -%} {%- if field.type.type.baseTypeName == "DateTime" -%} {{- self.formatEncodingDate(field) -}} {%- elseif field.type.type.baseTypeName == "Decimal" -%} - {{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}} + {%- if strong -%} + {{ field.name }} + {%- else -%} + {{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}} + {%- endif -%} .decimalValue {%- else -%} {{ field.name }} @@ -61,7 +65,7 @@ try container.encode({{- self.formatEncodingDate(field) -}}, forKey: .{{- field.name -}}) } {%- else -%} - try container.encodeIfPresent({{- self.formatEncodingValue(field) -}}, forKey: .{{- field.name -}}) + try container.encodeIfPresent({{- self.formatEncodingValue(field, false) -}}, forKey: .{{- field.name -}}) {%- endif -%} {% endmacro %} @@ -72,12 +76,12 @@ {{ self.encodeIfPresent(field) -}} {%- elseif field.nullable -%} if let {{ field.name }} = {{ field.name }} { - try container.encode({{- self.formatEncodingValue(field) -}}, forKey: .{{- field.name -}}) + try container.encode({{- self.formatEncodingValue(field, true) -}}, forKey: .{{- field.name -}}) } else { try container.encodeNil(forKey: .{{- field.name -}}) } {%- else -%} - try container.encode({{- self.formatEncodingValue(field) -}}, forKey: .{{- field.name -}}) + try container.encode({{- self.formatEncodingValue(field, false) -}}, forKey: .{{- field.name -}}) {%- endif -%} {% endmacro %}