From 8bc1dae8ca5f9ce5f3542d9d9c29c3da1e3ee721 Mon Sep 17 00:00:00 2001 From: dobarx Date: Fri, 8 Nov 2024 09:20:38 +0200 Subject: [PATCH] improve dataspec usage --- .../atlassian/data-sources/jira_issues.md | 2 +- internal/atlassian/data_jira_issues.go | 24 +++++++------------ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/plugins/atlassian/data-sources/jira_issues.md b/docs/plugins/atlassian/data-sources/jira_issues.md index ce6dd29e..8ed5dbb3 100644 --- a/docs/plugins/atlassian/data-sources/jira_issues.md +++ b/docs/plugins/atlassian/data-sources/jira_issues.md @@ -102,7 +102,7 @@ data jira_issues { # Optional list of string. # Must have a length of at most 5 # Default value: - properties = null + properties = [] # Size limit to retrieve. # diff --git a/internal/atlassian/data_jira_issues.go b/internal/atlassian/data_jira_issues.go index e42b1d7e..e3a76fde 100644 --- a/internal/atlassian/data_jira_issues.go +++ b/internal/atlassian/data_jira_issues.go @@ -2,7 +2,6 @@ package atlassian import ( "context" - "fmt" "github.com/hashicorp/hcl/v2" "github.com/zclconf/go-cty/cty" @@ -76,6 +75,7 @@ func makeJiraIssuesDataSource(loader ClientLoadFn) *plugin.DataSource { Type: cty.List(cty.String), Doc: "A list of up to 5 issue properties to include in the results.", MaxInclusive: cty.NumberIntVal(5), + DefaultVal: cty.ListValEmpty(cty.String), }, { Name: "size", @@ -106,11 +106,10 @@ func searchJiraIssuesData(loader ClientLoadFn) plugin.RetrieveDataFunc { Summary: "Failed to parse arguments", }} } - size := 0 - if attr := params.Args.GetAttrVal("size"); !attr.IsNull() { - num, _ := attr.AsBigFloat().Int64() - size = int(num) - } + + num, _ := params.Args.GetAttrVal("size").AsBigFloat().Int64() + size := int(num) + var issues plugindata.List for { res, err := cli.SearchIssues(ctx, req) @@ -140,9 +139,6 @@ func searchJiraIssuesData(loader ClientLoadFn) plugin.RetrieveDataFunc { } func parseSearchIssuesReq(args *dataspec.Block) (*client.SearchIssuesReq, error) { - if args == nil { - return nil, fmt.Errorf("arguments are required") - } req := &client.SearchIssuesReq{} if attr := args.GetAttrVal("expand"); !attr.IsNull() { req.Expand = client.String(attr.AsString()) @@ -158,13 +154,11 @@ func parseSearchIssuesReq(args *dataspec.Block) (*client.SearchIssuesReq, error) req.Fields = append(req.Fields, field.AsString()) } } - if attr := args.GetAttrVal("properties"); !attr.IsNull() { - for _, property := range attr.AsValueSlice() { - if property.IsNull() { - continue - } - req.Properties = append(req.Properties, property.AsString()) + for _, property := range args.GetAttrVal("properties").AsValueSlice() { + if property.IsNull() { + continue } + req.Properties = append(req.Properties, property.AsString()) } return req, nil }