From 61afd2a6a7d1bcd55ea13b61e4587d929ae67f34 Mon Sep 17 00:00:00 2001 From: Marco Dinis Date: Wed, 5 Mar 2025 14:11:25 +0000 Subject: [PATCH] [v17] ListUserTasks WebAPI: include issue type title (#52786) * ListUserTasks WebAPI: include issue type title * Update lib/web/ui/usertask.go Co-authored-by: STeve (Xin) Huang * Update lib/web/ui/usertask.go Co-authored-by: Edoardo Spadolini --------- Co-authored-by: STeve (Xin) Huang Co-authored-by: Edoardo Spadolini --- lib/web/ui/usertask.go | 31 ++++++++++++++++++++++--------- lib/web/usertasks_test.go | 1 + 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/lib/web/ui/usertask.go b/lib/web/ui/usertask.go index 2bd89da5c322c..8dc796390bc13 100644 --- a/lib/web/ui/usertask.go +++ b/lib/web/ui/usertask.go @@ -39,6 +39,8 @@ type UserTask struct { State string `json:"state,omitempty"` // IssueType identifies this task's issue type. IssueType string `json:"issueType,omitempty"` + // Title is the issue title. + Title string `json:"title,omitempty"` // Integration is the Integration Name this User Task refers to. Integration string `json:"integration,omitempty"` // LastStateChange indicates when the current's user task state was last changed. @@ -49,8 +51,6 @@ type UserTask struct { type UserTaskDetail struct { // UserTask has the basic fields that all tasks include. UserTask - // Title is the issue title. - Title string `json:"title,omitempty"` // Description is a markdown document that explains the issue and how to fix it. Description string `json:"description,omitempty"` // DiscoverEC2 contains the task details for the DiscoverEC2 tasks. @@ -99,30 +99,25 @@ func MakeUserTasks(uts []*usertasksv1.UserTask) []UserTask { // MakeDetailedUserTask creates a UI UserTask representation containing all the details. func MakeDetailedUserTask(ut *usertasksv1.UserTask) UserTaskDetail { - var title string - var description string - var discoverEC2 *usertasks.UserTaskDiscoverEC2WithURLs var discoverEKS *usertasks.UserTaskDiscoverEKSWithURLs var discoverRDS *usertasks.UserTaskDiscoverRDSWithURLs switch ut.GetSpec().GetTaskType() { case apiusertasks.TaskTypeDiscoverEC2: - title, description = usertasks.DescriptionForDiscoverEC2Issue(ut.GetSpec().GetIssueType()) discoverEC2 = usertasks.EC2InstancesWithURLs(ut) case apiusertasks.TaskTypeDiscoverEKS: - title, description = usertasks.DescriptionForDiscoverEKSIssue(ut.GetSpec().GetIssueType()) discoverEKS = usertasks.EKSClustersWithURLs(ut) case apiusertasks.TaskTypeDiscoverRDS: - title, description = usertasks.DescriptionForDiscoverRDSIssue(ut.GetSpec().GetIssueType()) discoverRDS = usertasks.RDSDatabasesWithURLs(ut) } + _, description := userTaskTitleAndDescription(ut) + return UserTaskDetail{ UserTask: MakeUserTask(ut), - Title: title, Description: description, DiscoverEC2: discoverEC2, DiscoverEKS: discoverEKS, @@ -130,13 +125,31 @@ func MakeDetailedUserTask(ut *usertasksv1.UserTask) UserTaskDetail { } } +func userTaskTitleAndDescription(ut *usertasksv1.UserTask) (string, string) { + switch ut.GetSpec().GetTaskType() { + case apiusertasks.TaskTypeDiscoverEC2: + return usertasks.DescriptionForDiscoverEC2Issue(ut.GetSpec().GetIssueType()) + + case apiusertasks.TaskTypeDiscoverEKS: + return usertasks.DescriptionForDiscoverEKSIssue(ut.GetSpec().GetIssueType()) + + case apiusertasks.TaskTypeDiscoverRDS: + return usertasks.DescriptionForDiscoverRDSIssue(ut.GetSpec().GetIssueType()) + + default: + return "", "" + } +} + // MakeUserTask creates a UI UserTask representation. func MakeUserTask(ut *usertasksv1.UserTask) UserTask { + title, _ := userTaskTitleAndDescription(ut) return UserTask{ Name: ut.GetMetadata().GetName(), TaskType: ut.GetSpec().GetTaskType(), State: ut.GetSpec().GetState(), IssueType: ut.GetSpec().GetIssueType(), + Title: title, Integration: ut.GetSpec().GetIntegration(), LastStateChange: ut.GetStatus().GetLastStateChange().AsTime(), } diff --git a/lib/web/usertasks_test.go b/lib/web/usertasks_test.go index f612f562e6568..354b9fb8d9c53 100644 --- a/lib/web/usertasks_test.go +++ b/lib/web/usertasks_test.go @@ -120,6 +120,7 @@ func TestUserTask(t *testing.T) { err = json.Unmarshal(resp.Bytes(), &listResponse) require.NoError(t, err) require.NotEmpty(t, listResponse.Items) + require.NotEmpty(t, listResponse.Items[0].Title) listedTasks = append(listedTasks, listResponse.Items...) if listResponse.NextKey == "" {