module Pipekit::FieldRepository

Public Instance Methods

find_label(field:, id:) click to toggle source
# File lib/pipekit/field_repository.rb, line 14
def find_label(field:, id:)
  find_values(field)
    .find(raise_label_not_found(field, id)) { |value| value["id"] == id.to_i }
    .fetch("label", "")
end
find_values(field) click to toggle source
# File lib/pipekit/field_repository.rb, line 20
def find_values(field)
  find_by(name: field).fetch("options", [], choose_first_value: false)
end
get_by_key(key) click to toggle source
# File lib/pipekit/field_repository.rb, line 5
def get_by_key(key)
  key = Config.field_id(parent_resource, key)
  search_fields("key", key)
end
get_by_name(name) click to toggle source
# File lib/pipekit/field_repository.rb, line 10
def get_by_name(name)
  search_fields("name", name)
end

Private Instance Methods

parent_resource() click to toggle source
# File lib/pipekit/field_repository.rb, line 37
def parent_resource
  resource.pluralized.chomp("Fields")
end
raise_label_not_found(field, id) click to toggle source
# File lib/pipekit/field_repository.rb, line 26
def raise_label_not_found(field, id)
  -> { raise LabelNotFoundError.new(field, id) }
end
search_fields(field_element, value) click to toggle source
# File lib/pipekit/field_repository.rb, line 30
def search_fields(field_element, value)
  result = request.get.select { |element| element[field_element] == value }

  raise ResourceNotFoundError.new("#{parent_resource}Field searching by element #{field_element} for #{value} could not be found") if result.empty?
  result
end