From 14325a9933c17d2eeab8e10ffb16177f634aaf21 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:31:06 +0200 Subject: [PATCH 1/6] Implemented LastUpdated model. --- Sources/Models/LastUpdated.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Sources/Models/LastUpdated.swift diff --git a/Sources/Models/LastUpdated.swift b/Sources/Models/LastUpdated.swift new file mode 100644 index 0000000..0fefe45 --- /dev/null +++ b/Sources/Models/LastUpdated.swift @@ -0,0 +1,13 @@ +import Foundation + +public struct LastUpdated { + public let timestamp: Date +} + +// MARK: - Decodable + +extension LastUpdated: Decodable { + enum CodingKeys: String, CodingKey { + case timestamp = "lastUpdated" + } +} -- 2.47.1 From d2f9b6976175dd0a8a68c9446c8115a6d19555c7 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:31:21 +0200 Subject: [PATCH 2/6] Implemented the KeyName model. --- Sources/Models/KeyName.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Sources/Models/KeyName.swift diff --git a/Sources/Models/KeyName.swift b/Sources/Models/KeyName.swift new file mode 100644 index 0000000..f606206 --- /dev/null +++ b/Sources/Models/KeyName.swift @@ -0,0 +1,15 @@ +public struct KeyName { + public let key: String + public let name: String? +} + +// MARK: - Decodable + +extension KeyName: Decodable {} + +// MARK: - Type aliases + +public typealias AmiiboType = KeyName +public typealias AmiiboSeries = KeyName +public typealias GameSeries = KeyName +public typealias Character = KeyName -- 2.47.1 From a1fcfdefaebaa23e92b0a83e4c19e5e53b5fae7d Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:31:41 +0200 Subject: [PATCH 3/6] Implemented the AmiiboUsage model. --- Sources/Models/AmiiboUsage.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Sources/Models/AmiiboUsage.swift diff --git a/Sources/Models/AmiiboUsage.swift b/Sources/Models/AmiiboUsage.swift new file mode 100644 index 0000000..ee07b16 --- /dev/null +++ b/Sources/Models/AmiiboUsage.swift @@ -0,0 +1,15 @@ +extension Amiibo { + public struct Usage { + public let explanation: String + public let isWritable: Bool + } +} + +// MARK: - Decodable + +extension Amiibo.Usage: Decodable { + enum CodingKeys: String, CodingKey { + case explanation = "Usage" + case isWritable = "write" + } +} -- 2.47.1 From 1b83f4586739bc541af9ff4c73956a73e3cacc46 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:31:57 +0200 Subject: [PATCH 4/6] Implemented the AmiiboRelease model. --- Sources/Models/AmiiboRelease.swift | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Sources/Models/AmiiboRelease.swift diff --git a/Sources/Models/AmiiboRelease.swift b/Sources/Models/AmiiboRelease.swift new file mode 100644 index 0000000..a53c7a1 --- /dev/null +++ b/Sources/Models/AmiiboRelease.swift @@ -0,0 +1,21 @@ +import Foundation + +extension Amiibo { + public struct Release { + public let australia: Date? + public let europe: Date? + public let japan: Date? + public let america: Date? + } +} + +// MARK: - Decodable + +extension Amiibo.Release: Decodable { + enum CodingKeys: String, CodingKey { + case australia = "au" + case europe = "eu" + case japan = "jp" + case america = "na" + } +} -- 2.47.1 From f31487a7374a93a769d11d33127fe28f7bad757f Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:32:11 +0200 Subject: [PATCH 5/6] Implemented the AmiiboGame model. --- Sources/Models/AmiiboGame.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Sources/Models/AmiiboGame.swift diff --git a/Sources/Models/AmiiboGame.swift b/Sources/Models/AmiiboGame.swift new file mode 100644 index 0000000..9abefcc --- /dev/null +++ b/Sources/Models/AmiiboGame.swift @@ -0,0 +1,17 @@ +extension Amiibo { + public struct Game { + public let identifiers: [String] + public let name: String + public let usage: [Usage] + } +} + +// MARK: - Decodable + +extension Amiibo.Game: Decodable { + enum CodingKeys: String, CodingKey { + case identifiers = "gameID" + case name = "gameName" + case usage = "amiiboUsage" + } +} -- 2.47.1 From 9f7a04b044d6046011aae035250c6e53fa197a8f Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 18 Apr 2023 20:32:24 +0200 Subject: [PATCH 6/6] Implemented the Amiibo model. --- Sources/Models/Amiibo.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Sources/Models/Amiibo.swift diff --git a/Sources/Models/Amiibo.swift b/Sources/Models/Amiibo.swift new file mode 100644 index 0000000..7199c01 --- /dev/null +++ b/Sources/Models/Amiibo.swift @@ -0,0 +1,18 @@ +public struct Amiibo { + public let type: String + public let head: String + public let tail: String + public let name: String + public let character: String + public let amiiboSeries: String + public let gameSeries: String + public let image: String + public let release: Release + public let games3DS: [Game]? + public let gamesWiiU: [Game]? + public let gamesSwitch: [Game]? +} + +// MARK: - Decodable + +extension Amiibo: Decodable {} -- 2.47.1