Implemented the "init(from: )" initialiser and the "encode(to: )" function of the Codable protocol for the Review+Codable extension in the iTunes library.
This commit is contained in:
parent
bd72c4fb7c
commit
fc58ccf091
@ -1,5 +1,5 @@
|
||||
//
|
||||
// Review.swift
|
||||
// Review+Codable.swift
|
||||
// ReviewsiTunesKit
|
||||
//
|
||||
// Created by Javier Cicchelli on 17/03/2024.
|
||||
@ -9,6 +9,7 @@
|
||||
import Foundation
|
||||
import ReviewsFeedKit
|
||||
|
||||
// MARK: - Decodable
|
||||
extension Review: Decodable {
|
||||
|
||||
// MARK: Enumerations
|
||||
@ -54,3 +55,30 @@ extension Review: Decodable {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Encodable
|
||||
extension Review: Encodable {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
public func encode(to encoder: any Encoder) throws {
|
||||
var review = encoder.container(keyedBy: ReviewKeys.self)
|
||||
var authorName = review.nestedContainer(keyedBy: NameKeys.self, forKey: .author)
|
||||
var authorLabel = authorName.nestedContainer(keyedBy: LabelKeys.self, forKey: .name)
|
||||
var contentLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .content)
|
||||
var idLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .id)
|
||||
var ratingLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .rating)
|
||||
var titleLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .title)
|
||||
var versionLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .version)
|
||||
var updatedLabel = review.nestedContainer(keyedBy: LabelKeys.self, forKey: .updated)
|
||||
|
||||
try authorLabel.encode(author, forKey: .label)
|
||||
try contentLabel.encode(content, forKey: .label)
|
||||
try idLabel.encode(String(id), forKey: .label)
|
||||
try ratingLabel.encode(String(rating), forKey: .label)
|
||||
try titleLabel.encode(title, forKey: .label)
|
||||
try versionLabel.encode(version, forKey: .label)
|
||||
try updatedLabel.encode(updated, forKey: .label)
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user