Sha256: 1b872df5d7b7e05e5e5e055dc237c91023154380464482e1370a3561d4d2aeb4

Contents?: true

Size: 1005 Bytes

Versions: 1

Compression:

Stored size: 1005 Bytes

Contents

# frozen_string_literal: true

require "transactable"

module Tana
  module Endpoints
    module Add
      # Handles a repository create action.
      class Action
        include Import[:client]
        include Transactable

        # rubocop:todo Metrics/ParameterLists
        def initialize(
          request: Requests::Add.new,
          response: Responses::Root,
          model: Models::Root,
          **
        )
          @request = request
          @response = response
          @model = model
          super(**)
        end
        # rubocop:enable Metrics/ParameterLists

        def call(body, **)
          pipe body,
               validate(request),
               insert("addToNodeV2", at: 0),
               insert(**),
               to(client, :post),
               try(:parse, catch: JSON::ParserError),
               validate(response),
               to(model, :for)
        end

        private

        attr_reader :request, :response, :model
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tana-0.0.0 lib/tana/endpoints/add/action.rb