mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Implement leaveGroup mutation
This commit is contained in:
parent
25aa6cb732
commit
703640a50f
1 changed files with 40 additions and 41 deletions
|
|
@ -4,46 +4,45 @@ import Models
|
|||
import SwiftGraphQL
|
||||
|
||||
public extension DataService {
|
||||
func leaveGroup(groupID _: String) async throws {
|
||||
// enum MutationResult {
|
||||
// case saved(success: Bool)
|
||||
// case error(errorMessage: String)
|
||||
// }
|
||||
//
|
||||
// let selection = Selection<MutationResult, Unions.LeaveGrou> {
|
||||
// try $0.on(
|
||||
// recommendError: .init { .error(errorMessage: try $0.errorCodes().first.toString()) },
|
||||
// recommendSuccess: .init {
|
||||
// .saved(success: try $0.success())
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// let mutation = Selection.Mutation {
|
||||
// try $0.recommend(
|
||||
// input: .init(groupIds: groupIDs, note: OptionalArgument(note), pageId: pageID, recommendedWithHighlights: OptionalArgument(withHighlights)),
|
||||
// selection: selection
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// let path = appEnvironment.graphqlPath
|
||||
// let headers = networker.defaultHeaders
|
||||
//
|
||||
// return try await withCheckedThrowingContinuation { continuation in
|
||||
// send(mutation, to: path, headers: headers) { queryResult in
|
||||
// guard let payload = try? queryResult.get() else {
|
||||
// continuation.resume(throwing: BasicError.message(messageText: "network error"))
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// switch payload.data {
|
||||
// case .saved:
|
||||
// continuation.resume()
|
||||
// case let .error(errorMessage: errorMessage):
|
||||
// continuation.resume(throwing: BasicError.message(messageText: errorMessage))
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
throw BasicError.message(messageText: "Not Implemented")
|
||||
func leaveGroup(groupID: String) async throws {
|
||||
enum MutationResult {
|
||||
case saved(success: Bool)
|
||||
case error(errorMessage: String)
|
||||
}
|
||||
|
||||
let selection = Selection<MutationResult, Unions.LeaveGroupResult> {
|
||||
try $0.on(
|
||||
leaveGroupError: .init { .error(errorMessage: try $0.errorCodes().first.toString()) },
|
||||
leaveGroupSuccess: .init {
|
||||
.saved(success: try $0.success())
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
let mutation = Selection.Mutation {
|
||||
try $0.leaveGroup(
|
||||
groupId: groupID,
|
||||
selection: selection
|
||||
)
|
||||
}
|
||||
|
||||
let path = appEnvironment.graphqlPath
|
||||
let headers = networker.defaultHeaders
|
||||
|
||||
return try await withCheckedThrowingContinuation { continuation in
|
||||
send(mutation, to: path, headers: headers) { queryResult in
|
||||
guard let payload = try? queryResult.get() else {
|
||||
continuation.resume(throwing: BasicError.message(messageText: "network error"))
|
||||
return
|
||||
}
|
||||
|
||||
switch payload.data {
|
||||
case .saved:
|
||||
continuation.resume()
|
||||
case let .error(errorMessage: errorMessage):
|
||||
continuation.resume(throwing: BasicError.message(messageText: errorMessage))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue