57 lines
1.2 KiB
Swift
Raw Normal View History

//
// Feed.swift
// ReviewsiTunesKit
//
// Created by Javier Cicchelli on 17/03/2024.
// Copyright © 2024 Röck+Cöde VoF. All rights reserved.
//
import ReviewsFeedKit
public struct Feed {
// MARK: Constants
let entries: [Review]
// MARK: Initialisers
public init(entries: [Review]) {
self.entries = entries
}
}
// MARK: - Decodable
extension Feed: Decodable {
// MARK: Enumerations
enum FeedKeys: String, CodingKey {
case feed
}
enum EntryKeys: String, CodingKey {
case entry
}
// MARK: Initialisers
public init(from decoder: any Decoder) throws {
let feed = try decoder.container(keyedBy: FeedKeys.self)
let feedEntry = try feed.nestedContainer(keyedBy: EntryKeys.self, forKey: .feed)
self.entries = try feedEntry.decode([Review].self, forKey: .entry)
}
}
// MARK: - Encodable
extension Feed: Encodable {
// MARK: Functions
public func encode(to encoder: any Encoder) throws {
var feed = encoder.container(keyedBy: FeedKeys.self)
var feedEntry = feed.nestedContainer(keyedBy: EntryKeys.self, forKey: .feed)
try feedEntry.encode(entries, forKey: .entry)
}
}