From 1a66d732e22607f138ba4a7e37fce1c4649ee456 Mon Sep 17 00:00:00 2001 From: mk-5 Date: Tue, 6 Feb 2024 23:09:07 +0100 Subject: [PATCH] fix(#109): use appropriate filters api url for Jira Cloud instances --- README.md | 2 +- internal/jira/jira_filters.go | 11 ++++++++--- internal/jira/jira_filters_test.go | 14 ++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f6746f3..0949c0d 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,7 @@ fjira jql ## My Jira Filters -You can search using your stored Jira Filters: +You can search using your stored (favourites) Jira Filters: ```shell fjira filters diff --git a/internal/jira/jira_filters.go b/internal/jira/jira_filters.go index 4917776..90b6478 100644 --- a/internal/jira/jira_filters.go +++ b/internal/jira/jira_filters.go @@ -13,8 +13,9 @@ type Filter struct { } const ( - FilterUrl = "/rest/api/2/filter/%s" - MyFilterUrl = "/rest/api/2/filter/my" + FilterUrl = "/rest/api/2/filter/%s" + MyFilterUrl = "/rest/api/2/filter/my" + MyFilterUrlJiraServer = "/rest/api/2/filter/favourite" ) func (api *httpApi) GetFilter(filterId string) (*Filter, error) { @@ -31,7 +32,11 @@ func (api *httpApi) GetFilter(filterId string) (*Filter, error) { } func (api *httpApi) GetMyFilters() ([]Filter, error) { - resultBytes, err := api.jiraRequest("GET", MyFilterUrl, &nilParams{}, nil) + url := MyFilterUrl + if api.IsJiraServer() { + url = MyFilterUrlJiraServer + } + resultBytes, err := api.jiraRequest("GET", url, &nilParams{}, nil) if err != nil { return nil, err } diff --git a/internal/jira/jira_filters_test.go b/internal/jira/jira_filters_test.go index d07f664..1fceb06 100644 --- a/internal/jira/jira_filters_test.go +++ b/internal/jira/jira_filters_test.go @@ -8,15 +8,17 @@ import ( func Test_httpApi_GetFilter(t *testing.T) { tests := []struct { - name string - want *Filter - wantErr bool + name string + want *Filter + tokenType JiraTokenType + wantErr bool }{ - {"should get filter", &Filter{Name: "Filter for FJIR board"}, false}, + {"should get filter", &Filter{Name: "Filter for FJIR board"}, ApiToken, false}, + {"should get filter", &Filter{Name: "Filter for FJIR board"}, PersonalToken, false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - api := NewJiraApiMock(func(w http.ResponseWriter, r *http.Request) { + api := NewJiraApiMockWithTokenType(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) body := ` { @@ -85,7 +87,7 @@ func Test_httpApi_GetFilter(t *testing.T) { } ` w.Write([]byte(body)) //nolint:errcheck - }) + }, tt.tokenType) got, err := api.GetFilter("10006") if (err != nil) != tt.wantErr { t.Errorf("GetFilter() error = %v, wantErr %v", err, tt.wantErr)