[Library] iTunes library #5

Merged
javier merged 25 commits from library/itunes into main 2024-03-17 22:48:28 +00:00
Showing only changes of commit fc58ccf091 - Show all commits

View File

@ -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)
}
}