multiple content per fetcher
This commit is contained in:
@@ -22,34 +22,37 @@ func (f *RedmineFetcher) Name() string {
|
||||
}
|
||||
|
||||
func (f *RedmineFetcher) Fetch() []Entry {
|
||||
var entries []Entry
|
||||
path := fmt.Sprintf("/issues.json?limit=%d&sort=updated_on:desc", f.ContentLimit)
|
||||
req := FetcherRequest{
|
||||
BaseURL: f.BaseURL,
|
||||
Path: "/issues.json?limit=1&sort=updated_on:desc",
|
||||
Path: path,
|
||||
Method: http.MethodGet,
|
||||
Headers: map[string]string{
|
||||
"X-Redmine-API-Key": f.Token,
|
||||
},
|
||||
}
|
||||
|
||||
var resp RedmineResponse
|
||||
if err := req.Run(&resp); err != nil {
|
||||
var response RedmineResponse
|
||||
if err := req.Run(&response); err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if len(resp.Issues) == 0 {
|
||||
if len(response.Issues) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
issue := resp.Issues[0]
|
||||
entry := f.TryCreateEntry(
|
||||
"redmine",
|
||||
issue.UpdatedOn,
|
||||
fmt.Sprintf("🎫 [%s] - #%d %s", f.Name(), issue.ID, issue.Subject),
|
||||
fmt.Sprintf("%s/issues/%d", f.BaseURL, issue.ID),
|
||||
)
|
||||
|
||||
if entry != nil {
|
||||
return []Entry{*entry}
|
||||
for _, content := range response.Issues {
|
||||
entry := f.TryCreateEntry(
|
||||
fmt.Sprintf("redmine_%d", content.ID),
|
||||
content.UpdatedOn,
|
||||
fmt.Sprintf("🎫 [%s] - #%d %s", f.Name(), content.ID, content.Subject),
|
||||
fmt.Sprintf("%s/issues/%d", f.BaseURL, content.ID),
|
||||
)
|
||||
if entry != nil {
|
||||
entries = append(entries, *entry)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
return entries
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user