ParseTaskInboxQuery parses the shared task inbox query parameters.
(c *gin.Context)
| 339 | |
| 340 | // ParseTaskInboxQuery parses the shared task inbox query parameters. |
| 341 | func ParseTaskInboxQuery(c *gin.Context) (contract.TaskInboxQuery, error) { |
| 342 | unread, err := ParseOptionalBool(c.Query("unread")) |
| 343 | if err != nil { |
| 344 | return contract.TaskInboxQuery{}, NewTaskValidationError(err) |
| 345 | } |
| 346 | limit, err := ParseOptionalInt(c.Query("limit")) |
| 347 | if err != nil { |
| 348 | return contract.TaskInboxQuery{}, NewTaskValidationError(err) |
| 349 | } |
| 350 | |
| 351 | query := contract.TaskInboxQuery{ |
| 352 | Scope: taskpkg.Scope(strings.TrimSpace(c.Query("scope"))).Normalize(), |
| 353 | Workspace: strings.TrimSpace(c.Query("workspace")), |
| 354 | OwnerKind: taskpkg.OwnerKind(strings.TrimSpace(c.Query("owner_kind"))).Normalize(), |
| 355 | OwnerRef: strings.TrimSpace(c.Query("owner_ref")), |
| 356 | Lane: contract.TaskInboxLane(strings.TrimSpace(strings.ToLower(c.Query("lane")))), |
| 357 | Unread: unread, |
| 358 | Query: strings.TrimSpace(c.Query("query")), |
| 359 | Limit: limit, |
| 360 | } |
| 361 | if err := validateParsedTaskInboxQuery(query); err != nil { |
| 362 | return contract.TaskInboxQuery{}, err |
| 363 | } |
| 364 | return query, nil |
| 365 | } |
| 366 | |
| 367 | func validateParsedTaskListQuery(query contract.TaskListQuery) error { |
| 368 | if err := validateOptionalTaskScope(query.Scope, "task_query.scope"); err != nil { |