Module: Veye::API::Package
- Defined in:
- lib/veye/api/package.rb
Overview
Package API wrappers
Constant Summary collapse
- RESOURCE_PATH =
'/products'
Class Method Summary collapse
- .encode_language(lang) ⇒ Object
- .encode_prod_key(prod_key) ⇒ Object
- .follow(api_key, prod_key, language) ⇒ Object
- .get_follow_status(api_key, prod_key, language) ⇒ Object
-
.get_package(api_key, prod_key, language) ⇒ Object
returns package information.
- .get_references(api_key, prod_key, language, page = nil) ⇒ Object
- .search(api_key, search_term, language = nil, group_id = nil, page = '1') ⇒ Object
- .unfollow(api_key, prod_key, language) ⇒ Object
Instance Method Summary collapse
Class Method Details
.encode_language(lang) ⇒ Object
15 16 17 |
# File 'lib/veye/api/package.rb', line 15 def self.encode_language(lang) lang.to_s.gsub(/\./, '').downcase end |
.encode_prod_key(prod_key) ⇒ Object
11 12 13 |
# File 'lib/veye/api/package.rb', line 11 def self.encode_prod_key(prod_key) prod_key.to_s.gsub(/\//, ':').gsub(/\./, '~') end |
.follow(api_key, prod_key, language) ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/veye/api/package.rb', line 60 def self.follow(api_key, prod_key, language) api = Resource.new(RESOURCE_PATH) lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "/#{lang}/#{safe_prod_key}/follow.json?api_key=#{api_key}" api.resource[path].post({}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_follow_status(api_key, prod_key, language) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/veye/api/package.rb', line 49 def self.get_follow_status(api_key, prod_key, language) product_api = Resource.new(RESOURCE_PATH) qparams = {api_key: api_key} lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "#{lang}/#{safe_prod_key}/follow.json" product_api.resource[path].get({params: qparams}) do |response, request, result| Veye::API::JSONResponse.new(request, result, response) end end |
.get_package(api_key, prod_key, language) ⇒ Object
returns package information
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/veye/api/package.rb', line 20 def self.get_package(api_key, prod_key, language) lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) qparams = {} qparams[:api_key] = api_key if api_key.to_s.size > 0 product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}" product_api.resource.get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_references(api_key, prod_key, language, page = nil) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/veye/api/package.rb', line 83 def self.get_references(api_key, prod_key, language, page = nil) api = Resource.new(RESOURCE_PATH) lang = encode_language(language).capitalize # endpoint bug safe_prod_key = encode_prod_key(prod_key) api_path = "/#{lang}/#{safe_prod_key}/references" page_nr = page.to_s unless page.nil? page_nr ||= 1 qparams = {page: page_nr} qparams[:api_key] = api_key if api_key.to_s.size > 0 api.resource[api_path].get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.search(api_key, search_term, language = nil, group_id = nil, page = '1') ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/veye/api/package.rb', line 31 def self.search(api_key, search_term, language = nil, group_id = nil, page = '1') search_api = Resource.new "#{RESOURCE_PATH}/search/#{search_term}" qparams = { q: search_term.to_s } qparams[:lang] = encode_language(language) unless language.nil? qparams[:g] = group_id unless group_id.nil? if page.nil? qparams[:page] = '1' else qparams[:page] = page.to_s end qparams[:api_key] = api_key if api_key.to_s.size > 0 search_api.resource.get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.unfollow(api_key, prod_key, language) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/veye/api/package.rb', line 71 def self.unfollow(api_key, prod_key, language) api = Resource.new(RESOURCE_PATH) qparams = {api_key: api_key} lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "/#{lang}/#{safe_prod_key}/follow.json" api.resource[path].delete({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
Instance Method Details
#supported_languages ⇒ Object
7 8 9 |
# File 'lib/veye/api/package.rb', line 7 def supported_languages Set.new %w( Clojure Java Javascript Node.JS PHP Python Ruby R ) end |