summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruProviderFlavor.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Booru/BooruProviderFlavor.swift')
-rw-r--r--Sora/Data/Booru/BooruProviderFlavor.swift24
1 files changed, 13 insertions, 11 deletions
diff --git a/Sora/Data/Booru/BooruProviderFlavor.swift b/Sora/Data/Booru/BooruProviderFlavor.swift
index 8917ab1..c94a40d 100644
--- a/Sora/Data/Booru/BooruProviderFlavor.swift
+++ b/Sora/Data/Booru/BooruProviderFlavor.swift
@@ -1,18 +1,20 @@
-enum BooruProviderFlavor: String, CaseIterable, Decodable, Encodable {
+enum BooruProviderFlavor: String, CaseIterable, Codable {
case danbooru = "Danbooru"
case gelbooru = "Gelbooru"
case moebooru = "Moebooru"
+ // MARK: - Initialization
init(provider: BooruProvider) {
- switch provider {
- case .danbooru:
- self = .danbooru
-
- case .yandere, .konachan, .sakugabooru:
- self = .moebooru
-
- case .safebooru, .gelbooru:
- self = .gelbooru
- }
+ self = Self.providerMap[provider] ?? .gelbooru
}
+
+ // MARK: - Private
+ private static let providerMap: [BooruProvider: Self] = [
+ .danbooru: .danbooru,
+ .yandere: .moebooru,
+ .konachan: .moebooru,
+ .sakugabooru: .moebooru,
+ .safebooru: .gelbooru,
+ .gelbooru: .gelbooru,
+ ]
}