(policyMessage *store.PolicyMessage)
| 612 | } |
| 613 | |
| 614 | func convertToPolicy(policyMessage *store.PolicyMessage) (*v1pb.Policy, error) { |
| 615 | resourceType := v1pb.PolicyResourceType_RESOURCE_TYPE_UNSPECIFIED |
| 616 | switch policyMessage.ResourceType { |
| 617 | case storepb.Policy_WORKSPACE: |
| 618 | resourceType = v1pb.PolicyResourceType_WORKSPACE |
| 619 | case storepb.Policy_ENVIRONMENT: |
| 620 | resourceType = v1pb.PolicyResourceType_ENVIRONMENT |
| 621 | case storepb.Policy_PROJECT: |
| 622 | resourceType = v1pb.PolicyResourceType_PROJECT |
| 623 | default: |
| 624 | } |
| 625 | policy := &v1pb.Policy{ |
| 626 | InheritFromParent: policyMessage.InheritFromParent, |
| 627 | Enforce: policyMessage.Enforce, |
| 628 | ResourceType: resourceType, |
| 629 | } |
| 630 | |
| 631 | pType := convertStorePBToV1PBPolicyType(policyMessage.Type) |
| 632 | switch policyMessage.Type { |
| 633 | case storepb.Policy_ROLLOUT: |
| 634 | payload, err := convertToV1RolloutPolicyPayload(policyMessage.Payload) |
| 635 | if err != nil { |
| 636 | return nil, err |
| 637 | } |
| 638 | policy.Policy = payload |
| 639 | case storepb.Policy_TAG: |
| 640 | p := &v1pb.TagPolicy{} |
| 641 | if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), p); err != nil { |
| 642 | return nil, errors.Wrapf(err, "failed to unmarshal tag policy payload") |
| 643 | } |
| 644 | policy.Policy = &v1pb.Policy_TagPolicy{ |
| 645 | TagPolicy: p, |
| 646 | } |
| 647 | case storepb.Policy_QUERY_DATA: |
| 648 | payload, err := convertToV1PBQueryDataPolicy(policyMessage.Payload) |
| 649 | if err != nil { |
| 650 | return nil, err |
| 651 | } |
| 652 | policy.Policy = payload |
| 653 | case storepb.Policy_MASKING_RULE: |
| 654 | maskingRulePolicy := &storepb.MaskingRulePolicy{} |
| 655 | if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), maskingRulePolicy); err != nil { |
| 656 | return nil, errors.Wrap(err, "failed to unmarshal masking rule policy") |
| 657 | } |
| 658 | payload := convertToV1PBMaskingRulePolicy(maskingRulePolicy) |
| 659 | policy.Policy = &v1pb.Policy_MaskingRulePolicy{ |
| 660 | MaskingRulePolicy: payload, |
| 661 | } |
| 662 | case storepb.Policy_MASKING_EXEMPTION: |
| 663 | maskingExemptionPolicy := &storepb.MaskingExemptionPolicy{} |
| 664 | if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), maskingExemptionPolicy); err != nil { |
| 665 | return nil, errors.Wrap(err, "failed to unmarshal masking exemption policy") |
| 666 | } |
| 667 | payload := convertToV1PBMaskingExemptionPolicyPayload(maskingExemptionPolicy) |
| 668 | policy.Policy = &v1pb.Policy_MaskingExemptionPolicy{ |
| 669 | MaskingExemptionPolicy: payload, |
| 670 | } |
| 671 | default: |
no test coverage detected