summaryrefslogtreecommitdiff
path: root/Hutch/Models
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 20:07:53 -0500
committerChristian Cleberg <[email protected]>2026-04-13 20:07:53 -0500
commit312e535f400f31714b3750de5222a1f6a8e5bcda (patch)
treedfa0d9dfcfd08187befa79cf5d8afc4da9fef860 /Hutch/Models
parentfe1ccc69661603d419a642a450e4ac9e1258adb0 (diff)
downloadhutch-312e535f400f31714b3750de5222a1f6a8e5bcda.tar.gz
hutch-312e535f400f31714b3750de5222a1f6a8e5bcda.tar.bz2
hutch-312e535f400f31714b3750de5222a1f6a8e5bcda.zip
fix: sonarqube code smell fixesv3.1.4
Diffstat (limited to 'Hutch/Models')
-rw-r--r--Hutch/Models/Git.swift4
-rw-r--r--Hutch/Models/Project.swift4
-rw-r--r--Hutch/Models/RepositorySummary.swift63
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
+ )
)
}