Class: Ast::Merge::ProviderResult
- Inherits:
-
Object
- Object
- Ast::Merge::ProviderResult
- Defined in:
- lib/ast/merge/provider_result.rb,
sig/ast/merge.rbs
Overview
Constructs provider result envelopes and substrate-level failures.
Constant Summary collapse
- DEFAULT_ENVELOPE =
{ provider: {}.freeze, profile: {}.freeze, diagnostics: [].freeze, changes: [].freeze, conflicts: [].freeze, fallbacks: [].freeze, render_report: {}.freeze, verification: {}.freeze }.freeze
Class Method Summary collapse
- .build(operation:, success:, envelope: {}, **payload) ⇒ provider_result
- .invalid_request(operation:, message:) ⇒ provider_result
- .unsupported(operation:, message:, selectors: {}) ⇒ provider_result
Class Method Details
.build(operation:, success:, envelope: {}, **payload) ⇒ provider_result
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ast/merge/provider_result.rb', line 19 def build(operation:, success:, envelope: {}, **payload) reserved_payload_fields = ProviderContract::REQUIRED_RESULT_FIELDS & payload.keys unless reserved_payload_fields.empty? raise ArgumentError, "Payload contains reserved fields: #{reserved_payload_fields.join(', ')}" end payload.merge(DEFAULT_ENVELOPE).merge(envelope).merge( schema: ProviderContract::RESULT_SCHEMA, operation: ProviderContract.normalize_operation(operation), ok: success ) end |
.invalid_request(operation:, message:) ⇒ provider_result
32 33 34 |
# File 'lib/ast/merge/provider_result.rb', line 32 def invalid_request(operation:, message:) failure(operation: operation, category: :invalid_request, message: ) end |
.unsupported(operation:, message:, selectors: {}) ⇒ provider_result
36 37 38 39 40 41 42 43 |
# File 'lib/ast/merge/provider_result.rb', line 36 def unsupported(operation:, message:, selectors: {}) failure( operation: operation, category: :unsupported_capability, message: , profile: selectors ) end |