litmus/chaoscenter/graphql/server/graph/chaoshub.resolvers.go

137 lines
5.6 KiB
Go

package graph
// This file will be automatically regenerated based on the schema, any resolver implementations
// will be copied through when generating and any unknown code will be moved to the end.
// Code generated by github.com/99designs/gqlgen version v0.17.42
import (
"context"
"github.com/litmuschaos/litmus/chaoscenter/graphql/server/graph/model"
"github.com/litmuschaos/litmus/chaoscenter/graphql/server/pkg/authorization"
chaosHubOps "github.com/litmuschaos/litmus/chaoscenter/graphql/server/pkg/chaoshub/ops"
)
// AddChaosHub is the resolver for the addChaosHub field.
func (r *mutationResolver) AddChaosHub(ctx context.Context, projectID string, request model.CreateChaosHubRequest) (*model.ChaosHub, error) {
if err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.AddChaosHub],
model.InvitationAccepted.String()); err != nil {
return nil, err
}
return r.chaosHubService.AddChaosHub(ctx, request, projectID)
}
// AddRemoteChaosHub is the resolver for the addRemoteChaosHub field.
func (r *mutationResolver) AddRemoteChaosHub(ctx context.Context, projectID string, request model.CreateRemoteChaosHub) (*model.ChaosHub, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.SaveChaosHub],
model.InvitationAccepted.String())
if err != nil {
return nil, err
}
return r.chaosHubService.AddRemoteChaosHub(ctx, request, projectID)
}
// SaveChaosHub is the resolver for the saveChaosHub field.
func (r *mutationResolver) SaveChaosHub(ctx context.Context, projectID string, request model.CreateChaosHubRequest) (*model.ChaosHub, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.SaveChaosHub],
model.InvitationAccepted.String())
if err != nil {
return nil, err
}
return r.chaosHubService.SaveChaosHub(ctx, request, projectID)
}
// SyncChaosHub is the resolver for the syncChaosHub field.
func (r *mutationResolver) SyncChaosHub(ctx context.Context, id string, projectID string) (string, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.UpdateChaosExperiment],
model.InvitationAccepted.String())
if err != nil {
return "", err
}
return r.chaosHubService.SyncChaosHub(ctx, id, projectID)
}
// GenerateSSHKey is the resolver for the generateSSHKey field.
func (r *mutationResolver) GenerateSSHKey(ctx context.Context) (*model.SSHKey, error) {
publicKey, privateKey, err := chaosHubOps.GenerateKeys()
if err != nil {
return nil, err
}
return &model.SSHKey{
PrivateKey: privateKey,
PublicKey: publicKey,
}, nil
}
// UpdateChaosHub is the resolver for the updateChaosHub field.
func (r *mutationResolver) UpdateChaosHub(ctx context.Context, projectID string, request model.UpdateChaosHubRequest) (*model.ChaosHub, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.UpdateChaosHub],
model.InvitationAccepted.String())
if err != nil {
return nil, err
}
return r.chaosHubService.UpdateChaosHub(ctx, request, projectID)
}
// DeleteChaosHub is the resolver for the deleteChaosHub field.
func (r *mutationResolver) DeleteChaosHub(ctx context.Context, projectID string, hubID string) (bool, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.DeleteChaosHub],
model.InvitationAccepted.String())
if err != nil {
return false, err
}
return r.chaosHubService.DeleteChaosHub(ctx, hubID, projectID)
}
// ListChaosFaults is the resolver for the listChaosFaults field.
func (r *queryResolver) ListChaosFaults(ctx context.Context, hubID string, projectID string) ([]*model.Chart, error) {
err := authorization.ValidateRole(ctx, projectID,
authorization.MutationRbacRules[authorization.ListCharts],
model.InvitationAccepted.String())
if err != nil {
return nil, err
}
return r.chaosHubService.ListChaosFaults(ctx, hubID, projectID)
}
// GetChaosFault is the resolver for the getChaosFault field.
func (r *queryResolver) GetChaosFault(ctx context.Context, projectID string, request model.ExperimentRequest) (*model.FaultDetails, error) {
return r.chaosHubService.GetChaosFault(ctx, request, projectID)
}
// ListChaosHub is the resolver for the listChaosHub field.
func (r *queryResolver) ListChaosHub(ctx context.Context, projectID string, request *model.ListChaosHubRequest) ([]*model.ChaosHubStatus, error) {
return r.chaosHubService.ListChaosHubs(ctx, projectID, request)
}
// GetChaosHub is the resolver for the getChaosHub field.
func (r *queryResolver) GetChaosHub(ctx context.Context, projectID string, chaosHubID string) (*model.ChaosHubStatus, error) {
return r.chaosHubService.GetChaosHub(ctx, chaosHubID, projectID)
}
// ListPredefinedExperiments is the resolver for the listPredefinedExperiments field.
func (r *queryResolver) ListPredefinedExperiments(ctx context.Context, hubID string, projectID string) ([]*model.PredefinedExperimentList, error) {
return r.chaosHubService.ListPredefinedExperiments(ctx, hubID, projectID)
}
// GetPredefinedExperiment is the resolver for the getPredefinedExperiment field.
func (r *queryResolver) GetPredefinedExperiment(ctx context.Context, hubID string, experimentName []string, projectID string) ([]*model.PredefinedExperimentList, error) {
return r.chaosHubService.GetPredefinedExperiment(ctx, hubID, experimentName, projectID)
}
// GetChaosHubStats is the resolver for the getChaosHubStats field.
func (r *queryResolver) GetChaosHubStats(ctx context.Context, projectID string) (*model.GetChaosHubStatsResponse, error) {
return r.chaosHubService.GetChaosHubStats(ctx, projectID)
}