|
28 | 28 | ViewAPI interface {
|
29 | 29 | GetView(context.Context, int64) (View, error)
|
30 | 30 | GetViews(context.Context) ([]View, Page, error)
|
31 |
| - GetTicketsFromView(context.Context, int64) ([]Ticket, error) |
| 31 | + GetTicketsFromView(context.Context, int64, *TicketListOptions) ([]Ticket, Page, error) |
32 | 32 | }
|
33 | 33 | )
|
34 | 34 |
|
@@ -75,20 +75,32 @@ func (z *Client) GetView(ctx context.Context, viewID int64) (View, error) {
|
75 | 75 |
|
76 | 76 | // GetTicketsFromView gets the tickets of the specified view
|
77 | 77 | // 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) { |
79 | 80 | var result struct {
|
80 | 81 | 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 |
81 | 93 | }
|
82 | 94 |
|
83 |
| - body, err := z.get(ctx, fmt.Sprintf("/views/%d/tickets.json", viewID)) |
| 95 | + body, err := z.get(ctx, url) |
84 | 96 |
|
85 | 97 | if err != nil {
|
86 |
| - return []Ticket{}, err |
| 98 | + return []Ticket{}, Page{}, err |
87 | 99 | }
|
88 | 100 |
|
89 | 101 | if err := json.Unmarshal(body, &result); err != nil {
|
90 |
| - return []Ticket{}, err |
| 102 | + return []Ticket{}, Page{}, err |
91 | 103 | }
|
92 | 104 |
|
93 |
| - return result.Tickets, nil |
| 105 | + return result.Tickets, result.Page, nil |
94 | 106 | }
|
0 commit comments