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
|
// ReviewsiTunesKit
|
||||||
//
|
//
|
||||||
// Created by Javier Cicchelli on 17/03/2024.
|
// Created by Javier Cicchelli on 17/03/2024.
|
||||||
@ -9,6 +9,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import ReviewsFeedKit
|
import ReviewsFeedKit
|
||||||
|
|
||||||
|
// MARK: - Decodable
|
||||||
extension Review: Decodable {
|
extension Review: Decodable {
|
||||||
|
|
||||||
// MARK: Enumerations
|
// 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