Hutch/Networking/SRHTService.swift

b5af561d68e7535726b79d4ceec0d0a45abf0042
hutch/Hutch/Networking/SRHTService.swift history · blame · raw

34 lines · 822 bytes

 1import Foundation
 2
 3/// Each Sourcehut service exposes its own GraphQL endpoint.
 4enum SRHTService: String, Codable, Sendable, CaseIterable {
 5    case meta
 6    case git
 7    case hg
 8    case builds
 9    case lists
10    case todo
11    case paste
12    case pages
13    case man
14
15    /// The GraphQL endpoint URL for this service.
16    var url: URL {
17        // Force-unwrap is safe here — these are compile-time constant strings.
18        URL(string: "https://\(rawValue).sr.ht/query")!
19    }
20
21    var displayName: String {
22        switch self {
23        case .meta:   "Meta"
24        case .git:    "Git"
25        case .hg:     "Mercurial"
26        case .builds: "Builds"
27        case .lists:  "Lists"
28        case .todo:   "Todo"
29        case .paste:  "Paste"
30        case .pages:  "Pages"
31        case .man:    "Man"
32        }
33    }
34}