Sha256: 84b90903081b038f27bd47fa8d163ce7e8a711fd4139a9edfb48270178b9d0ca

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require 'json'

module Yoti
  module Sandbox
    module DocScan
      module Request
        class TextDataExtractionReason
          #
          # @param [String] value
          # @param [String] detail
          #
          def initialize(value, detail)
            Validation.assert_is_a(String, value, 'value')
            @value = value

            Validation.assert_is_a(String, detail, 'detail', true)
            @detail = detail
          end

          def to_json(*_args)
            as_json.to_json
          end

          def as_json(*_args)
            {
              value: @value,
              detail: @detail
            }.compact
          end

          #
          # @return [TextDataExtractionReasonBuilder]
          #
          def self.builder
            TextDataExtractionReasonBuilder.new
          end
        end

        class TextDataExtractionReasonBuilder
          #
          # @return [self]
          #
          def for_quality
            @value = 'QUALITY'
            self
          end

          #
          # @return [self]
          #
          def for_user_error
            @value = 'USER_ERROR'
            self
          end

          #
          # @param [String] detail
          #
          # @return [self]
          #
          def with_detail(detail)
            @detail = detail
            self
          end

          #
          # @return [TextDataExtractionReason]
          #
          def build
            TextDataExtractionReason.new(@value, @detail)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yoti_sandbox-1.4.0 lib/yoti_sandbox/doc_scan/request/task/text_data_extraction_reason.rb