Sha256: f8b38fb74450b95ebc9bdb7bf17bd5bcb4c424ed6a2878bcf21305411c6fd324

Contents?: true

Size: 903 Bytes

Versions: 8

Compression:

Stored size: 903 Bytes

Contents

require 'faraday'
require 'json'

module SearchKit
  module Clients
    class Scaffold
      attr_reader :connection, :token

      def initialize
        uri = [SearchKit.config.app_uri, "scaffold"].join("/")
        @connection = Faraday.new(uri)
        @token      = SearchKit.config.app_token
      end

      def create(name, documents)
        options = {
          token: token,
          data: {
            type:          'indices',
            attributes:    { name: name },
            relationships: { documents: documents }
          }
        }

        response = connection.post('', options)
        body     = JSON.parse(response.body, symbolize_names: true)

        fail Errors::BadRequest    if response.status == 400
        fail Errors::Unauthorized  if response.status == 401
        fail Errors::Unprocessable if response.status == 422

        body
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
search-kit-0.0.10 lib/search_kit/clients/scaffold.rb
search-kit-0.0.9 lib/search_kit/clients/scaffold.rb
search-kit-0.0.8 lib/search_kit/clients/scaffold.rb
search-kit-0.0.7 lib/search_kit/clients/scaffold.rb
search-kit-0.0.6 lib/search_kit/clients/scaffold.rb
search-kit-0.0.5 lib/search_kit/clients/scaffold.rb
search-kit-0.0.4 lib/search_kit/clients/scaffold.rb
search-kit-0.0.3 lib/search_kit/clients/scaffold.rb