MCPcopy
hub / github.com/larksuite/cli / buildTaskUpdateBody

Function buildTaskUpdateBody

shortcuts/task/task_update.go:115–162  ·  view source on GitHub ↗
(runtime *common.RuntimeContext)

Source from the content-addressed store, hash-verified

113}
114
115func buildTaskUpdateBody(runtime *common.RuntimeContext) (map[string]interface{}, error) {
116 taskObj := make(map[string]interface{})
117 var updateFields []string
118
119 if dataStr := runtime.Str("data"); dataStr != "" {
120 if err := json.Unmarshal([]byte(dataStr), &taskObj); err != nil {
121 return nil, errs.NewValidationError(errs.SubtypeInvalidArgument, "--data must be a valid JSON object: %v", err).WithParam("--data")
122 }
123 // If data is provided, assume keys are update fields
124 for k := range taskObj {
125 updateFields = append(updateFields, k)
126 }
127 }
128
129 if summary := runtime.Str("summary"); summary != "" {
130 taskObj["summary"] = summary
131 if !contains(updateFields, "summary") {
132 updateFields = append(updateFields, "summary")
133 }
134 }
135
136 if desc := runtime.Str("description"); desc != "" {
137 taskObj["description"] = desc
138 if !contains(updateFields, "description") {
139 updateFields = append(updateFields, "description")
140 }
141 }
142
143 if dueStr := runtime.Str("due"); dueStr != "" {
144 dueObj, err := parseTaskTime(dueStr)
145 if err != nil {
146 return nil, errs.NewValidationError(errs.SubtypeInvalidArgument, "failed to parse due time: %v", err).WithParam("--due")
147 }
148 taskObj["due"] = dueObj
149 if !contains(updateFields, "due") {
150 updateFields = append(updateFields, "due")
151 }
152 }
153
154 if len(updateFields) == 0 {
155 return nil, errs.NewValidationError(errs.SubtypeInvalidArgument, "no fields to update")
156 }
157
158 return map[string]interface{}{
159 "task": taskObj,
160 "update_fields": updateFields,
161 }, nil
162}

Callers 2

task_update.goFile · 0.85

Calls 5

NewValidationErrorFunction · 0.92
parseTaskTimeFunction · 0.85
WithParamMethod · 0.80
containsFunction · 0.70
StrMethod · 0.65

Tested by 1