Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use delegation pattern in DgsDataFetchingEnvironment #978

Merged
merged 1 commit into from Apr 12, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -20,30 +20,14 @@ import com.netflix.graphql.dgs.context.DgsContext
import com.netflix.graphql.dgs.exceptions.MultipleDataLoadersDefinedException
import com.netflix.graphql.dgs.exceptions.NoDataLoaderFoundException
import com.netflix.graphql.dgs.internal.utils.DataLoaderNameUtil
import graphql.GraphQLContext
import graphql.cachecontrol.CacheControl
import graphql.execution.ExecutionId
import graphql.execution.ExecutionStepInfo
import graphql.execution.MergedField
import graphql.execution.directives.QueryDirectives
import graphql.language.Document
import graphql.language.Field
import graphql.language.FragmentDefinition
import graphql.language.OperationDefinition
import graphql.schema.DataFetchingEnvironment
import graphql.schema.DataFetchingFieldSelectionSet
import graphql.schema.GraphQLFieldDefinition
import graphql.schema.GraphQLOutputType
import graphql.schema.GraphQLSchema
import graphql.schema.GraphQLType
import org.dataloader.DataLoader
import org.dataloader.DataLoaderRegistry
import java.util.*

class DgsDataFetchingEnvironment(private val dfe: DataFetchingEnvironment) : DataFetchingEnvironment {
class DgsDataFetchingEnvironment(private val dfe: DataFetchingEnvironment) : DataFetchingEnvironment by dfe {

fun getDgsContext(): DgsContext {
val context = dfe.getContext<Any>()
@Suppress("deprecation")
val context = dfe.getContext<Any?>()
if (context is DgsContext) {
return context
} else {
Expand All @@ -65,119 +49,4 @@ class DgsDataFetchingEnvironment(private val dfe: DataFetchingEnvironment) : Dat
dfe.getDataLoader(loaderName)
}
}

override fun <T : Any?> getSource(): T {
return dfe.getSource()
}

override fun getArguments(): MutableMap<String, Any> {
return dfe.arguments
}

override fun containsArgument(name: String?): Boolean {
return dfe.containsArgument(name)
}

override fun <T : Any?> getArgument(name: String?): T {
return dfe.getArgument(name)
}

override fun <T : Any?> getArgumentOrDefault(name: String?, defaultValue: T): T {
return dfe.getArgumentOrDefault(name, defaultValue)
}

@Deprecated(message = "Use getGraphQLContext() instead.", replaceWith = ReplaceWith(expression = "getGraphQLContext().get()"))
override fun <T : Any?> getContext(): T {
return dfe.getContext()
}

override fun getGraphQlContext(): GraphQLContext {
return dfe.graphQlContext
}

override fun <T : Any?> getLocalContext(): T {
return dfe.getLocalContext()
}

override fun <T : Any?> getRoot(): T {
return dfe.getRoot()
}

override fun getFieldDefinition(): GraphQLFieldDefinition {
return dfe.fieldDefinition
}

@Deprecated("Use getMergedField()")
override fun getFields(): MutableList<Field> {
@Suppress("DEPRECATION")
return dfe.fields
}

override fun getMergedField(): MergedField {
return dfe.mergedField
}

override fun getField(): Field {
return dfe.field
}

override fun getFieldType(): GraphQLOutputType {
return dfe.fieldType
}

override fun getExecutionStepInfo(): ExecutionStepInfo {
return dfe.executionStepInfo
}

override fun getParentType(): GraphQLType {
return dfe.parentType
}

override fun getGraphQLSchema(): GraphQLSchema {
return dfe.graphQLSchema
}

override fun getFragmentsByName(): MutableMap<String, FragmentDefinition> {
return dfe.fragmentsByName
}

override fun getExecutionId(): ExecutionId {
return dfe.executionId
}

override fun getSelectionSet(): DataFetchingFieldSelectionSet {
return dfe.selectionSet
}

override fun getQueryDirectives(): QueryDirectives {
return dfe.queryDirectives
}

override fun <K : Any?, V : Any?> getDataLoader(dataLoaderName: String?): DataLoader<K, V> {
return dfe.getDataLoader(dataLoaderName)
}

override fun getDataLoaderRegistry(): DataLoaderRegistry {
return dfe.dataLoaderRegistry
}

override fun getCacheControl(): CacheControl {
return dfe.cacheControl
}

override fun getLocale(): Locale {
return dfe.locale
}

override fun getOperationDefinition(): OperationDefinition {
return dfe.operationDefinition
}

override fun getDocument(): Document {
return dfe.document
}

override fun getVariables(): MutableMap<String, Any> {
return dfe.variables
}
}