diff --git a/server/e2e/gql_workspace_test.go b/server/e2e/gql_workspace_test.go index e4c0104b23..fdb4fa1fc9 100644 --- a/server/e2e/gql_workspace_test.go +++ b/server/e2e/gql_workspace_test.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "net/http" + "strings" "testing" "github.com/reearth/reearth-cms/server/internal/app" @@ -270,7 +271,8 @@ func TestRemoveUserFromWorkspace(t *testing.T) { assert.Nil(t, err) assert.True(t, w.Members().HasUser(uId3)) - query := fmt.Sprintf(`mutation { removeUserFromWorkspace(input: {workspaceId: "%s", userId: "%s"}){ workspace{ id } }}`, wId2, uId3) + uIds := accountdomain.UserIDList{uId2, uId3} + query := fmt.Sprintf(`mutation { removeMultipleMembersFromWorkspace(input: {workspaceId: "%s", userIds: ["%s"]}){ workspace{ id } }}`, wId2, strings.Join(uIds.Strings(), "\", \"")) request := GraphQLRequest{ Query: query, } diff --git a/server/go.mod b/server/go.mod index 4eed4501c4..2e65122664 100644 --- a/server/go.mod +++ b/server/go.mod @@ -27,7 +27,7 @@ require ( github.com/oapi-codegen/runtime v1.1.1 github.com/paulmach/go.geojson v1.5.0 github.com/ravilushqa/otelgqlgen v0.17.0 - github.com/reearth/reearthx v0.0.0-20240308140749-72a08570c19b + github.com/reearth/reearthx v0.0.0-20241023075926-e29bdd6c4ae3 github.com/robbiet480/go.sns v0.0.0-20230523235941-e8d832c79d68 github.com/samber/lo v1.47.0 github.com/sendgrid/sendgrid-go v3.16.0+incompatible diff --git a/server/go.sum b/server/go.sum index 068375a715..f4d79bf84e 100644 --- a/server/go.sum +++ b/server/go.sum @@ -347,8 +347,8 @@ github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSg github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/ravilushqa/otelgqlgen v0.17.0 h1:bLwQfKqtj9P24QpjM2sc1ipBm5Fqv2u7DKN5LIpj3g8= github.com/ravilushqa/otelgqlgen v0.17.0/go.mod h1:orOIikuYsay1y3CmLgd5gsHcT9EsnXwNKmkAplzzYXQ= -github.com/reearth/reearthx v0.0.0-20240308140749-72a08570c19b h1:wfTQ4SazfN9hYe13PqwnwB/E3Tw9+f99Y97iQRqOjso= -github.com/reearth/reearthx v0.0.0-20240308140749-72a08570c19b/go.mod h1:d1WXkdCVzSoc8pl3vW9/9yKfk4fdoZQZhX8Ot8jqgnc= +github.com/reearth/reearthx v0.0.0-20241023075926-e29bdd6c4ae3 h1:aFm6QNDFs08EKlrWJN9IBqdxlDUuCBIIgBIcPkLHOZY= +github.com/reearth/reearthx v0.0.0-20241023075926-e29bdd6c4ae3/go.mod h1:d1WXkdCVzSoc8pl3vW9/9yKfk4fdoZQZhX8Ot8jqgnc= github.com/robbiet480/go.sns v0.0.0-20230523235941-e8d832c79d68 h1:Jknsfy5cqCH6qAuoU1qNZ51hfBJfMSJYwsH9j9mdVnw= github.com/robbiet480/go.sns v0.0.0-20230523235941-e8d832c79d68/go.mod h1:9CDhL7uDVy8vEVDNPJzxq89dPaPBWP6hxQcC8woBHus= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= diff --git a/server/internal/adapter/gql/generated.go b/server/internal/adapter/gql/generated.go index e9eda2b4e8..3bb07ad41f 100644 --- a/server/internal/adapter/gql/generated.go +++ b/server/internal/adapter/gql/generated.go @@ -412,64 +412,64 @@ type ComplexityRoot struct { } Mutation struct { - AddComment func(childComplexity int, input gqlmodel.AddCommentInput) int - AddIntegrationToWorkspace func(childComplexity int, input gqlmodel.AddIntegrationToWorkspaceInput) int - AddUsersToWorkspace func(childComplexity int, input gqlmodel.AddUsersToWorkspaceInput) int - ApproveRequest func(childComplexity int, input gqlmodel.ApproveRequestInput) int - CreateAsset func(childComplexity int, input gqlmodel.CreateAssetInput) int - CreateAssetUpload func(childComplexity int, input gqlmodel.CreateAssetUploadInput) int - CreateField func(childComplexity int, input gqlmodel.CreateFieldInput) int - CreateGroup func(childComplexity int, input gqlmodel.CreateGroupInput) int - CreateIntegration func(childComplexity int, input gqlmodel.CreateIntegrationInput) int - CreateItem func(childComplexity int, input gqlmodel.CreateItemInput) int - CreateModel func(childComplexity int, input gqlmodel.CreateModelInput) int - CreateProject func(childComplexity int, input gqlmodel.CreateProjectInput) int - CreateRequest func(childComplexity int, input gqlmodel.CreateRequestInput) int - CreateThread func(childComplexity int, input gqlmodel.CreateThreadInput) int - CreateView func(childComplexity int, input gqlmodel.CreateViewInput) int - CreateWebhook func(childComplexity int, input gqlmodel.CreateWebhookInput) int - CreateWorkspace func(childComplexity int, input gqlmodel.CreateWorkspaceInput) int - DecompressAsset func(childComplexity int, input gqlmodel.DecompressAssetInput) int - DeleteAsset func(childComplexity int, input gqlmodel.DeleteAssetInput) int - DeleteComment func(childComplexity int, input gqlmodel.DeleteCommentInput) int - DeleteField func(childComplexity int, input gqlmodel.DeleteFieldInput) int - DeleteGroup func(childComplexity int, input gqlmodel.DeleteGroupInput) int - DeleteIntegration func(childComplexity int, input gqlmodel.DeleteIntegrationInput) int - DeleteItem func(childComplexity int, input gqlmodel.DeleteItemInput) int - DeleteMe func(childComplexity int, input gqlmodel.DeleteMeInput) int - DeleteModel func(childComplexity int, input gqlmodel.DeleteModelInput) int - DeleteProject func(childComplexity int, input gqlmodel.DeleteProjectInput) int - DeleteRequest func(childComplexity int, input gqlmodel.DeleteRequestInput) int - DeleteView func(childComplexity int, input gqlmodel.DeleteViewInput) int - DeleteWebhook func(childComplexity int, input gqlmodel.DeleteWebhookInput) int - DeleteWorkspace func(childComplexity int, input gqlmodel.DeleteWorkspaceInput) int - PublishItem func(childComplexity int, input gqlmodel.PublishItemInput) int - PublishModel func(childComplexity int, input gqlmodel.PublishModelInput) int - RegenerateToken func(childComplexity int, input gqlmodel.RegenerateTokenInput) int - RemoveIntegrationFromWorkspace func(childComplexity int, input gqlmodel.RemoveIntegrationFromWorkspaceInput) int - RemoveMyAuth func(childComplexity int, input gqlmodel.RemoveMyAuthInput) int - RemoveUserFromWorkspace func(childComplexity int, input gqlmodel.RemoveUserFromWorkspaceInput) int - UnpublishItem func(childComplexity int, input gqlmodel.UnpublishItemInput) int - UpdateAsset func(childComplexity int, input gqlmodel.UpdateAssetInput) int - UpdateComment func(childComplexity int, input gqlmodel.UpdateCommentInput) int - UpdateField func(childComplexity int, input gqlmodel.UpdateFieldInput) int - UpdateFields func(childComplexity int, input []*gqlmodel.UpdateFieldInput) int - UpdateGroup func(childComplexity int, input gqlmodel.UpdateGroupInput) int - UpdateGroupsOrder func(childComplexity int, input gqlmodel.UpdateGroupsOrderInput) int - UpdateIntegration func(childComplexity int, input gqlmodel.UpdateIntegrationInput) int - UpdateIntegrationOfWorkspace func(childComplexity int, input gqlmodel.UpdateIntegrationOfWorkspaceInput) int - UpdateItem func(childComplexity int, input gqlmodel.UpdateItemInput) int - UpdateMe func(childComplexity int, input gqlmodel.UpdateMeInput) int - UpdateModel func(childComplexity int, input gqlmodel.UpdateModelInput) int - UpdateModelsOrder func(childComplexity int, input gqlmodel.UpdateModelsOrderInput) int - UpdateProject func(childComplexity int, input gqlmodel.UpdateProjectInput) int - UpdateRequest func(childComplexity int, input gqlmodel.UpdateRequestInput) int - UpdateUserOfWorkspace func(childComplexity int, input gqlmodel.UpdateUserOfWorkspaceInput) int - UpdateView func(childComplexity int, input gqlmodel.UpdateViewInput) int - UpdateViewsOrder func(childComplexity int, input gqlmodel.UpdateViewsOrderInput) int - UpdateWebhook func(childComplexity int, input gqlmodel.UpdateWebhookInput) int - UpdateWorkspace func(childComplexity int, input gqlmodel.UpdateWorkspaceInput) int - UpdateWorkspaceSettings func(childComplexity int, input gqlmodel.UpdateWorkspaceSettingsInput) int + AddComment func(childComplexity int, input gqlmodel.AddCommentInput) int + AddIntegrationToWorkspace func(childComplexity int, input gqlmodel.AddIntegrationToWorkspaceInput) int + AddUsersToWorkspace func(childComplexity int, input gqlmodel.AddUsersToWorkspaceInput) int + ApproveRequest func(childComplexity int, input gqlmodel.ApproveRequestInput) int + CreateAsset func(childComplexity int, input gqlmodel.CreateAssetInput) int + CreateAssetUpload func(childComplexity int, input gqlmodel.CreateAssetUploadInput) int + CreateField func(childComplexity int, input gqlmodel.CreateFieldInput) int + CreateGroup func(childComplexity int, input gqlmodel.CreateGroupInput) int + CreateIntegration func(childComplexity int, input gqlmodel.CreateIntegrationInput) int + CreateItem func(childComplexity int, input gqlmodel.CreateItemInput) int + CreateModel func(childComplexity int, input gqlmodel.CreateModelInput) int + CreateProject func(childComplexity int, input gqlmodel.CreateProjectInput) int + CreateRequest func(childComplexity int, input gqlmodel.CreateRequestInput) int + CreateThread func(childComplexity int, input gqlmodel.CreateThreadInput) int + CreateView func(childComplexity int, input gqlmodel.CreateViewInput) int + CreateWebhook func(childComplexity int, input gqlmodel.CreateWebhookInput) int + CreateWorkspace func(childComplexity int, input gqlmodel.CreateWorkspaceInput) int + DecompressAsset func(childComplexity int, input gqlmodel.DecompressAssetInput) int + DeleteAsset func(childComplexity int, input gqlmodel.DeleteAssetInput) int + DeleteComment func(childComplexity int, input gqlmodel.DeleteCommentInput) int + DeleteField func(childComplexity int, input gqlmodel.DeleteFieldInput) int + DeleteGroup func(childComplexity int, input gqlmodel.DeleteGroupInput) int + DeleteIntegration func(childComplexity int, input gqlmodel.DeleteIntegrationInput) int + DeleteItem func(childComplexity int, input gqlmodel.DeleteItemInput) int + DeleteMe func(childComplexity int, input gqlmodel.DeleteMeInput) int + DeleteModel func(childComplexity int, input gqlmodel.DeleteModelInput) int + DeleteProject func(childComplexity int, input gqlmodel.DeleteProjectInput) int + DeleteRequest func(childComplexity int, input gqlmodel.DeleteRequestInput) int + DeleteView func(childComplexity int, input gqlmodel.DeleteViewInput) int + DeleteWebhook func(childComplexity int, input gqlmodel.DeleteWebhookInput) int + DeleteWorkspace func(childComplexity int, input gqlmodel.DeleteWorkspaceInput) int + PublishItem func(childComplexity int, input gqlmodel.PublishItemInput) int + PublishModel func(childComplexity int, input gqlmodel.PublishModelInput) int + RegenerateToken func(childComplexity int, input gqlmodel.RegenerateTokenInput) int + RemoveIntegrationFromWorkspace func(childComplexity int, input gqlmodel.RemoveIntegrationFromWorkspaceInput) int + RemoveMultipleMembersFromWorkspace func(childComplexity int, input gqlmodel.RemoveMultipleMembersFromWorkspaceInput) int + RemoveMyAuth func(childComplexity int, input gqlmodel.RemoveMyAuthInput) int + UnpublishItem func(childComplexity int, input gqlmodel.UnpublishItemInput) int + UpdateAsset func(childComplexity int, input gqlmodel.UpdateAssetInput) int + UpdateComment func(childComplexity int, input gqlmodel.UpdateCommentInput) int + UpdateField func(childComplexity int, input gqlmodel.UpdateFieldInput) int + UpdateFields func(childComplexity int, input []*gqlmodel.UpdateFieldInput) int + UpdateGroup func(childComplexity int, input gqlmodel.UpdateGroupInput) int + UpdateGroupsOrder func(childComplexity int, input gqlmodel.UpdateGroupsOrderInput) int + UpdateIntegration func(childComplexity int, input gqlmodel.UpdateIntegrationInput) int + UpdateIntegrationOfWorkspace func(childComplexity int, input gqlmodel.UpdateIntegrationOfWorkspaceInput) int + UpdateItem func(childComplexity int, input gqlmodel.UpdateItemInput) int + UpdateMe func(childComplexity int, input gqlmodel.UpdateMeInput) int + UpdateModel func(childComplexity int, input gqlmodel.UpdateModelInput) int + UpdateModelsOrder func(childComplexity int, input gqlmodel.UpdateModelsOrderInput) int + UpdateProject func(childComplexity int, input gqlmodel.UpdateProjectInput) int + UpdateRequest func(childComplexity int, input gqlmodel.UpdateRequestInput) int + UpdateUserOfWorkspace func(childComplexity int, input gqlmodel.UpdateUserOfWorkspaceInput) int + UpdateView func(childComplexity int, input gqlmodel.UpdateViewInput) int + UpdateViewsOrder func(childComplexity int, input gqlmodel.UpdateViewsOrderInput) int + UpdateWebhook func(childComplexity int, input gqlmodel.UpdateWebhookInput) int + UpdateWorkspace func(childComplexity int, input gqlmodel.UpdateWorkspaceInput) int + UpdateWorkspaceSettings func(childComplexity int, input gqlmodel.UpdateWorkspaceSettingsInput) int } NullableFieldCondition struct { @@ -563,7 +563,11 @@ type ComplexityRoot struct { View func(childComplexity int, modelID gqlmodel.ID) int } - RemoveMemberFromWorkspacePayload struct { + RemoveIntegrationFromWorkspacePayload struct { + Workspace func(childComplexity int) int + } + + RemoveMultipleMembersFromWorkspacePayload struct { Workspace func(childComplexity int) int } @@ -991,8 +995,8 @@ type MutationResolver interface { UpdateWorkspace(ctx context.Context, input gqlmodel.UpdateWorkspaceInput) (*gqlmodel.UpdateWorkspacePayload, error) AddUsersToWorkspace(ctx context.Context, input gqlmodel.AddUsersToWorkspaceInput) (*gqlmodel.AddUsersToWorkspacePayload, error) AddIntegrationToWorkspace(ctx context.Context, input gqlmodel.AddIntegrationToWorkspaceInput) (*gqlmodel.AddUsersToWorkspacePayload, error) - RemoveUserFromWorkspace(ctx context.Context, input gqlmodel.RemoveUserFromWorkspaceInput) (*gqlmodel.RemoveMemberFromWorkspacePayload, error) - RemoveIntegrationFromWorkspace(ctx context.Context, input gqlmodel.RemoveIntegrationFromWorkspaceInput) (*gqlmodel.RemoveMemberFromWorkspacePayload, error) + RemoveMultipleMembersFromWorkspace(ctx context.Context, input gqlmodel.RemoveMultipleMembersFromWorkspaceInput) (*gqlmodel.RemoveMultipleMembersFromWorkspacePayload, error) + RemoveIntegrationFromWorkspace(ctx context.Context, input gqlmodel.RemoveIntegrationFromWorkspaceInput) (*gqlmodel.RemoveIntegrationFromWorkspacePayload, error) UpdateUserOfWorkspace(ctx context.Context, input gqlmodel.UpdateUserOfWorkspaceInput) (*gqlmodel.UpdateMemberOfWorkspacePayload, error) UpdateIntegrationOfWorkspace(ctx context.Context, input gqlmodel.UpdateIntegrationOfWorkspaceInput) (*gqlmodel.UpdateMemberOfWorkspacePayload, error) UpdateWorkspaceSettings(ctx context.Context, input gqlmodel.UpdateWorkspaceSettingsInput) (*gqlmodel.UpdateWorkspaceSettingsPayload, error) @@ -2787,29 +2791,29 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Mutation.RemoveIntegrationFromWorkspace(childComplexity, args["input"].(gqlmodel.RemoveIntegrationFromWorkspaceInput)), true - case "Mutation.removeMyAuth": - if e.complexity.Mutation.RemoveMyAuth == nil { + case "Mutation.removeMultipleMembersFromWorkspace": + if e.complexity.Mutation.RemoveMultipleMembersFromWorkspace == nil { break } - args, err := ec.field_Mutation_removeMyAuth_args(context.TODO(), rawArgs) + args, err := ec.field_Mutation_removeMultipleMembersFromWorkspace_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Mutation.RemoveMyAuth(childComplexity, args["input"].(gqlmodel.RemoveMyAuthInput)), true + return e.complexity.Mutation.RemoveMultipleMembersFromWorkspace(childComplexity, args["input"].(gqlmodel.RemoveMultipleMembersFromWorkspaceInput)), true - case "Mutation.removeUserFromWorkspace": - if e.complexity.Mutation.RemoveUserFromWorkspace == nil { + case "Mutation.removeMyAuth": + if e.complexity.Mutation.RemoveMyAuth == nil { break } - args, err := ec.field_Mutation_removeUserFromWorkspace_args(context.TODO(), rawArgs) + args, err := ec.field_Mutation_removeMyAuth_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Mutation.RemoveUserFromWorkspace(childComplexity, args["input"].(gqlmodel.RemoveUserFromWorkspaceInput)), true + return e.complexity.Mutation.RemoveMyAuth(childComplexity, args["input"].(gqlmodel.RemoveMyAuthInput)), true case "Mutation.unpublishItem": if e.complexity.Mutation.UnpublishItem == nil { @@ -3512,12 +3516,19 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Query.View(childComplexity, args["modelId"].(gqlmodel.ID)), true - case "RemoveMemberFromWorkspacePayload.workspace": - if e.complexity.RemoveMemberFromWorkspacePayload.Workspace == nil { + case "RemoveIntegrationFromWorkspacePayload.workspace": + if e.complexity.RemoveIntegrationFromWorkspacePayload.Workspace == nil { + break + } + + return e.complexity.RemoveIntegrationFromWorkspacePayload.Workspace(childComplexity), true + + case "RemoveMultipleMembersFromWorkspacePayload.workspace": + if e.complexity.RemoveMultipleMembersFromWorkspacePayload.Workspace == nil { break } - return e.complexity.RemoveMemberFromWorkspacePayload.Workspace(childComplexity), true + return e.complexity.RemoveMultipleMembersFromWorkspacePayload.Workspace(childComplexity), true case "Request.approvedAt": if e.complexity.Request.ApprovedAt == nil { @@ -4771,8 +4782,8 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ec.unmarshalInputPublishModelInput, ec.unmarshalInputRegenerateTokenInput, ec.unmarshalInputRemoveIntegrationFromWorkspaceInput, + ec.unmarshalInputRemoveMultipleMembersFromWorkspaceInput, ec.unmarshalInputRemoveMyAuthInput, - ec.unmarshalInputRemoveUserFromWorkspaceInput, ec.unmarshalInputRequestItemInput, ec.unmarshalInputResourceInput, ec.unmarshalInputResourcesListInput, @@ -6677,9 +6688,9 @@ input AddIntegrationToWorkspaceInput { role: Role! } -input RemoveUserFromWorkspaceInput { +input RemoveMultipleMembersFromWorkspaceInput { workspaceId: ID! - userId: ID! + userIds: [ID!]! } input RemoveIntegrationFromWorkspaceInput { @@ -6717,7 +6728,11 @@ type AddUsersToWorkspacePayload { workspace: Workspace! } -type RemoveMemberFromWorkspacePayload { +type RemoveIntegrationFromWorkspacePayload { + workspace: Workspace! +} + +type RemoveMultipleMembersFromWorkspacePayload { workspace: Workspace! } @@ -6735,8 +6750,8 @@ extend type Mutation { updateWorkspace(input: UpdateWorkspaceInput!): UpdateWorkspacePayload addUsersToWorkspace(input: AddUsersToWorkspaceInput!): AddUsersToWorkspacePayload addIntegrationToWorkspace(input: AddIntegrationToWorkspaceInput!): AddUsersToWorkspacePayload - removeUserFromWorkspace(input: RemoveUserFromWorkspaceInput!): RemoveMemberFromWorkspacePayload - removeIntegrationFromWorkspace(input: RemoveIntegrationFromWorkspaceInput!): RemoveMemberFromWorkspacePayload + removeMultipleMembersFromWorkspace(input: RemoveMultipleMembersFromWorkspaceInput!): RemoveMultipleMembersFromWorkspacePayload + removeIntegrationFromWorkspace(input: RemoveIntegrationFromWorkspaceInput!): RemoveIntegrationFromWorkspacePayload updateUserOfWorkspace(input: UpdateUserOfWorkspaceInput!): UpdateMemberOfWorkspacePayload updateIntegrationOfWorkspace(input: UpdateIntegrationOfWorkspaceInput!): UpdateMemberOfWorkspacePayload } @@ -7980,67 +7995,67 @@ func (ec *executionContext) field_Mutation_removeIntegrationFromWorkspace_argsIn return zeroVal, nil } -func (ec *executionContext) field_Mutation_removeMyAuth_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Mutation_removeMultipleMembersFromWorkspace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { var err error args := map[string]interface{}{} - arg0, err := ec.field_Mutation_removeMyAuth_argsInput(ctx, rawArgs) + arg0, err := ec.field_Mutation_removeMultipleMembersFromWorkspace_argsInput(ctx, rawArgs) if err != nil { return nil, err } args["input"] = arg0 return args, nil } -func (ec *executionContext) field_Mutation_removeMyAuth_argsInput( +func (ec *executionContext) field_Mutation_removeMultipleMembersFromWorkspace_argsInput( ctx context.Context, rawArgs map[string]interface{}, -) (gqlmodel.RemoveMyAuthInput, error) { +) (gqlmodel.RemoveMultipleMembersFromWorkspaceInput, error) { // We won't call the directive if the argument is null. // Set call_argument_directives_with_null to true to call directives // even if the argument is null. _, ok := rawArgs["input"] if !ok { - var zeroVal gqlmodel.RemoveMyAuthInput + var zeroVal gqlmodel.RemoveMultipleMembersFromWorkspaceInput return zeroVal, nil } ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("input")) if tmp, ok := rawArgs["input"]; ok { - return ec.unmarshalNRemoveMyAuthInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMyAuthInput(ctx, tmp) + return ec.unmarshalNRemoveMultipleMembersFromWorkspaceInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMultipleMembersFromWorkspaceInput(ctx, tmp) } - var zeroVal gqlmodel.RemoveMyAuthInput + var zeroVal gqlmodel.RemoveMultipleMembersFromWorkspaceInput return zeroVal, nil } -func (ec *executionContext) field_Mutation_removeUserFromWorkspace_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Mutation_removeMyAuth_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { var err error args := map[string]interface{}{} - arg0, err := ec.field_Mutation_removeUserFromWorkspace_argsInput(ctx, rawArgs) + arg0, err := ec.field_Mutation_removeMyAuth_argsInput(ctx, rawArgs) if err != nil { return nil, err } args["input"] = arg0 return args, nil } -func (ec *executionContext) field_Mutation_removeUserFromWorkspace_argsInput( +func (ec *executionContext) field_Mutation_removeMyAuth_argsInput( ctx context.Context, rawArgs map[string]interface{}, -) (gqlmodel.RemoveUserFromWorkspaceInput, error) { +) (gqlmodel.RemoveMyAuthInput, error) { // We won't call the directive if the argument is null. // Set call_argument_directives_with_null to true to call directives // even if the argument is null. _, ok := rawArgs["input"] if !ok { - var zeroVal gqlmodel.RemoveUserFromWorkspaceInput + var zeroVal gqlmodel.RemoveMyAuthInput return zeroVal, nil } ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("input")) if tmp, ok := rawArgs["input"]; ok { - return ec.unmarshalNRemoveUserFromWorkspaceInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveUserFromWorkspaceInput(ctx, tmp) + return ec.unmarshalNRemoveMyAuthInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMyAuthInput(ctx, tmp) } - var zeroVal gqlmodel.RemoveUserFromWorkspaceInput + var zeroVal gqlmodel.RemoveMyAuthInput return zeroVal, nil } @@ -22125,8 +22140,8 @@ func (ec *executionContext) fieldContext_Mutation_addIntegrationToWorkspace(ctx return fc, nil } -func (ec *executionContext) _Mutation_removeUserFromWorkspace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Mutation_removeUserFromWorkspace(ctx, field) +func (ec *executionContext) _Mutation_removeMultipleMembersFromWorkspace(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_removeMultipleMembersFromWorkspace(ctx, field) if err != nil { return graphql.Null } @@ -22139,7 +22154,7 @@ func (ec *executionContext) _Mutation_removeUserFromWorkspace(ctx context.Contex }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Mutation().RemoveUserFromWorkspace(rctx, fc.Args["input"].(gqlmodel.RemoveUserFromWorkspaceInput)) + return ec.resolvers.Mutation().RemoveMultipleMembersFromWorkspace(rctx, fc.Args["input"].(gqlmodel.RemoveMultipleMembersFromWorkspaceInput)) }) if err != nil { ec.Error(ctx, err) @@ -22148,12 +22163,12 @@ func (ec *executionContext) _Mutation_removeUserFromWorkspace(ctx context.Contex if resTmp == nil { return graphql.Null } - res := resTmp.(*gqlmodel.RemoveMemberFromWorkspacePayload) + res := resTmp.(*gqlmodel.RemoveMultipleMembersFromWorkspacePayload) fc.Result = res - return ec.marshalORemoveMemberFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMemberFromWorkspacePayload(ctx, field.Selections, res) + return ec.marshalORemoveMultipleMembersFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMultipleMembersFromWorkspacePayload(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Mutation_removeUserFromWorkspace(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Mutation_removeMultipleMembersFromWorkspace(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", Field: field, @@ -22162,9 +22177,9 @@ func (ec *executionContext) fieldContext_Mutation_removeUserFromWorkspace(ctx co Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "workspace": - return ec.fieldContext_RemoveMemberFromWorkspacePayload_workspace(ctx, field) + return ec.fieldContext_RemoveMultipleMembersFromWorkspacePayload_workspace(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type RemoveMemberFromWorkspacePayload", field.Name) + return nil, fmt.Errorf("no field named %q was found under type RemoveMultipleMembersFromWorkspacePayload", field.Name) }, } defer func() { @@ -22174,7 +22189,7 @@ func (ec *executionContext) fieldContext_Mutation_removeUserFromWorkspace(ctx co } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Mutation_removeUserFromWorkspace_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Mutation_removeMultipleMembersFromWorkspace_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } @@ -22204,9 +22219,9 @@ func (ec *executionContext) _Mutation_removeIntegrationFromWorkspace(ctx context if resTmp == nil { return graphql.Null } - res := resTmp.(*gqlmodel.RemoveMemberFromWorkspacePayload) + res := resTmp.(*gqlmodel.RemoveIntegrationFromWorkspacePayload) fc.Result = res - return ec.marshalORemoveMemberFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMemberFromWorkspacePayload(ctx, field.Selections, res) + return ec.marshalORemoveIntegrationFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveIntegrationFromWorkspacePayload(ctx, field.Selections, res) } func (ec *executionContext) fieldContext_Mutation_removeIntegrationFromWorkspace(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { @@ -22218,9 +22233,9 @@ func (ec *executionContext) fieldContext_Mutation_removeIntegrationFromWorkspace Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "workspace": - return ec.fieldContext_RemoveMemberFromWorkspacePayload_workspace(ctx, field) + return ec.fieldContext_RemoveIntegrationFromWorkspacePayload_workspace(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type RemoveMemberFromWorkspacePayload", field.Name) + return nil, fmt.Errorf("no field named %q was found under type RemoveIntegrationFromWorkspacePayload", field.Name) }, } defer func() { @@ -25346,8 +25361,8 @@ func (ec *executionContext) fieldContext_Query___schema(_ context.Context, field return fc, nil } -func (ec *executionContext) _RemoveMemberFromWorkspacePayload_workspace(ctx context.Context, field graphql.CollectedField, obj *gqlmodel.RemoveMemberFromWorkspacePayload) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_RemoveMemberFromWorkspacePayload_workspace(ctx, field) +func (ec *executionContext) _RemoveIntegrationFromWorkspacePayload_workspace(ctx context.Context, field graphql.CollectedField, obj *gqlmodel.RemoveIntegrationFromWorkspacePayload) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_RemoveIntegrationFromWorkspacePayload_workspace(ctx, field) if err != nil { return graphql.Null } @@ -25377,9 +25392,63 @@ func (ec *executionContext) _RemoveMemberFromWorkspacePayload_workspace(ctx cont return ec.marshalNWorkspace2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐWorkspace(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_RemoveMemberFromWorkspacePayload_workspace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_RemoveIntegrationFromWorkspacePayload_workspace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "RemoveMemberFromWorkspacePayload", + Object: "RemoveIntegrationFromWorkspacePayload", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Workspace_id(ctx, field) + case "name": + return ec.fieldContext_Workspace_name(ctx, field) + case "members": + return ec.fieldContext_Workspace_members(ctx, field) + case "personal": + return ec.fieldContext_Workspace_personal(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Workspace", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _RemoveMultipleMembersFromWorkspacePayload_workspace(ctx context.Context, field graphql.CollectedField, obj *gqlmodel.RemoveMultipleMembersFromWorkspacePayload) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_RemoveMultipleMembersFromWorkspacePayload_workspace(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.Workspace, 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.(*gqlmodel.Workspace) + fc.Result = res + return ec.marshalNWorkspace2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐWorkspace(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_RemoveMultipleMembersFromWorkspacePayload_workspace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "RemoveMultipleMembersFromWorkspacePayload", Field: field, IsMethod: false, IsResolver: false, @@ -37854,61 +37923,61 @@ func (ec *executionContext) unmarshalInputRemoveIntegrationFromWorkspaceInput(ct return it, nil } -func (ec *executionContext) unmarshalInputRemoveMyAuthInput(ctx context.Context, obj interface{}) (gqlmodel.RemoveMyAuthInput, error) { - var it gqlmodel.RemoveMyAuthInput +func (ec *executionContext) unmarshalInputRemoveMultipleMembersFromWorkspaceInput(ctx context.Context, obj interface{}) (gqlmodel.RemoveMultipleMembersFromWorkspaceInput, error) { + var it gqlmodel.RemoveMultipleMembersFromWorkspaceInput asMap := map[string]interface{}{} for k, v := range obj.(map[string]interface{}) { asMap[k] = v } - fieldsInOrder := [...]string{"auth"} + fieldsInOrder := [...]string{"workspaceId", "userIds"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { continue } switch k { - case "auth": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("auth")) - data, err := ec.unmarshalNString2string(ctx, v) + case "workspaceId": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceId")) + data, err := ec.unmarshalNID2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐID(ctx, v) if err != nil { return it, err } - it.Auth = data + it.WorkspaceID = data + case "userIds": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userIds")) + data, err := ec.unmarshalNID2ᚕgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐIDᚄ(ctx, v) + if err != nil { + return it, err + } + it.UserIds = data } } return it, nil } -func (ec *executionContext) unmarshalInputRemoveUserFromWorkspaceInput(ctx context.Context, obj interface{}) (gqlmodel.RemoveUserFromWorkspaceInput, error) { - var it gqlmodel.RemoveUserFromWorkspaceInput +func (ec *executionContext) unmarshalInputRemoveMyAuthInput(ctx context.Context, obj interface{}) (gqlmodel.RemoveMyAuthInput, error) { + var it gqlmodel.RemoveMyAuthInput asMap := map[string]interface{}{} for k, v := range obj.(map[string]interface{}) { asMap[k] = v } - fieldsInOrder := [...]string{"workspaceId", "userId"} + fieldsInOrder := [...]string{"auth"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { continue } switch k { - case "workspaceId": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("workspaceId")) - data, err := ec.unmarshalNID2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐID(ctx, v) - if err != nil { - return it, err - } - it.WorkspaceID = data - case "userId": - ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("userId")) - data, err := ec.unmarshalNID2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐID(ctx, v) + case "auth": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("auth")) + data, err := ec.unmarshalNString2string(ctx, v) if err != nil { return it, err } - it.UserID = data + it.Auth = data } } @@ -44615,9 +44684,9 @@ func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { return ec._Mutation_addIntegrationToWorkspace(ctx, field) }) - case "removeUserFromWorkspace": + case "removeMultipleMembersFromWorkspace": out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { - return ec._Mutation_removeUserFromWorkspace(ctx, field) + return ec._Mutation_removeMultipleMembersFromWorkspace(ctx, field) }) case "removeIntegrationFromWorkspace": out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { @@ -45686,19 +45755,58 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr return out } -var removeMemberFromWorkspacePayloadImplementors = []string{"RemoveMemberFromWorkspacePayload"} +var removeIntegrationFromWorkspacePayloadImplementors = []string{"RemoveIntegrationFromWorkspacePayload"} -func (ec *executionContext) _RemoveMemberFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, obj *gqlmodel.RemoveMemberFromWorkspacePayload) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, removeMemberFromWorkspacePayloadImplementors) +func (ec *executionContext) _RemoveIntegrationFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, obj *gqlmodel.RemoveIntegrationFromWorkspacePayload) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, removeIntegrationFromWorkspacePayloadImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("RemoveMemberFromWorkspacePayload") + out.Values[i] = graphql.MarshalString("RemoveIntegrationFromWorkspacePayload") case "workspace": - out.Values[i] = ec._RemoveMemberFromWorkspacePayload_workspace(ctx, field, obj) + out.Values[i] = ec._RemoveIntegrationFromWorkspacePayload_workspace(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var removeMultipleMembersFromWorkspacePayloadImplementors = []string{"RemoveMultipleMembersFromWorkspacePayload"} + +func (ec *executionContext) _RemoveMultipleMembersFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, obj *gqlmodel.RemoveMultipleMembersFromWorkspacePayload) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, removeMultipleMembersFromWorkspacePayloadImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("RemoveMultipleMembersFromWorkspacePayload") + case "workspace": + out.Values[i] = ec._RemoveMultipleMembersFromWorkspacePayload_workspace(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -50626,13 +50734,13 @@ func (ec *executionContext) unmarshalNRemoveIntegrationFromWorkspaceInput2github return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalNRemoveMyAuthInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMyAuthInput(ctx context.Context, v interface{}) (gqlmodel.RemoveMyAuthInput, error) { - res, err := ec.unmarshalInputRemoveMyAuthInput(ctx, v) +func (ec *executionContext) unmarshalNRemoveMultipleMembersFromWorkspaceInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMultipleMembersFromWorkspaceInput(ctx context.Context, v interface{}) (gqlmodel.RemoveMultipleMembersFromWorkspaceInput, error) { + res, err := ec.unmarshalInputRemoveMultipleMembersFromWorkspaceInput(ctx, v) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalNRemoveUserFromWorkspaceInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveUserFromWorkspaceInput(ctx context.Context, v interface{}) (gqlmodel.RemoveUserFromWorkspaceInput, error) { - res, err := ec.unmarshalInputRemoveUserFromWorkspaceInput(ctx, v) +func (ec *executionContext) unmarshalNRemoveMyAuthInput2githubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMyAuthInput(ctx context.Context, v interface{}) (gqlmodel.RemoveMyAuthInput, error) { + res, err := ec.unmarshalInputRemoveMyAuthInput(ctx, v) return res, graphql.ErrorOnPath(ctx, err) } @@ -52815,11 +52923,18 @@ func (ec *executionContext) marshalOPublishModelPayload2ᚖgithubᚗcomᚋreeart return ec._PublishModelPayload(ctx, sel, v) } -func (ec *executionContext) marshalORemoveMemberFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMemberFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, v *gqlmodel.RemoveMemberFromWorkspacePayload) graphql.Marshaler { +func (ec *executionContext) marshalORemoveIntegrationFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveIntegrationFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, v *gqlmodel.RemoveIntegrationFromWorkspacePayload) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._RemoveIntegrationFromWorkspacePayload(ctx, sel, v) +} + +func (ec *executionContext) marshalORemoveMultipleMembersFromWorkspacePayload2ᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRemoveMultipleMembersFromWorkspacePayload(ctx context.Context, sel ast.SelectionSet, v *gqlmodel.RemoveMultipleMembersFromWorkspacePayload) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._RemoveMemberFromWorkspacePayload(ctx, sel, v) + return ec._RemoveMultipleMembersFromWorkspacePayload(ctx, sel, v) } func (ec *executionContext) marshalORequest2ᚕᚖgithubᚗcomᚋreearthᚋreearthᚑcmsᚋserverᚋinternalᚋadapterᚋgqlᚋgqlmodelᚐRequestᚄ(ctx context.Context, sel ast.SelectionSet, v []*gqlmodel.Request) graphql.Marshaler { diff --git a/server/internal/adapter/gql/gqlmodel/models_gen.go b/server/internal/adapter/gql/gqlmodel/models_gen.go index 4c2e33e311..dae2e37e5f 100644 --- a/server/internal/adapter/gql/gqlmodel/models_gen.go +++ b/server/internal/adapter/gql/gqlmodel/models_gen.go @@ -816,17 +816,21 @@ type RemoveIntegrationFromWorkspaceInput struct { IntegrationID ID `json:"integrationId"` } -type RemoveMemberFromWorkspacePayload struct { +type RemoveIntegrationFromWorkspacePayload struct { Workspace *Workspace `json:"workspace"` } -type RemoveMyAuthInput struct { - Auth string `json:"auth"` +type RemoveMultipleMembersFromWorkspaceInput struct { + WorkspaceID ID `json:"workspaceId"` + UserIds []ID `json:"userIds"` } -type RemoveUserFromWorkspaceInput struct { - WorkspaceID ID `json:"workspaceId"` - UserID ID `json:"userId"` +type RemoveMultipleMembersFromWorkspacePayload struct { + Workspace *Workspace `json:"workspace"` +} + +type RemoveMyAuthInput struct { + Auth string `json:"auth"` } type Request struct { diff --git a/server/internal/adapter/gql/resolver_workspace.go b/server/internal/adapter/gql/resolver_workspace.go index c795a0683d..dab237f6a4 100644 --- a/server/internal/adapter/gql/resolver_workspace.go +++ b/server/internal/adapter/gql/resolver_workspace.go @@ -13,6 +13,7 @@ import ( "github.com/reearth/reearthx/account/accountdomain" "github.com/reearth/reearthx/account/accountdomain/workspace" "github.com/reearth/reearthx/rerror" + "github.com/reearth/reearthx/util" ) // CreateWorkspace is the resolver for the createWorkspace field. @@ -103,23 +104,28 @@ func (r *mutationResolver) AddIntegrationToWorkspace(ctx context.Context, input return &gqlmodel.AddUsersToWorkspacePayload{Workspace: gqlmodel.ToWorkspace(res)}, nil } -// RemoveUserFromWorkspace is the resolver for the removeUserFromWorkspace field. -func (r *mutationResolver) RemoveUserFromWorkspace(ctx context.Context, input gqlmodel.RemoveUserFromWorkspaceInput) (*gqlmodel.RemoveMemberFromWorkspacePayload, error) { - tid, uid, err := gqlmodel.ToID2[accountdomain.Workspace, accountdomain.User](input.WorkspaceID, input.UserID) +// RemoveMultipleUsersFromWorkspace is the resolver for the removeMultipleUsersFromWorkspace field. +func (r *mutationResolver) RemoveMultipleMembersFromWorkspace(ctx context.Context, input gqlmodel.RemoveMultipleMembersFromWorkspaceInput) (*gqlmodel.RemoveMultipleMembersFromWorkspacePayload, error) { + wId, err := gqlmodel.ToID[accountdomain.Workspace](input.WorkspaceID) + if err != nil { + return nil, err + } + + userIds, err := util.TryMap(input.UserIds, gqlmodel.ToID[accountdomain.User]) if err != nil { return nil, err } - res, err := usecases(ctx).Workspace.RemoveUserMember(ctx, tid, uid, getAcOperator(ctx)) + res, err := usecases(ctx).Workspace.RemoveMultipleUserMembers(ctx, wId, userIds, getAcOperator(ctx)) if err != nil { return nil, err } - return &gqlmodel.RemoveMemberFromWorkspacePayload{Workspace: gqlmodel.ToWorkspace(res)}, nil + return &gqlmodel.RemoveMultipleMembersFromWorkspacePayload{Workspace: gqlmodel.ToWorkspace(res)}, nil } // RemoveIntegrationFromWorkspace is the resolver for the removeIntegrationFromWorkspace field. -func (r *mutationResolver) RemoveIntegrationFromWorkspace(ctx context.Context, input gqlmodel.RemoveIntegrationFromWorkspaceInput) (*gqlmodel.RemoveMemberFromWorkspacePayload, error) { +func (r *mutationResolver) RemoveIntegrationFromWorkspace(ctx context.Context, input gqlmodel.RemoveIntegrationFromWorkspaceInput) (*gqlmodel.RemoveIntegrationFromWorkspacePayload, error) { wId, iId, err := gqlmodel.ToID2[accountdomain.Workspace, accountdomain.Integration](input.WorkspaceID, input.IntegrationID) if err != nil { return nil, err @@ -130,7 +136,7 @@ func (r *mutationResolver) RemoveIntegrationFromWorkspace(ctx context.Context, i return nil, err } - return &gqlmodel.RemoveMemberFromWorkspacePayload{Workspace: gqlmodel.ToWorkspace(res)}, nil + return &gqlmodel.RemoveIntegrationFromWorkspacePayload{Workspace: gqlmodel.ToWorkspace(res)}, nil } // UpdateUserOfWorkspace is the resolver for the updateUserOfWorkspace field. diff --git a/server/schemas/workspace.graphql b/server/schemas/workspace.graphql index 1f7b9a8ac5..ba6083e6f9 100644 --- a/server/schemas/workspace.graphql +++ b/server/schemas/workspace.graphql @@ -59,9 +59,9 @@ input AddIntegrationToWorkspaceInput { role: Role! } -input RemoveUserFromWorkspaceInput { +input RemoveMultipleMembersFromWorkspaceInput { workspaceId: ID! - userId: ID! + userIds: [ID!]! } input RemoveIntegrationFromWorkspaceInput { @@ -99,7 +99,11 @@ type AddUsersToWorkspacePayload { workspace: Workspace! } -type RemoveMemberFromWorkspacePayload { +type RemoveIntegrationFromWorkspacePayload { + workspace: Workspace! +} + +type RemoveMultipleMembersFromWorkspacePayload { workspace: Workspace! } @@ -117,8 +121,8 @@ extend type Mutation { updateWorkspace(input: UpdateWorkspaceInput!): UpdateWorkspacePayload addUsersToWorkspace(input: AddUsersToWorkspaceInput!): AddUsersToWorkspacePayload addIntegrationToWorkspace(input: AddIntegrationToWorkspaceInput!): AddUsersToWorkspacePayload - removeUserFromWorkspace(input: RemoveUserFromWorkspaceInput!): RemoveMemberFromWorkspacePayload - removeIntegrationFromWorkspace(input: RemoveIntegrationFromWorkspaceInput!): RemoveMemberFromWorkspacePayload + removeMultipleMembersFromWorkspace(input: RemoveMultipleMembersFromWorkspaceInput!): RemoveMultipleMembersFromWorkspacePayload + removeIntegrationFromWorkspace(input: RemoveIntegrationFromWorkspaceInput!): RemoveIntegrationFromWorkspacePayload updateUserOfWorkspace(input: UpdateUserOfWorkspaceInput!): UpdateMemberOfWorkspacePayload updateIntegrationOfWorkspace(input: UpdateIntegrationOfWorkspaceInput!): UpdateMemberOfWorkspacePayload }