summaryrefslogtreecommitdiff
path: root/Hutch/Views/Repositories/RepositorySettingsViewModel.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-03-17 23:19:43 -0500
committerChristian Cleberg <[email protected]>2026-03-17 23:19:43 -0500
commit32ad6cab8d58d99ebd8a28e8fa6e6f4e587cb1e5 (patch)
treeee36d421d704e508d5617d803b4c8cbdb4804fe1 /Hutch/Views/Repositories/RepositorySettingsViewModel.swift
parent8f2057c53e9009c2529c9c4849c914666c0e4b40 (diff)
downloadhutch-32ad6cab8d58d99ebd8a28e8fa6e6f4e587cb1e5.tar.gz
hutch-32ad6cab8d58d99ebd8a28e8fa6e6f4e587cb1e5.tar.bz2
hutch-32ad6cab8d58d99ebd8a28e8fa6e6f4e587cb1e5.zip
v1.0
Diffstat (limited to 'Hutch/Views/Repositories/RepositorySettingsViewModel.swift')
-rw-r--r--Hutch/Views/Repositories/RepositorySettingsViewModel.swift24
1 files changed, 18 insertions, 6 deletions
diff --git a/Hutch/Views/Repositories/RepositorySettingsViewModel.swift b/Hutch/Views/Repositories/RepositorySettingsViewModel.swift
index bdae87f..d6f3300 100644
--- a/Hutch/Views/Repositories/RepositorySettingsViewModel.swift
+++ b/Hutch/Views/Repositories/RepositorySettingsViewModel.swift
@@ -63,6 +63,7 @@ final class RepositorySettingsViewModel {
let repositoryId: Int
let repositoryRid: String
+ let service: SRHTService
private let client: SRHTClient
// MARK: - Info fields
@@ -107,6 +108,7 @@ final class RepositorySettingsViewModel {
) {
self.repositoryId = repository.id
self.repositoryRid = repository.rid
+ self.service = repository.service
self.client = client
self.editedDescription = repository.description ?? ""
self.editedVisibility = repository.visibility
@@ -143,7 +145,7 @@ final class RepositorySettingsViewModel {
"HEAD": editedHead
]
_ = try await client.execute(
- service: .git,
+ service: service,
query: Self.updateRepoMutation,
variables: ["id": repositoryId, "input": input],
responseType: UpdateRepoResponse.self
@@ -165,7 +167,7 @@ final class RepositorySettingsViewModel {
"name": editedName
]
let result = try await client.execute(
- service: .git,
+ service: service,
query: Self.updateRepoMutation,
variables: ["id": repositoryId, "input": input],
responseType: UpdateRepoResponse.self
@@ -207,6 +209,16 @@ final class RepositorySettingsViewModel {
}
"""
+ private static let userLookupQuery = """
+ query userLookup($username: String!) {
+ user(username: $username) {
+ id
+ username
+ canonicalName
+ }
+ }
+ """
+
func loadACLs() async {
guard !isLoadingACLs else { return }
isLoadingACLs = true
@@ -214,7 +226,7 @@ final class RepositorySettingsViewModel {
do {
let result = try await client.execute(
- service: .git,
+ service: service,
query: Self.aclsQuery,
variables: ["rid": repositoryRid],
responseType: ACLResponse.self
@@ -234,7 +246,7 @@ final class RepositorySettingsViewModel {
do {
let result = try await client.execute(
- service: .git,
+ service: service,
query: Self.updateACLMutation,
variables: [
"repoId": repositoryId,
@@ -262,7 +274,7 @@ final class RepositorySettingsViewModel {
do {
_ = try await client.execute(
- service: .git,
+ service: service,
query: Self.deleteACLMutation,
variables: ["id": entry.id],
responseType: DeleteACLResponse.self
@@ -288,7 +300,7 @@ final class RepositorySettingsViewModel {
do {
_ = try await client.execute(
- service: .git,
+ service: service,
query: Self.deleteRepoMutation,
variables: ["id": repositoryId],
responseType: DeleteRepoResponse.self