Skip to content

Commit e34d140

Browse files
committed
Remove & Rename TrackedTimes list functions (#467)
Start Migration Guide rm GetUserTrackedTimes() add options to GetRepoTrackedTimes Dedub Code & total refactor rename ListTrackedTimes -> ListIssueTrackedTimes add jsonHeader on all tt func Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/467 Reviewed-by: Norwin <[email protected]> Reviewed-by: Lunny Xiao <[email protected]> Co-Authored-By: 6543 <[email protected]> Co-Committed-By: 6543 <[email protected]>
1 parent 7ddbf1a commit e34d140

File tree

2 files changed

+68
-20
lines changed

2 files changed

+68
-20
lines changed

docs/migrate-v0.13-to-v0.14.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Migration Guide: v0.13 to v0.14
2+
3+
v0.14.0 introduces a number of breaking changes, throu it should not be hard to migrate.
4+
Just follow this guid and if issues still ocure ask for help on discord or
5+
feel free to create an issue.
6+
7+
<!-- toc -->
8+
9+
- [Removed Functions (#467)](#Removed-Functions)
10+
- [Renamed Functions (#467)](#Renamed-Functions)
11+
12+
<!-- tocstop -->
13+
14+
## Removed Functions
15+
16+
- for **GetUserTrackedTimes** and **GetRepoTrackedTimes** use **ListRepoTrackedTimes** with specific options set
17+
18+
Pulls:
19+
- [#467 Remove GetUserTrackedTimes](https://gitea.com/gitea/go-sdk/pulls/467)
20+
21+
22+
## Renamed Functions
23+
24+
- **ListTrackedTimes** is now **ListIssueTrackedTimes**
25+
26+
Pulls:
27+
- [#467 Remove & Rename TrackedTimes list functions](https://gitea.com/gitea/go-sdk/pulls/467)

gitea/issue_tracked_time.go

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"bytes"
99
"encoding/json"
1010
"fmt"
11+
"net/url"
1112
"time"
1213
)
1314

@@ -25,24 +26,47 @@ type TrackedTime struct {
2526
Issue *Issue `json:"issue"`
2627
}
2728

28-
// GetUserTrackedTimes list tracked times of a user
29-
func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, *Response, error) {
30-
times := make([]*TrackedTime, 0, 10)
31-
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/times/%s", owner, repo, user), nil, nil, &times)
32-
return times, resp, err
29+
// ListTrackedTimesOptions options for listing repository's tracked times
30+
type ListTrackedTimesOptions struct {
31+
ListOptions
32+
Since time.Time
33+
Before time.Time
34+
// User filter is only used by ListRepoTrackedTimes !!!
35+
User string
3336
}
3437

35-
// GetRepoTrackedTimes list tracked times of a repository
36-
func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Response, error) {
37-
times := make([]*TrackedTime, 0, 10)
38-
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/times", owner, repo), nil, nil, &times)
38+
// QueryEncode turns options into querystring argument
39+
func (opt *ListTrackedTimesOptions) QueryEncode() string {
40+
query := opt.getURLQuery()
41+
42+
if !opt.Since.IsZero() {
43+
query.Add("since", opt.Since.Format(time.RFC3339))
44+
}
45+
if !opt.Before.IsZero() {
46+
query.Add("before", opt.Before.Format(time.RFC3339))
47+
}
48+
49+
if len(opt.User) != 0 {
50+
query.Add("user", opt.User)
51+
}
52+
53+
return query.Encode()
54+
}
55+
56+
// ListRepoTrackedTimes list tracked times of a repository
57+
func (c *Client) ListRepoTrackedTimes(owner, repo string, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
58+
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/times", owner, repo))
59+
opt.setDefaults()
60+
link.RawQuery = opt.QueryEncode()
61+
times := make([]*TrackedTime, 0, opt.PageSize)
62+
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &times)
3963
return times, resp, err
4064
}
4165

4266
// GetMyTrackedTimes list tracked times of the current user
4367
func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, *Response, error) {
4468
times := make([]*TrackedTime, 0, 10)
45-
resp, err := c.getParsedResponse("GET", "/user/times", nil, nil, &times)
69+
resp, err := c.getParsedResponse("GET", "/user/times", jsonHeader, nil, &times)
4670
return times, resp, err
4771
}
4872

@@ -80,27 +104,24 @@ func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*T
80104
return t, resp, err
81105
}
82106

83-
// ListTrackedTimesOptions options for listing repository's tracked times
84-
type ListTrackedTimesOptions struct {
85-
ListOptions
86-
}
87-
88-
// ListTrackedTimes list tracked times of a single issue for a given repository
89-
func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
107+
// ListIssueTrackedTimes list tracked times of a single issue for a given repository
108+
func (c *Client) ListIssueTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
109+
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index))
90110
opt.setDefaults()
111+
link.RawQuery = opt.QueryEncode()
91112
times := make([]*TrackedTime, 0, opt.PageSize)
92-
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/times?%s", owner, repo, index, opt.getURLQuery().Encode()), nil, nil, &times)
113+
resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &times)
93114
return times, resp, err
94115
}
95116

96117
// ResetIssueTime reset tracked time of a single issue for a given repository
97118
func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, error) {
98-
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil)
119+
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), jsonHeader, nil)
99120
return resp, err
100121
}
101122

102123
// DeleteTime delete a specific tracked time by id of a single issue for a given repository
103124
func (c *Client) DeleteTime(owner, repo string, index, timeID int64) (*Response, error) {
104-
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), nil, nil)
125+
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), jsonHeader, nil)
105126
return resp, err
106127
}

0 commit comments

Comments
 (0)