( index int, designation contract.TaskFanOutRunDesignationRequest, )
| 2268 | } |
| 2269 | |
| 2270 | func fanOutDesignationMetadata( |
| 2271 | index int, |
| 2272 | designation contract.TaskFanOutRunDesignationRequest, |
| 2273 | ) (json.RawMessage, error) { |
| 2274 | brief := strings.TrimSpace(designation.Brief) |
| 2275 | if brief == "" { |
| 2276 | return nil, NewTaskValidationError(fmt.Errorf("designations[%d].brief is required", index)) |
| 2277 | } |
| 2278 | metadata := cloneRawMessage(designation.Metadata) |
| 2279 | if len(metadata) > 0 && !json.Valid(metadata) { |
| 2280 | return nil, NewTaskValidationError(fmt.Errorf("designations[%d].metadata must be valid JSON", index)) |
| 2281 | } |
| 2282 | payload := fanOutDesignationMetadataPayload{ |
| 2283 | Designation: fanOutDesignationMetadataDetail{Index: index, Brief: brief}, |
| 2284 | Metadata: metadata, |
| 2285 | } |
| 2286 | encoded, err := json.Marshal(payload) |
| 2287 | if err != nil { |
| 2288 | return nil, fmt.Errorf("task fan-out metadata: %w", err) |
| 2289 | } |
| 2290 | return encoded, nil |
| 2291 | } |
| 2292 | |
| 2293 | func fanOutDesignationIdempotencyKey( |
| 2294 | requestKey string, |
no test coverage detected