diff --git a/Libraries/iTunes/Kit/Models/Feed.swift b/Libraries/iTunes/Kit/Models/Feed.swift new file mode 100644 index 0000000..4928aef --- /dev/null +++ b/Libraries/iTunes/Kit/Models/Feed.swift @@ -0,0 +1,38 @@ +// +// Feed.swift +// ReviewsiTunesKit +// +// Created by Javier Cicchelli on 17/03/2024. +// Copyright © 2024 Röck+Cöde VoF. All rights reserved. +// + +import ReviewsFeedKit + +struct Feed { + + // MARK: Constants + let entries: [Review] + +} + +// MARK: - Decodable +extension Feed: Decodable { + + // MARK: Enumerations + enum FeedKeys: String, CodingKey { + case feed + } + + enum EntryKeys: String, CodingKey { + case entry + } + + // MARK: Initialisers + 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) + } + +} diff --git a/Libraries/iTunes/Kit/Conformances/Review+Decodable.swift b/Libraries/iTunes/Kit/Models/Review+Decodable.swift similarity index 100% rename from Libraries/iTunes/Kit/Conformances/Review+Decodable.swift rename to Libraries/iTunes/Kit/Models/Review+Decodable.swift