class Clarinet::Input

Attributes

concepts[R]
created_at[R]
id[R]
image_url[R]
metadata[R]
raw_data[R]
score[R]

Public Class Methods

new(app, raw_data) click to toggle source
# File lib/clarinet/input.rb, line 14
def initialize(app, raw_data)
  @app = app

  @id = raw_data[:id]
  @created_at = raw_data[:created_at]
  @image_url = raw_data[:data][:image_url]

  @concepts = Clarinet::Concepts.new app, raw_data[:data][:concepts]

  @score = raw_data[:score]
  @metadata = raw_data[:data][:metadata]

  @raw_data = raw_data
end

Public Instance Methods

delete_concepts(concepts, metadata = nil) click to toggle source
# File lib/clarinet/input.rb, line 33
def delete_concepts(concepts, metadata = nil)
  update 'remove', concepts: concepts, metadata: metadata
end
merge_concepts(concepts, metadata = nil) click to toggle source
# File lib/clarinet/input.rb, line 29
def merge_concepts(concepts, metadata = nil)
  update 'merge', concepts: concepts, metadata: metadata
end
overwrite_concepts(concepts, metadata = nil) click to toggle source
# File lib/clarinet/input.rb, line 37
def overwrite_concepts(concepts, metadata = nil)
  update 'overwrite', concepts: concepts, metadata: metadata
end

Private Instance Methods

update(action, concepts: [], metadata: nil) click to toggle source
# File lib/clarinet/input.rb, line 43
def update(action, concepts: [], metadata: nil)
  input_data = {}
  input_data[:concepts] = concepts unless concepts.empty?
  input_data[:metadata] = metadata unless metadata.nil?

  data = {
    action: action,
    inputs: [
      {
        id: id,
        data: input_data
      }
    ]
  }

  response_data = @app.client.inputs_update data
  Clarinet::Input.new response_data[:input]
end