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

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



74
75
76
77
78
79
80
81
82
83
# File 'lib/veye/api/package.rb', line 74

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



63
64
65
66
67
68
69
70
71
72
# File 'lib/veye/api/package.rb', line 63

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|
    JSONResponse.new(request, result, response)
  end
end

.get_package(api_key, prod_key, language, version = nil) ⇒ Object

returns package information



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/veye/api/package.rb', line 20

def self.get_package(api_key, prod_key, language, version = nil)
  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
  qparams[:prod_version] = version.to_s.strip unless version.to_s.empty?

  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



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/veye/api/package.rb', line 97

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

.get_version_list(api_key, prod_key, language) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/veye/api/package.rb', line 52

def self.get_version_list(api_key, prod_key, language)
  lang = encode_language(language)
  safe_prod_key = encode_prod_key(prod_key)

  qparams = {api_key: api_key}
  product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}/versions"
  product_api.resource.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



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/veye/api/package.rb', line 34

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



85
86
87
88
89
90
91
92
93
94
95
# File 'lib/veye/api/package.rb', line 85

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_languagesObject



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