Skip to content

Auto populate pagination params on variables #538

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ func (customActionsTriggerDefinition *CustomActionsTriggerDefinition) ExtendedTe
if customActionsTriggerDefinition.Id == "" {
return nil, fmt.Errorf("unable to get teams with ExtendedTeamAccess, invalid CustomActionsTriggerDefinition id: '%s'", customActionsTriggerDefinition.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["input"] = *NewIdentifier(string(customActionsTriggerDefinition.Id))

if err := client.Query(&q, *variables, WithName("ExtendedTeamAccessList")); err != nil {
Expand Down Expand Up @@ -96,9 +95,8 @@ func (client *Client) ListCustomActions(variables *PayloadVariables) (*CustomAct
Actions CustomActionsExternalActionsConnection `graphql:"customActionsExternalActions(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("ExternalActionList")); err != nil {
return nil, err
}
Expand Down Expand Up @@ -175,9 +173,8 @@ func (client *Client) ListTriggerDefinitions(variables *PayloadVariables) (*Cust
Definitions CustomActionsTriggerDefinitionsConnection `graphql:"customActionsTriggerDefinitions(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("TriggerDefinitionList")); err != nil {
return nil, HandleErrors(err)
}
Expand Down
5 changes: 2 additions & 3 deletions category.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,8 @@ func (client *Client) ListCategories(variables *PayloadVariables) (*CategoryConn
}
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("CategoryList")); err != nil {
return nil, err
}
Expand Down
5 changes: 2 additions & 3 deletions check.go
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,8 @@ func (client *Client) ListChecks(variables *PayloadVariables) (*CheckConnection,
}
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("CheckList")); err != nil {
return nil, err
}
Expand Down
8 changes: 8 additions & 0 deletions clientGQL.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,11 @@ func (client *Client) Validate() error {
func WithName(name string) graphql.Option {
return graphql.OperationName(name)
}

func (client *Client) PopulatePaginationParams(variables *PayloadVariables) *PayloadVariables {
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

return (*PayloadVariables)(MergeMaps((*variables), client.InitialPageVariables()))
}
16 changes: 16 additions & 0 deletions common.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,19 @@ func extractAliases(existingAliases, aliasesWanted []string) ([]string, []string
type Connection interface {
GetNodes() any
}

func MergeMaps(map1, map2 map[string]any) *map[string]any {
merged := make(map[string]any)

for key, value := range map1 {
merged[key] = value
}

for key, value := range map2 {
if _, present := merged[key]; !present {
merged[key] = value
}
}

return &merged
}
10 changes: 4 additions & 6 deletions component.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,8 @@ func (s *ComponentType) GetProperties(client *Client, v *PayloadVariables) (*Pro
if s.Id == "" {
return nil, fmt.Errorf("unable to get properties, invalid id: '%s'", s.Id)
}
if v == nil {
v = client.InitialPageVariablesPointer()
}

v = client.PopulatePaginationParams(v)
(*v)["input"] = *NewIdentifier(string(s.Id))
if err := client.Query(&q, *v, WithName("ComponentTypePropertyList")); err != nil {
return nil, err
Expand Down Expand Up @@ -90,9 +89,8 @@ func (client *Client) ListComponentTypes(variables *PayloadVariables) (*Componen
ComponentTypes ComponentTypeConnection `graphql:"componentTypes(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("ComponentTypeList")); err != nil {
return nil, err
}
Expand Down
10 changes: 4 additions & 6 deletions dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,8 @@ func (service *Service) GetDependencies(client *Client, variables *PayloadVariab
if service.Id == "" {
return nil, fmt.Errorf("unable to get Dependencies, invalid service id: '%s'", service.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["service"] = service.Id
if err := client.Query(&q, *variables, WithName("ServiceDependenciesList")); err != nil {
return nil, err
Expand Down Expand Up @@ -88,9 +87,8 @@ func (service *Service) GetDependents(client *Client, variables *PayloadVariable
if service.Id == "" {
return nil, fmt.Errorf("unable to get Dependents, invalid service id: '%s'", service.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["service"] = service.Id
if err := client.Query(&q, *variables, WithName("ServiceDependentsList")); err != nil {
return nil, err
Expand Down
4 changes: 1 addition & 3 deletions document.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ func (client *Client) ListDocuments(variables *PayloadVariables) (*ServiceDocume
}
}

if variables == nil {
variables = client.InitialPageVariablesPointer()
}
variables = client.PopulatePaginationParams(variables)

if (*variables)["searchTerm"] == nil {
(*variables)["searchTerm"] = ""
Expand Down
14 changes: 5 additions & 9 deletions domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,8 @@ func (domainId *DomainId) GetTags(client *Client, variables *PayloadVariables) (
if domainId.Id == "" {
return nil, fmt.Errorf("unable to get Tags, invalid domain id: '%s'", domainId.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["domain"] = *NewIdentifier(string(domainId.Id))

if err := client.Query(&q, *variables, WithName("DomainTagsList")); err != nil {
Expand Down Expand Up @@ -109,10 +108,8 @@ func (domainId *DomainId) ChildSystems(client *Client, variables *PayloadVariabl
if domainId.Id == "" {
return nil, fmt.Errorf("unable to get Systems, invalid domain id: '%s'", domainId.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["domain"] = *NewIdentifier(string(domainId.Id))

if err := client.Query(&q, *variables, WithName("DomainChildSystemsList")); err != nil {
Expand Down Expand Up @@ -173,9 +170,8 @@ func (client *Client) ListDomains(variables *PayloadVariables) (*DomainConnectio
Domains DomainConnection `graphql:"domains(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("DomainsList")); err != nil {
return nil, err
}
Expand Down
5 changes: 2 additions & 3 deletions filters.go
Original file line number Diff line number Diff line change
Expand Up @@ -226,9 +226,8 @@ func (client *Client) ListFilters(variables *PayloadVariables) (*FilterConnectio
Filters FilterConnection `graphql:"filters(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("FilterList")); err != nil {
return nil, err
}
Expand Down
10 changes: 4 additions & 6 deletions infra.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,8 @@ func (infrastructureResource *InfrastructureResource) GetTags(client *Client, va
if infrastructureResource.Id == "" {
return nil, fmt.Errorf("unable to get Tags, invalid InfrastructureResource id: '%s'", infrastructureResource.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["infrastructureResource"] = *NewIdentifier(string(infrastructureResource.Id))

if err := client.Query(&q, *variables, WithName("InfrastructureResourceTags")); err != nil {
Expand Down Expand Up @@ -180,9 +179,8 @@ func (client *Client) ListInfrastructureSchemas(variables *PayloadVariables) (*I
InfrastructureResourceSchemas InfrastructureResourceSchemaConnection `graphql:"infrastructureResourceSchemas(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("InfrastructureResourceSchemaList")); err != nil {
return nil, err
}
Expand Down
5 changes: 2 additions & 3 deletions integration.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,8 @@ func (client *Client) ListIntegrations(variables *PayloadVariables) (*Integratio
Integrations IntegrationConnection `graphql:"integrations(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("IntegrationList")); err != nil {
return nil, err
}
Expand Down
5 changes: 2 additions & 3 deletions maturity.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,8 @@ func (client *Client) ListServicesMaturity(variables *PayloadVariables) (*Servic
Services ServiceMaturityConnection `graphql:"services(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("ServiceMaturityList")); err != nil {
return nil, err
}
Expand Down
10 changes: 4 additions & 6 deletions property.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,8 @@ func (client *Client) ListPropertyDefinitions(variables *PayloadVariables) (*Pro
Definitions PropertyDefinitionConnection `graphql:"propertyDefinitions(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("PropertyDefinitionList")); err != nil {
return nil, err
}
Expand Down Expand Up @@ -166,9 +165,8 @@ func (service *Service) GetProperties(client *Client, variables *PayloadVariable
if service.Id == "" {
return nil, fmt.Errorf("unable to get properties, invalid Service id: '%s'", service.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["service"] = service.Id
if err := client.Query(&q, *variables, WithName("ServicePropertiesList")); err != nil {
return nil, err
Expand Down
15 changes: 6 additions & 9 deletions repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,8 @@ func (repository *Repository) GetServices(client *Client, variables *PayloadVari
if repository.Id == "" {
return nil, fmt.Errorf("unable to get Services, invalid repository id: '%s'", repository.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["id"] = repository.Id
if err := client.Query(&q, *variables, WithName("RepositoryServicesList")); err != nil {
return nil, err
Expand Down Expand Up @@ -162,9 +161,8 @@ func (repository *Repository) GetTags(client *Client, variables *PayloadVariable
if repository.Id == "" {
return nil, fmt.Errorf("unable to get Tags, invalid repository id: '%s'", repository.Id)
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["id"] = repository.Id
if err := client.Query(&q, *variables, WithName("RepositoryTagsList")); err != nil {
return nil, err
Expand Down Expand Up @@ -285,9 +283,8 @@ func (client *Client) ListRepositoriesWithTier(tier string, variables *PayloadVa
Repositories RepositoryConnection `graphql:"repositories(tierAlias: $tier, after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["tier"] = tier
if err := client.Query(&q, *variables, WithName("RepositoryListWithTier")); err != nil {
return &q.Account.Repositories, err
Expand Down
10 changes: 4 additions & 6 deletions scorecards.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,8 @@ func (scorecard *Scorecard) ListCategories(client *Client, variables *PayloadVar
} `graphql:"scorecard(input: $scorecard)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
(*variables)["scorecard"] = *NewIdentifier(string(scorecard.Id))
if err := client.Query(&q, *variables, WithName("ScorecardCategoryList")); err != nil {
return nil, err
Expand Down Expand Up @@ -116,9 +115,8 @@ func (client *Client) ListScorecards(variables *PayloadVariables) (*ScorecardCon
Scorecards ScorecardConnection `graphql:"scorecards(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("ScorecardsList")); err != nil {
return nil, err
}
Expand Down
5 changes: 2 additions & 3 deletions secrets.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ func (client *Client) ListSecretsVaultsSecret(variables *PayloadVariables) (*Sec
SecretsVaultsSecrets SecretsVaultsSecretConnection `graphql:"secretsVaultsSecrets(after: $after, first: $first)"`
}
}
if variables == nil {
variables = client.InitialPageVariablesPointer()
}

variables = client.PopulatePaginationParams(variables)
if err := client.Query(&q, *variables, WithName("SecretList")); err != nil {
return nil, err
}
Expand Down
Loading
Loading