parseContractV2 attempts to parse a raw contract as V2 schema
(rawContract *pb.WorkflowContractVersionItem_RawBody)
| 511 | |
| 512 | // parseContractV2 attempts to parse a raw contract as V2 schema |
| 513 | func parseContractV2(rawContract *pb.WorkflowContractVersionItem_RawBody) *v1.CraftingSchemaV2 { |
| 514 | if rawContract == nil { |
| 515 | return nil |
| 516 | } |
| 517 | |
| 518 | rawFormat := func() unmarshal.RawFormat { |
| 519 | switch rawContract.GetFormat() { |
| 520 | case pb.WorkflowContractVersionItem_RawBody_FORMAT_JSON: |
| 521 | return unmarshal.RawFormatJSON |
| 522 | case pb.WorkflowContractVersionItem_RawBody_FORMAT_YAML: |
| 523 | return unmarshal.RawFormatYAML |
| 524 | case pb.WorkflowContractVersionItem_RawBody_FORMAT_CUE: |
| 525 | return unmarshal.RawFormatCUE |
| 526 | default: |
| 527 | return unmarshal.RawFormatYAML |
| 528 | } |
| 529 | }() |
| 530 | |
| 531 | schemaV2 := &v1.CraftingSchemaV2{} |
| 532 | if err := unmarshal.FromRaw(rawContract.GetBody(), rawFormat, schemaV2, true); err != nil { |
| 533 | // If V2 parsing fails, return nil |
| 534 | return nil |
| 535 | } |
| 536 | |
| 537 | return schemaV2 |
| 538 | } |