Module: Veye::API::Project

Defined in:
lib/veye/api/project.rb

Constant Summary collapse

RESOURCE_PATH =
"/projects"
MAX_FILE_SIZE =

~ 500kB

500000

Class Method Summary collapse

Class Method Details

.check_file(filename) ⇒ Object

TODO: add throws



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/veye/api/project.rb', line 8

def self.check_file(filename)
  file_path = File.absolute_path(filename)

  unless File.exist?(file_path)
    printf("%s: Cant read file `%s`",
           "Error".color(:red),
           "#{filename}".color(:yellow))
    return nil
  end

  file_size = File.size(file_path)
  unless file_size != 0 and file_size < MAX_FILE_SIZE
    p "Size of file is not acceptable: 0kb < x <= #{MAX_FILE_SIZE/1000}kb"
    return nil
  end

  file_path
end

.delete_project(api_key, project_key) ⇒ Object



81
82
83
84
85
86
87
88
# File 'lib/veye/api/project.rb', line 81

def self.delete_project(api_key, project_key)
  project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
  qparams = {:params => {:api_key => api_key}}

  project_api.resource.delete(qparams) do |response, request, result|
    JSONResponse.new(request, result, response)
  end
end

.get_licenses(api_key, project_key) ⇒ Object

TODO: add throw exceptions



91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/veye/api/project.rb', line 91

def self.get_licenses(api_key, project_key)
  if project_key.nil? or project_key.empty?
    printf("%s: %s",
           "Error".color(:red),
           "Not valid project_key: `#{project_key}`")
    return
  end
  project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}/licenses")
  qparams = {:params => {:api_key => api_key}}
  project_api.resource.get(qparams) do |response, request, result|
    JSONResponse.new(request, result, response)
  end
end

.get_list(api_key) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/veye/api/project.rb', line 27

def self.get_list(api_key)
  project_api = Resource.new(RESOURCE_PATH)
  qparams = {:params => {:api_key => api_key}}
  project_api.resource.get(qparams) do |response, request, result|
    JSONResponse.new(request, result, response)
  end
end

.get_project(api_key, project_key) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/veye/api/project.rb', line 66

def self.get_project(api_key, project_key)
  if project_key.nil? or project_key.empty?
    printf("%s: %s",
           "Error".color(:red),
           "Not valid project_key: `#{project_key}`")
    return
  end

  project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
  qparams = {:params => {:api_key => api_key}}
  project_api.resource.get(qparams) do |response, request, result|
    JSONResponse.new(request, result, response)
  end
end

.update(api_key, project_key, filename) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/veye/api/project.rb', line 51

def self.update(api_key, project_key, filename)
  project_api = Resource.new("#{RESOURCE_PATH}/#{project_key}")
  file_path = check_file(filename)
  return if file_path.nil?

  file_obj = File.open(file_path, 'rb')
  upload_data = {
    :project_file   => file_obj,
    :api_key        => api_key
  }
  project_api.resource.post(upload_data) do |response, request, result, &block|
    JSONResponse.new(request, result, response)
  end
end

.upload(api_key, filename) ⇒ Object



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

def self.upload(api_key, filename)
  project_api = Resource.new(RESOURCE_PATH)
  file_path = check_file(filename)
  return if file_path.nil?

  file_obj = File.open(file_path, 'rb')
  upload_data = {
    :upload   => file_obj,
    :api_key  => api_key
  }

  project_api.resource.post(upload_data) do |response, request, result, &block|
    JSONResponse.new(request, result, response)
  end
end