Skip to content

Commit 518a951

Browse files
author
nukosuke
authored
Merge pull request #281 from paoloromolini/ticket_list_options_for_tickets_from_view
add pagination and sorting options to tickets from view API
2 parents 2553cd8 + 570cf1c commit 518a951

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

zendesk/mock/client.go

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

zendesk/view.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type (
2828
ViewAPI interface {
2929
GetView(context.Context, int64) (View, error)
3030
GetViews(context.Context) ([]View, Page, error)
31-
GetTicketsFromView(context.Context, int64) ([]Ticket, error)
31+
GetTicketsFromView(context.Context, int64, *TicketListOptions) ([]Ticket, Page, error)
3232
}
3333
)
3434

@@ -75,20 +75,32 @@ func (z *Client) GetView(ctx context.Context, viewID int64) (View, error) {
7575

7676
// GetTicketsFromView gets the tickets of the specified view
7777
// ref: https://developer.zendesk.com/api-reference/ticketing/business-rules/views/#list-tickets-from-a-view
78-
func (z *Client) GetTicketsFromView(ctx context.Context, viewID int64) ([]Ticket, error) {
78+
func (z *Client) GetTicketsFromView(ctx context.Context, viewID int64, opts *TicketListOptions,
79+
) ([]Ticket, Page, error) {
7980
var result struct {
8081
Tickets []Ticket `json:"tickets"`
82+
Page
83+
}
84+
tmp := opts
85+
if tmp == nil {
86+
tmp = &TicketListOptions{}
87+
}
88+
89+
path := fmt.Sprintf("/views/%d/tickets.json", viewID)
90+
url, err := addOptions(path, tmp)
91+
if err != nil {
92+
return nil, Page{}, err
8193
}
8294

83-
body, err := z.get(ctx, fmt.Sprintf("/views/%d/tickets.json", viewID))
95+
body, err := z.get(ctx, url)
8496

8597
if err != nil {
86-
return []Ticket{}, err
98+
return []Ticket{}, Page{}, err
8799
}
88100

89101
if err := json.Unmarshal(body, &result); err != nil {
90-
return []Ticket{}, err
102+
return []Ticket{}, Page{}, err
91103
}
92104

93-
return result.Tickets, nil
105+
return result.Tickets, result.Page, nil
94106
}

0 commit comments

Comments
 (0)