From 99f1937856705ad2259563fcbe8d023f37179a90 Mon Sep 17 00:00:00 2001 From: Piyush Kumar Date: Mon, 27 May 2024 12:20:33 +0530 Subject: [PATCH] add approved field of user inside graphql schema --- .tools/nvim/__http__/auth/auth.graphql.yml | 2 + apps/auth/internal/app/graph/functions.go | 1 + .../internal/app/graph/generated/generated.go | 68 +++++++++++++++++++ .../internal/app/graph/model/models_gen.go | 1 + apps/auth/internal/app/graph/schema.graphqls | 1 + .../internal/app/graph/schema.resolvers.go | 3 +- 6 files changed, 74 insertions(+), 2 deletions(-) diff --git a/.tools/nvim/__http__/auth/auth.graphql.yml b/.tools/nvim/__http__/auth/auth.graphql.yml index 759d8b8d3..ed544ec90 100644 --- a/.tools/nvim/__http__/auth/auth.graphql.yml +++ b/.tools/nvim/__http__/auth/auth.graphql.yml @@ -81,6 +81,8 @@ query: | id email name + approved + verified # providerGitlab # providerGithub # verified diff --git a/apps/auth/internal/app/graph/functions.go b/apps/auth/internal/app/graph/functions.go index 98f4823b0..d3baabdc3 100644 --- a/apps/auth/internal/app/graph/functions.go +++ b/apps/auth/internal/app/graph/functions.go @@ -23,6 +23,7 @@ func userModelFromEntity(userEntity *entities.User) *model.User { Avatar: userEntity.Avatar, Invite: string(userEntity.InvitationStatus), Verified: userEntity.Verified, + Approved: userEntity.Approved, Metadata: userEntity.Metadata, Joined: userEntity.Joined.String(), ProviderGitlab: mapFromProviderDetail(userEntity.ProviderGitlab), diff --git a/apps/auth/internal/app/graph/generated/generated.go b/apps/auth/internal/app/graph/generated/generated.go index bb915ebd6..c211978d0 100644 --- a/apps/auth/internal/app/graph/generated/generated.go +++ b/apps/auth/internal/app/graph/generated/generated.go @@ -111,6 +111,7 @@ type ComplexityRoot struct { } User struct { + Approved func(childComplexity int) int Avatar func(childComplexity int) int Email func(childComplexity int) int ID func(childComplexity int) int @@ -545,6 +546,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Session.UserVerified(childComplexity), true + case "User.approved": + if e.complexity.User.Approved == nil { + break + } + + return e.complexity.User.Approved(childComplexity), true + case "User.avatar": if e.complexity.User.Avatar == nil { break @@ -808,6 +816,7 @@ type User @key(fields: "id") { avatar: String invite: String! verified: Boolean! + approved: Boolean! metadata: Json joined: Date! providerGitlab: ProviderDetail @@ -1371,6 +1380,8 @@ func (ec *executionContext) fieldContext_Entity_findUserByID(ctx context.Context return ec.fieldContext_User_invite(ctx, field) case "verified": return ec.fieldContext_User_verified(ctx, field) + case "approved": + return ec.fieldContext_User_approved(ctx, field) case "metadata": return ec.fieldContext_User_metadata(ctx, field) case "joined": @@ -2026,6 +2037,8 @@ func (ec *executionContext) fieldContext_Mutation_auth_setMetadata(ctx context.C return ec.fieldContext_User_invite(ctx, field) case "verified": return ec.fieldContext_User_verified(ctx, field) + case "approved": + return ec.fieldContext_User_approved(ctx, field) case "metadata": return ec.fieldContext_User_metadata(ctx, field) case "joined": @@ -2125,6 +2138,8 @@ func (ec *executionContext) fieldContext_Mutation_auth_clearMetadata(ctx context return ec.fieldContext_User_invite(ctx, field) case "verified": return ec.fieldContext_User_verified(ctx, field) + case "approved": + return ec.fieldContext_User_approved(ctx, field) case "metadata": return ec.fieldContext_User_metadata(ctx, field) case "joined": @@ -2882,6 +2897,8 @@ func (ec *executionContext) fieldContext_Query_auth_me(ctx context.Context, fiel return ec.fieldContext_User_invite(ctx, field) case "verified": return ec.fieldContext_User_verified(ctx, field) + case "approved": + return ec.fieldContext_User_approved(ctx, field) case "metadata": return ec.fieldContext_User_metadata(ctx, field) case "joined": @@ -2947,6 +2964,8 @@ func (ec *executionContext) fieldContext_Query_auth_findByEmail(ctx context.Cont return ec.fieldContext_User_invite(ctx, field) case "verified": return ec.fieldContext_User_verified(ctx, field) + case "approved": + return ec.fieldContext_User_approved(ctx, field) case "metadata": return ec.fieldContext_User_metadata(ctx, field) case "joined": @@ -3933,6 +3952,50 @@ func (ec *executionContext) fieldContext_User_verified(ctx context.Context, fiel return fc, nil } +func (ec *executionContext) _User_approved(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_User_approved(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Approved, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_User_approved(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "User", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _User_metadata(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { fc, err := ec.fieldContext_User_metadata(ctx, field) if err != nil { @@ -6628,6 +6691,11 @@ func (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj if out.Values[i] == graphql.Null { out.Invalids++ } + case "approved": + out.Values[i] = ec._User_approved(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } case "metadata": out.Values[i] = ec._User_metadata(ctx, field, obj) case "joined": diff --git a/apps/auth/internal/app/graph/model/models_gen.go b/apps/auth/internal/app/graph/model/models_gen.go index 3f425364b..f328880d5 100644 --- a/apps/auth/internal/app/graph/model/models_gen.go +++ b/apps/auth/internal/app/graph/model/models_gen.go @@ -37,6 +37,7 @@ type User struct { Avatar *string `json:"avatar,omitempty"` Invite string `json:"invite"` Verified bool `json:"verified"` + Approved bool `json:"approved"` Metadata map[string]interface{} `json:"metadata,omitempty"` Joined string `json:"joined"` ProviderGitlab map[string]interface{} `json:"providerGitlab,omitempty"` diff --git a/apps/auth/internal/app/graph/schema.graphqls b/apps/auth/internal/app/graph/schema.graphqls index d0f396adf..15f840adc 100644 --- a/apps/auth/internal/app/graph/schema.graphqls +++ b/apps/auth/internal/app/graph/schema.graphqls @@ -73,6 +73,7 @@ type User @key(fields: "id") { avatar: String invite: String! verified: Boolean! + approved: Boolean! metadata: Json joined: Date! providerGitlab: ProviderDetail diff --git a/apps/auth/internal/app/graph/schema.resolvers.go b/apps/auth/internal/app/graph/schema.resolvers.go index 6978d0ab6..e4f9cc636 100644 --- a/apps/auth/internal/app/graph/schema.resolvers.go +++ b/apps/auth/internal/app/graph/schema.resolvers.go @@ -6,11 +6,10 @@ package graph import ( "context" - "github.com/kloudlite/api/pkg/errors" - "github.com/kloudlite/api/apps/auth/internal/app/graph/generated" "github.com/kloudlite/api/apps/auth/internal/app/graph/model" "github.com/kloudlite/api/common" + "github.com/kloudlite/api/pkg/errors" fn "github.com/kloudlite/api/pkg/functions" httpServer "github.com/kloudlite/api/pkg/http-server" "github.com/kloudlite/api/pkg/repos"