From 48a3f0160603d0dc89d2b0bf0f3f6d25389d653a Mon Sep 17 00:00:00 2001 From: Ivan Smolin Date: Tue, 31 Jul 2018 13:26:44 +0300 Subject: [PATCH] SwiftDate 5.0 migration part 2 --- Swift/ApiDateFormattingService.swift.twig | 8 ++++++-- Swift/macroses/common.utils.twig | 5 ++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Swift/ApiDateFormattingService.swift.twig b/Swift/ApiDateFormattingService.swift.twig index 1e77084..772efe0 100644 --- a/Swift/ApiDateFormattingService.swift.twig +++ b/Swift/ApiDateFormattingService.swift.twig @@ -6,12 +6,16 @@ import LeadKit import SwiftDate -enum ApiDateFormat: String, LeadKit.DateFormat { +enum ApiDateFormat: String, DateFormat { {% for format in dateFormats -%} case {{ format.name }} = "{{ format.format }}" {% endfor %} - var swiftDateFormat: DateToStringStyles { + var dateToStringFormat: DateToStringStyles { + return .custom(rawValue) + } + + var stringToDateFormat: StringToDateStyles { return .custom(rawValue) } diff --git a/Swift/macroses/common.utils.twig b/Swift/macroses/common.utils.twig index ee630a8..28ee1b9 100644 --- a/Swift/macroses/common.utils.twig +++ b/Swift/macroses/common.utils.twig @@ -32,8 +32,7 @@ {%- import _self as self -%} {%- if field.type.type.baseTypeName == "DateTime" -%} - {{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}} - .toString(ApiDateFormat.{{ dateFormatToName(field.type.dateFormat) }}.swiftDateFormat) + ApiDateFormattingService.string(from: {{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}}, format: .{{ dateFormatToName(field.type.dateFormat) }}) {%- elseif field.type.type.baseTypeName == "Decimal" -%} {{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}} .decimalValue @@ -103,7 +102,7 @@ {% macro initExpr(field) %} {%- if field.type.type.baseTypeName == "DateTime" -%} - if let date = ApiDateFormattingService.date(from: {{ field.name }}, format: "{{ field.type.dateFormat }}") { + if let date = ApiDateFormattingService.date(from: {{ field.name }}, format: .{{ dateFormatToName(field.type.dateFormat) }}, parsedIn: nil) { self.{{ field.name }} = date } else { throw LeadKitError.failedToDecode(reason: "init?(string:format:fromRegion:) returned nil")