krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

v2.11.0: Hutch/Networking/SRHTService.swift · raw

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