| 1371 | } |
| 1372 | |
| 1373 | func taskInboxPayloadFromView(view observepkg.TaskInboxView) apicontract.TaskInboxPayload { |
| 1374 | payload := apicontract.TaskInboxPayload{ |
| 1375 | Total: view.Total, |
| 1376 | UnreadTotal: view.UnreadTotal, |
| 1377 | ArchivedTotal: view.ArchivedTotal, |
| 1378 | } |
| 1379 | if len(view.Groups) == 0 { |
| 1380 | return payload |
| 1381 | } |
| 1382 | |
| 1383 | payload.Groups = make([]apicontract.TaskInboxLaneGroupPayload, 0, len(view.Groups)) |
| 1384 | for _, group := range view.Groups { |
| 1385 | groupPayload := apicontract.TaskInboxLaneGroupPayload{ |
| 1386 | Lane: apicontract.TaskInboxLane(group.Lane), |
| 1387 | Count: group.Count, |
| 1388 | UnreadCount: group.UnreadCount, |
| 1389 | } |
| 1390 | if len(group.Items) > 0 { |
| 1391 | groupPayload.Items = make([]apicontract.TaskInboxItemPayload, 0, len(group.Items)) |
| 1392 | for _, item := range group.Items { |
| 1393 | groupPayload.Items = append(groupPayload.Items, apicontract.TaskInboxItemPayload{ |
| 1394 | Task: taskReferencePayloadFromReference(item.Task), |
| 1395 | Lane: apicontract.TaskInboxLane(item.Lane), |
| 1396 | ApprovalPolicy: item.ApprovalPolicy, |
| 1397 | ApprovalState: item.ApprovalState, |
| 1398 | BlockingReason: item.BlockingReason, |
| 1399 | LatestActivityAt: item.LatestActivityAt, |
| 1400 | Run: taskRunSummaryPayloadFromSummary(item.Run), |
| 1401 | Triage: taskTriageStatePayloadFromState(item.Triage), |
| 1402 | }) |
| 1403 | } |
| 1404 | } |
| 1405 | payload.Groups = append(payload.Groups, groupPayload) |
| 1406 | } |
| 1407 | return payload |
| 1408 | } |
| 1409 | |
| 1410 | func taskTriageStatePayloadFromState(state taskpkg.TriageState) apicontract.TaskTriageStatePayload { |
| 1411 | return apicontract.TaskTriageStatePayload{ |