(ctx context.Context, cli *cli, numRequested int, filter string)
| 217 | } |
| 218 | |
| 219 | func getLatestLogs(ctx context.Context, cli *cli, numRequested int, filter string) ([]*management.Log, error) { |
| 220 | page := 0 |
| 221 | logs := []*management.Log{} |
| 222 | |
| 223 | for { |
| 224 | perPage := logsPerPageLimit |
| 225 | if numRequested < (page+1)*logsPerPageLimit { |
| 226 | perPage = numRequested % logsPerPageLimit |
| 227 | } |
| 228 | |
| 229 | queryParams := []management.RequestOption{ |
| 230 | management.Parameter("sort", "date:-1"), |
| 231 | management.Parameter("page", fmt.Sprintf("%d", page)), |
| 232 | management.Parameter("per_page", fmt.Sprintf("%d", perPage))} |
| 233 | |
| 234 | if filter != "" { |
| 235 | queryParams = append(queryParams, management.Query(filter)) |
| 236 | } |
| 237 | |
| 238 | res, err := cli.api.Log.List(ctx, queryParams...) |
| 239 | if err != nil { |
| 240 | return nil, err |
| 241 | } |
| 242 | logs = append(logs, res...) |
| 243 | |
| 244 | page++ |
| 245 | if page == 10 || (page*logsPerPageLimit) >= numRequested { |
| 246 | break |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | return logs, nil |
| 251 | } |
| 252 | |
| 253 | func dedupeLogs(list []*management.Log, set map[string]struct{}) []*management.Log { |
| 254 | res := make([]*management.Log, 0, len(list)) |
no test coverage detected