module SetServiceClient

Constants

VERSION

Public Class Methods

add_materials(set_uuid, materials) click to toggle source
# File lib/set_service_client.rb, line 12
def self.add_materials(set_uuid, materials)
        data = {:data => materials.compact.map{|m| {:id => m.uuid, :type => 'materials'}}}
        conn = get_connection
        conn.post('/api/v1/sets/'+set_uuid+'/relationships/materials', data.to_json)
end
get_set(set_uuid) click to toggle source
# File lib/set_service_client.rb, line 24
def self.get_set(set_uuid)
        conn = get_connection
        conn.headers = {'Accept' => 'application/vnd.api+json'}
        JSON.parse(conn.get('/api/v1/sets/'+set_uuid).body)
end
get_sets() click to toggle source
# File lib/set_service_client.rb, line 30
def self.get_sets
        conn = get_connection
        conn.headers = {'Accept' => 'application/vnd.api+json'}
        p filter(JSON.parse(conn.get('/api/v1/sets').body))
end
get_with_materials(set_uuid) click to toggle source
# File lib/set_service_client.rb, line 18
def self.get_with_materials(set_uuid)
        conn = get_connection
        conn.headers = {'Accept' => 'application/vnd.api+json'}
        JSON.parse(conn.get('/api/v1/sets/'+set_uuid+'/relationships/materials').body)
end
post(submission_id) click to toggle source
# File lib/set_service_client.rb, line 6
def self.post(submission_id)
        data = {:data=>{:type=>"sets", :attributes=>{:name=>submission_id}}}
        conn = get_connection
        JSON.parse(conn.post('/api/v1/sets', data.to_json).body)
end

Private Class Methods

filter(obj) click to toggle source
# File lib/set_service_client.rb, line 50
def self.filter(obj)
        obj["data"].map { |item| filter_attrs(item) }
end
filter_attrs(h) click to toggle source
# File lib/set_service_client.rb, line 54
def self.filter_attrs(h)
        {id: h["id"], name: h["attributes"]["name"]}
end
get_connection() click to toggle source
# File lib/set_service_client.rb, line 38
def self.get_connection
        conn = Faraday.new(:url => ENV['SET_URL']) do |faraday|
                # faraday.use ZipkinTracer::FaradayHandler, 'Set Service'
                faraday.proxy ENV['SET_URL']
                faraday.request  :url_encoded
                faraday.response :logger
                faraday.adapter  Faraday.default_adapter
        end
        conn.headers = {'Content-Type' => 'application/vnd.api+json'}
        conn
end