diff options
Diffstat (limited to 'Hutch/Models')
| -rw-r--r-- | Hutch/Models/Git.swift | 4 | ||||
| -rw-r--r-- | Hutch/Models/Project.swift | 4 | ||||
| -rw-r--r-- | Hutch/Models/RepositorySummary.swift | 63 |
3 files changed, 38 insertions, 33 deletions
diff --git a/Hutch/Models/Git.swift b/Hutch/Models/Git.swift index 3629ce4..26a5e2d 100644 --- a/Hutch/Models/Git.swift +++ b/Hutch/Models/Git.swift @@ -4,9 +4,9 @@ import Foundation /// Repository visibility level. enum Visibility: String, Codable, Sendable { - case `public` = "PUBLIC" + case publicVisibility = "PUBLIC" case unlisted = "UNLISTED" - case `private` = "PRIVATE" + case privateVisibility = "PRIVATE" } /// Repository access mode. diff --git a/Hutch/Models/Project.swift b/Hutch/Models/Project.swift index bbca7d6..8f5aa68 100644 --- a/Hutch/Models/Project.swift +++ b/Hutch/Models/Project.swift @@ -230,11 +230,11 @@ extension String { extension Visibility { var displayName: String { switch self { - case .public: + case .publicVisibility: "Public" case .unlisted: "Unlisted" - case .private: + case .privateVisibility: "Private" } } diff --git a/Hutch/Models/RepositorySummary.swift b/Hutch/Models/RepositorySummary.swift index 3821aa2..b41589b 100644 --- a/Hutch/Models/RepositorySummary.swift +++ b/Hutch/Models/RepositorySummary.swift @@ -20,26 +20,29 @@ struct RepositorySummary: Codable, Sendable, Identifiable, Hashable { case head = "HEAD" } - init( - id: Int, - rid: String, - service: SRHTService, - name: String, - description: String?, - visibility: Visibility, - updated: Date, - owner: Entity, - head: Reference? - ) { - self.id = id - self.rid = rid - self.service = service - self.name = name - self.description = description - self.visibility = visibility - self.updated = updated - self.owner = owner - self.head = head + /// Grouped initializer fields (single parameter keeps APIs explicit without exceeding parameter-count limits). + struct Fields: Sendable, Hashable { + let id: Int + let rid: String + let service: SRHTService + let name: String + let description: String? + let visibility: Visibility + let updated: Date + let owner: Entity + let head: Reference? + } + + init(fields: Fields) { + id = fields.id + rid = fields.rid + service = fields.service + name = fields.name + description = fields.description + visibility = fields.visibility + updated = fields.updated + owner = fields.owner + head = fields.head } init(from decoder: any Decoder) throws { @@ -69,15 +72,17 @@ extension RepositorySummary { head: Reference? = nil ) -> RepositorySummary { RepositorySummary( - id: id, - rid: rid, - service: service, - name: name ?? self.name, - description: description ?? self.description, - visibility: visibility ?? self.visibility, - updated: updated ?? self.updated, - owner: owner, - head: head ?? self.head + fields: .init( + id: id, + rid: rid, + service: service, + name: name ?? self.name, + description: description ?? self.description, + visibility: visibility ?? self.visibility, + updated: updated ?? self.updated, + owner: owner, + head: head ?? self.head + ) ) } |
