Skip to content

Commit cc6950f

Browse files
committed
feat(server): implement referenceAnswerResult
1 parent b32b6fc commit cc6950f

File tree

7 files changed

+60
-11
lines changed

7 files changed

+60
-11
lines changed

cmd/backend/dependencies.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/database-playground/backend-v2/internal/auth"
2121
"github.com/database-playground/backend-v2/internal/config"
2222
"github.com/database-playground/backend-v2/internal/httputils"
23+
"github.com/database-playground/backend-v2/internal/sqlrunner"
2324
"github.com/gin-contrib/cors"
2425
"github.com/gin-gonic/gin"
2526
"github.com/redis/rueidis"
@@ -60,9 +61,13 @@ func CorsMiddleware(cfg config.Config) Middleware {
6061
}
6162
}
6263

64+
func SqlRunner(cfg config.Config) *sqlrunner.SqlRunner {
65+
return sqlrunner.NewSqlRunner(cfg.SqlRunner)
66+
}
67+
6368
// GqlgenHandler creates a gqlgen handler.
64-
func GqlgenHandler(entClient *ent.Client, storage auth.Storage) *handler.Server {
65-
srv := handler.New(graph.NewSchema(entClient, storage))
69+
func GqlgenHandler(entClient *ent.Client, storage auth.Storage, sqlrunner *sqlrunner.SqlRunner) *handler.Server {
70+
srv := handler.New(graph.NewSchema(entClient, storage, sqlrunner))
6671

6772
srv.AddTransport(transport.Options{})
6873
srv.AddTransport(transport.GET{})

cmd/backend/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ func main() {
1515
deps.FxCommonModule,
1616
fx.Provide(
1717
AuthStorage,
18+
SqlRunner,
1819
AnnotateMiddleware(AuthMiddleware),
1920
AnnotateMiddleware(MachineMiddleware),
2021
AnnotateMiddleware(CorsMiddleware),

graph/ent.resolvers.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/model/models_gen.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/question.graphqls

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ extend type Mutation {
1414
"""
1515
Create a question.
1616
"""
17-
createQuestion(input: CreateQuestionInput!): Question! @scope(scope: "question:write")
17+
createQuestion(input: CreateQuestionInput!): Question!
18+
@scope(scope: "question:write")
1819

1920
"""
2021
Update a question.
2122
"""
22-
updateQuestion(id: ID!, input: UpdateQuestionInput!): Question! @scope(scope: "question:write")
23+
updateQuestion(id: ID!, input: UpdateQuestionInput!): Question!
24+
@scope(scope: "question:write")
2325

2426
"""
2527
Delete a question.
@@ -29,15 +31,26 @@ extend type Mutation {
2931
"""
3032
Create a database.
3133
"""
32-
createDatabase(input: CreateDatabaseInput!): Database! @scope(scope: "database:write")
34+
createDatabase(input: CreateDatabaseInput!): Database!
35+
@scope(scope: "database:write")
3336

3437
"""
3538
Update a database.
3639
"""
37-
updateDatabase(id: ID!, input: UpdateDatabaseInput!): Database! @scope(scope: "database:write")
40+
updateDatabase(id: ID!, input: UpdateDatabaseInput!): Database!
41+
@scope(scope: "database:write")
3842

3943
"""
4044
Delete a database.
4145
"""
4246
deleteDatabase(id: ID!): Boolean! @scope(scope: "database:write")
43-
}
47+
}
48+
49+
extend type Question {
50+
referenceAnswerResult: SqlResponse! @scope(scope: "question:read")
51+
}
52+
53+
type SqlResponse {
54+
columns: [String!]!
55+
rows: [[String!]!]!
56+
}

graph/question.resolvers.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

graph/resolver.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/database-playground/backend-v2/graph/defs"
1010
"github.com/database-playground/backend-v2/graph/directive"
1111
"github.com/database-playground/backend-v2/internal/auth"
12+
"github.com/database-playground/backend-v2/internal/sqlrunner"
1213
"github.com/database-playground/backend-v2/internal/useraccount"
1314
"github.com/vektah/gqlparser/v2/gqlerror"
1415
)
@@ -19,14 +20,15 @@ import (
1920

2021
// Resolver is the resolver root.
2122
type Resolver struct {
22-
ent *ent.Client
23-
auth auth.Storage
23+
ent *ent.Client
24+
auth auth.Storage
25+
sqlrunner *sqlrunner.SqlRunner
2426
}
2527

2628
// NewSchema creates a graphql executable schema.
27-
func NewSchema(ent *ent.Client, auth auth.Storage) graphql.ExecutableSchema {
29+
func NewSchema(ent *ent.Client, auth auth.Storage, sqlrunner *sqlrunner.SqlRunner) graphql.ExecutableSchema {
2830
return NewExecutableSchema(Config{
29-
Resolvers: &Resolver{ent, auth},
31+
Resolvers: &Resolver{ent, auth, sqlrunner},
3032
Directives: DirectiveRoot{
3133
Scope: directive.ScopeDirective,
3234
},

0 commit comments

Comments
 (0)