Hutch/Networking/SRHTService.swift
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}