@@ -4,7 +4,8 @@ import go
44
55/** Provides models of commonly used functions and types in the gqlgen packages. */
66module Gqlgen {
7- class GqlgenGeneratedFile extends File {
7+ /** An autogenerated file containing gqlgen code. */
8+ private class GqlgenGeneratedFile extends File {
89 GqlgenGeneratedFile ( ) {
910 exists ( DataFlow:: CallNode call |
1011 call .getReceiver ( ) .getType ( ) .hasQualifiedName ( "github.com/99designs/gqlgen/graphql" , _) and
@@ -13,29 +14,31 @@ module Gqlgen {
1314 }
1415 }
1516
16- class ResolverInterface extends Type {
17+ /** A resolver interface. */
18+ private class ResolverInterface extends Type {
1719 ResolverInterface ( ) {
1820 this .getQualifiedName ( ) .matches ( "%Resolver" ) and
1921 this .getEntity ( ) .getDeclaration ( ) .getFile ( ) instanceof GqlgenGeneratedFile
2022 }
2123 }
2224
23- class ResolverInterfaceMethod extends Method {
24- ResolverInterfaceMethod ( ) {
25- this .getReceiver ( ) .getType ( ) instanceof ResolverInterface
26- }
25+ /** A resolver implementation. */
26+ private class ResolverInterfaceMethod extends Method {
27+ ResolverInterfaceMethod ( ) { this .getReceiver ( ) .getType ( ) instanceof ResolverInterface }
2728 }
2829
29- class ResolverImplementationMethod extends Method {
30+ /** A resolver method which is exposed as a Graphql endpoint */
31+ private class ResolverImplementationMethod extends Method {
3032 ResolverImplementationMethod ( ) { this .implements ( any ( ResolverInterfaceMethod r ) ) }
31-
33+
3234 Parameter getAnUntrustedParameter ( ) {
3335 result .getFunction ( ) = this .getFuncDecl ( ) and
3436 not result .getType ( ) .hasQualifiedName ( "context" , "Context" ) and
3537 result .getIndex ( ) > 0
3638 }
3739 }
3840
41+ /** A parameter of a resolver method which receives untrusted input. */
3942 class ResolverParameter extends UntrustedFlowSource:: Range instanceof DataFlow:: ParameterNode {
4043 ResolverParameter ( ) {
4144 this .asParameter ( ) = any ( ResolverImplementationMethod h ) .getAnUntrustedParameter ( )
0 commit comments