Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import Amplify
import Foundation

extension AWSAPIPlugin {
public func apiAuthProviderFactory() -> APIAuthProviderFactory {
public extension AWSAPIPlugin {
func apiAuthProviderFactory() -> APIAuthProviderFactory {
return authProviderFactory
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import Amplify
import AWSPluginsCore
import Foundation

extension AWSAPIPlugin {
public func defaultAuthType() throws -> AWSAuthorizationType {
public extension AWSAPIPlugin {
func defaultAuthType() throws -> AWSAuthorizationType {
try defaultAuthType(for: nil)
}

public func defaultAuthType(for apiName: String?) throws -> AWSAuthorizationType {
func defaultAuthType(for apiName: String?) throws -> AWSAuthorizationType {
try pluginConfig.endpoints.getConfig(for: apiName).authorizationType
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
//

@_spi(InternalAmplifyConfiguration) import Amplify
import AwsCommonRuntimeKit
import AWSPluginsCore
import InternalAmplifyCredentials
import AwsCommonRuntimeKit

public extension AWSAPIPlugin {

Expand All @@ -22,11 +22,15 @@ public extension AWSAPIPlugin {
func configure(using configuration: Any?) throws {
let dependencies: ConfigurationDependencies
if let configuration = configuration as? AmplifyOutputsData {
dependencies = try ConfigurationDependencies(configuration: configuration,
apiAuthProviderFactory: authProviderFactory)
dependencies = try ConfigurationDependencies(
configuration: configuration,
apiAuthProviderFactory: authProviderFactory
)
} else if let jsonValue = configuration as? JSONValue {
dependencies = try ConfigurationDependencies(configurationValues: jsonValue,
apiAuthProviderFactory: authProviderFactory)
dependencies = try ConfigurationDependencies(
configurationValues: jsonValue,
apiAuthProviderFactory: authProviderFactory
)

} else {
throw PluginError.pluginConfigurationError(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,45 +9,57 @@ import Amplify

public extension AWSAPIPlugin {

func query<R: Decodable>(request: GraphQLRequest<R>,
listener: GraphQLOperation<R>.ResultListener?) -> GraphQLOperation<R> {
let operation = AWSGraphQLOperation(request: request.toOperationRequest(operationType: .query),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: listener)
func query<R: Decodable>(
request: GraphQLRequest<R>,
listener: GraphQLOperation<R>.ResultListener?
) -> GraphQLOperation<R> {
let operation = AWSGraphQLOperation(
request: request.toOperationRequest(operationType: .query),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: listener
)
queue.addOperation(operation)
return operation
}

func query<R: Decodable>(request: GraphQLRequest<R>) async throws -> GraphQLTask<R>.Success {
let operation = AWSGraphQLOperation(request: request.toOperationRequest(operationType: .query),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: nil)
let operation = AWSGraphQLOperation(
request: request.toOperationRequest(operationType: .query),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: nil
)
let task = AmplifyOperationTaskAdapter(operation: operation)
queue.addOperation(operation)
return try await task.value
}

func mutate<R: Decodable>(request: GraphQLRequest<R>,
listener: GraphQLOperation<R>.ResultListener?) -> GraphQLOperation<R> {
let operation = AWSGraphQLOperation(request: request.toOperationRequest(operationType: .mutation),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: listener)
func mutate<R: Decodable>(
request: GraphQLRequest<R>,
listener: GraphQLOperation<R>.ResultListener?
) -> GraphQLOperation<R> {
let operation = AWSGraphQLOperation(
request: request.toOperationRequest(operationType: .mutation),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: listener
)
queue.addOperation(operation)
return operation
}

func mutate<R: Decodable>(request: GraphQLRequest<R>) async throws -> GraphQLTask<R>.Success {
let operation = AWSGraphQLOperation(request: request.toOperationRequest(operationType: .mutation),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: nil)
let operation = AWSGraphQLOperation(
request: request.toOperationRequest(operationType: .mutation),
session: session,
mapper: mapper,
pluginConfig: pluginConfig,
resultListener: nil
)
let task = AmplifyOperationTaskAdapter(operation: operation)
queue.addOperation(operation)
return try await task.value
Expand All @@ -65,18 +77,21 @@ public extension AWSAPIPlugin {
authService: authService,
apiAuthProviderFactory: authProviderFactory,
inProcessListener: valueListener,
resultListener: completionListener)
resultListener: completionListener
)
queue.addOperation(operation)
return operation
}

func subscribe<R>(request: GraphQLRequest<R>) -> AmplifyAsyncThrowingSequence<GraphQLSubscriptionEvent<R>> {
let request = request.toOperationRequest(operationType: .subscription)
let runner = AWSGraphQLSubscriptionTaskRunner(request: request,
pluginConfig: pluginConfig,
appSyncClientFactory: appSyncRealTimeClientFactory,
authService: authService,
apiAuthProviderFactory: authProviderFactory)
let runner = AWSGraphQLSubscriptionTaskRunner(
request: request,
pluginConfig: pluginConfig,
appSyncClientFactory: appSyncRealTimeClientFactory,
authService: authService,
apiAuthProviderFactory: authProviderFactory
)
return runner.sequence
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import Amplify
public extension AWSAPIPlugin {
func add(interceptor: URLRequestInterceptor, for apiName: String) throws {
guard pluginConfig.endpoints[apiName] != nil else {
throw PluginError.pluginConfigurationError("Failed to get endpoint configuration for apiName: \(apiName)",
"")
throw PluginError.pluginConfigurationError(
"Failed to get endpoint configuration for apiName: \(apiName)",
""
)
}

pluginConfig.addInterceptor(interceptor, toEndpoint: apiName)
Expand Down
Loading
Loading