cloudwalk 1.14.3 → 1.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/exe/i386-apple-darwin14 +0 -0
- data/exe/i686-pc-linux-gnu +0 -0
- data/exe/i686-w64-mingw32.exe +0 -0
- data/exe/x86_64-apple-darwin14 +0 -0
- data/exe/x86_64-pc-linux-gnu +0 -0
- data/exe/x86_64-w64-mingw32.exe +0 -0
- data/lib/cloudwalk.rb +2 -3
- data/lib/cloudwalk/application.rb +68 -0
- data/lib/cloudwalk/application_version.rb +74 -0
- data/lib/cloudwalk/cw_file_json.rb +31 -37
- data/lib/cloudwalk/deploy.rb +4 -4
- metadata +5 -7
- data/lib/cloudwalk/posxml/posxml_application.rb +0 -40
- data/lib/cloudwalk/posxml/posxml_version.rb +0 -77
- data/lib/cloudwalk/ruby/ruby_application.rb +0 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 838295a5a7120b68dd5aa8be76e4753fd7d975b53eb596d57a68efa94da993e3
|
4
|
+
data.tar.gz: fede34b4874dde009ba31713a9241483e85557b65accc7e7d5c52a8ebdd64a15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0403d3c190c1a2cd2e3f16b3ccaf92795311aac6d47c083889fab786df041a2be32bf9df2f3309af755454d043aeafa01a0c70ee80df339a007ba1dadb292bd4
|
7
|
+
data.tar.gz: ce8212697573e8a0c0dc9a1845738f61533b277baa484da58c252ccd46d94894c92b749bb81b101f8c927aa89fa8de2d77395406edb0376cc1f63190695643a0
|
data/exe/i386-apple-darwin14
CHANGED
Binary file
|
data/exe/i686-pc-linux-gnu
CHANGED
Binary file
|
data/exe/i686-w64-mingw32.exe
CHANGED
Binary file
|
data/exe/x86_64-apple-darwin14
CHANGED
Binary file
|
data/exe/x86_64-pc-linux-gnu
CHANGED
Binary file
|
data/exe/x86_64-w64-mingw32.exe
CHANGED
Binary file
|
data/lib/cloudwalk.rb
CHANGED
@@ -9,8 +9,7 @@ require_relative "cloudwalk/config"
|
|
9
9
|
require_relative "cloudwalk/cw_file_json"
|
10
10
|
require_relative "cloudwalk/deploy"
|
11
11
|
require_relative "cloudwalk/deploy_exception"
|
12
|
-
require_relative "cloudwalk/
|
13
|
-
require_relative "cloudwalk/
|
12
|
+
require_relative "cloudwalk/application"
|
13
|
+
require_relative "cloudwalk/application_version"
|
14
14
|
require_relative "cloudwalk/posxml/rake_task"
|
15
|
-
require_relative "cloudwalk/ruby/ruby_application"
|
16
15
|
require_relative "cloudwalk/ruby/rake_task"
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Cloudwalk
|
2
|
+
class Application
|
3
|
+
include Cloudwalk::ManagerHelper
|
4
|
+
|
5
|
+
# NEW
|
6
|
+
def self.find(name)
|
7
|
+
self.all.find do |app|
|
8
|
+
app["name"] == name
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.all
|
13
|
+
if @apps
|
14
|
+
@apps
|
15
|
+
else
|
16
|
+
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps?access_token=#{self.token}&per_page=100")))
|
17
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
18
|
+
|
19
|
+
total_pages = response["pagination"]["total_pages"].to_i
|
20
|
+
@apps = response["apps"].collect {|r| r["app"] }
|
21
|
+
(total_pages - 1).times do |page|
|
22
|
+
url = "#{self.host}/v1/apps?access_token=#{self.token}&per_page=100&page=#{page+2}"
|
23
|
+
response = JSON.parse(Net::HTTP.get(URI(url)))
|
24
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
25
|
+
|
26
|
+
@apps.concat(response["apps"].collect {|r| r["app"] })
|
27
|
+
end
|
28
|
+
@apps
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# BASE
|
33
|
+
|
34
|
+
def self.get(id)
|
35
|
+
url = "#{self.host}/v1/apps/#{id}?access_token=#{self.token}"
|
36
|
+
response = JSON.parse(Net::HTTP.get(URI(url)))
|
37
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
38
|
+
|
39
|
+
response["app"]
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.get_name(id)
|
43
|
+
get(id)["name"]
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.update(app_id, bytecode, app_parameters = nil)
|
47
|
+
url = "#{self.host}/v1/apps/#{app_id}?access_token=#{self.token}"
|
48
|
+
uri = URI(url)
|
49
|
+
form = {"bytecode" => Base64.strict_encode64(bytecode)}
|
50
|
+
response = nil
|
51
|
+
|
52
|
+
if app_parameters
|
53
|
+
form["authorizer_url"] = app_parameters["authorizer_url"]
|
54
|
+
form["description"] = app_parameters["description"]
|
55
|
+
form["pos_display_label"] = app_parameters["pos_display_label"]
|
56
|
+
form["displayable"] = app_parameters["pos_display_label"] != "X"
|
57
|
+
end
|
58
|
+
|
59
|
+
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
60
|
+
request = Net::HTTP::Put.new(uri)
|
61
|
+
request.set_form_data(form)
|
62
|
+
response = http.request(request)
|
63
|
+
end
|
64
|
+
[response.code.to_i == 200, response]
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Cloudwalk
|
2
|
+
class ApplicationVersion
|
3
|
+
include Cloudwalk::ManagerHelper
|
4
|
+
|
5
|
+
def self.get_or_create(app, version)
|
6
|
+
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
|
7
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
8
|
+
|
9
|
+
#TODO
|
10
|
+
#`curl -X GET "https://api-staging.cloudwalk.io/v1/apps/posxml/3082/versions?access_token=#{self.token}`
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.all(app_id)
|
14
|
+
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
|
15
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
16
|
+
|
17
|
+
total_pages = response["pagination"]["total_pages"].to_i
|
18
|
+
versions = response["appversions"]
|
19
|
+
|
20
|
+
(total_pages - 1).times do |page|
|
21
|
+
url = "#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}&per_page=100&page=#{page+2}"
|
22
|
+
response = JSON.parse(Net::HTTP.get(URI(url)))
|
23
|
+
raise ManagerException.new(response["message"]) if response["message"]
|
24
|
+
|
25
|
+
versions.concat(response["appversions"])
|
26
|
+
end
|
27
|
+
versions
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.get(app_id, id)
|
31
|
+
url = "#{self.host}/v1/apps/#{app_id}/versions/#{id}?access_token=#{token}"
|
32
|
+
response = JSON.parse(Net::HTTP.get(URI(url)))
|
33
|
+
if response["message"]
|
34
|
+
raise ManagerException.new(response["message"])
|
35
|
+
else
|
36
|
+
response["app_version"]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
# NEW
|
42
|
+
def self.find(app_name, version_name)
|
43
|
+
applications = Cloudwalk::Application.all
|
44
|
+
application = applications.find { |app_json| app_json["name"] == xml2posxml(app_name) }
|
45
|
+
versions = Cloudwalk::ApplicationVersion.all(application["id"])
|
46
|
+
version = versions.find { |json| json["app_version"]["number"] == version_name }
|
47
|
+
|
48
|
+
[application, (version && version["app_version"])]
|
49
|
+
end
|
50
|
+
|
51
|
+
# NEW B4
|
52
|
+
def self.update(app_id, version_id, bytecode, app_parameters = nil)
|
53
|
+
url = "#{self.host}/v1/apps/#{app_id}/versions?access_token=#{self.token}"
|
54
|
+
uri = URI(url)
|
55
|
+
form = {"bytecode" => Base64.strict_encode64(bytecode)}
|
56
|
+
response = nil
|
57
|
+
|
58
|
+
if app_parameters
|
59
|
+
form["authorizer_url"] = app_parameters["authorizer_url"]
|
60
|
+
form["number"] = app_parameters["version"]
|
61
|
+
form["displayable"] = app_parameters["displayable"]
|
62
|
+
form["pos_display_label"] = app_parameters["pos_display_label"]
|
63
|
+
end
|
64
|
+
|
65
|
+
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
66
|
+
request = Net::HTTP::Post.new(uri)
|
67
|
+
request.set_form_data(form)
|
68
|
+
response = http.request(request)
|
69
|
+
end
|
70
|
+
[response.code.to_i == 201, response]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
@@ -49,6 +49,13 @@ module Cloudwalk
|
|
49
49
|
false
|
50
50
|
end
|
51
51
|
|
52
|
+
def self.convert_old_cwfile(cwfile)
|
53
|
+
if cwfile["apps"].nil?
|
54
|
+
cwfile = Hash.[]("apps",[cwfile])
|
55
|
+
end
|
56
|
+
cwfile
|
57
|
+
end
|
58
|
+
|
52
59
|
# Load Scenarios
|
53
60
|
# 1. Pure true
|
54
61
|
# - Cwfile.json exists.
|
@@ -83,7 +90,7 @@ module Cloudwalk
|
|
83
90
|
# - Cwfile.json.lock not exists.
|
84
91
|
# R: ASK: Cwfile.json not exists, should I create a skeleton or get the last versions available for the files we have here?
|
85
92
|
def self.setup(without_lock_check = false)
|
86
|
-
if self.cwfile = load_cwfile
|
93
|
+
if self.cwfile = self.convert_old_cwfile(load_cwfile)
|
87
94
|
if without_lock_check
|
88
95
|
true
|
89
96
|
elsif CwFileJson.exists_lock?
|
@@ -108,21 +115,17 @@ module Cloudwalk
|
|
108
115
|
|
109
116
|
def self.lock_build
|
110
117
|
config = []
|
111
|
-
|
112
|
-
|
113
|
-
|
118
|
+
self.cwfile["apps"].each do |app_local|
|
119
|
+
app, version = Cloudwalk::ApplicationVersion.find(app_local["name"], app_local["version"])
|
120
|
+
if app && version
|
121
|
+
detail = Cloudwalk::ApplicationVersion.get(app["id"], version["id"])
|
122
|
+
config << build_application(app, version, detail["module_ids"])
|
123
|
+
elsif app
|
124
|
+
app = Cloudwalk::Application.find(xml2posxml(app_local["name"]))
|
125
|
+
|
126
|
+
config << build_application(app, app_local["version"], app_local["modules"])
|
114
127
|
else
|
115
|
-
#
|
116
|
-
end
|
117
|
-
else
|
118
|
-
self.cwfile["apps"].each do |app_local|
|
119
|
-
app, version = Cloudwalk::Posxml::PosxmlVersion.find(app_local["name"], app_local["version"])
|
120
|
-
if app && version
|
121
|
-
detail = Cloudwalk::Posxml::PosxmlVersion.get(app["id"], version["id"])
|
122
|
-
config << build_application(:posxml, app, version, detail["module_ids"])
|
123
|
-
else
|
124
|
-
raise Cloudwalk::CwFileJsonException.new("App (#{app_local["name"]}) Version (#{app_local["version"]}) not found")
|
125
|
-
end
|
128
|
+
raise Cloudwalk::CwFileJsonException.new("App (#{app_local["name"]}) Version (#{app_local["version"]}) not found")
|
126
129
|
end
|
127
130
|
end
|
128
131
|
|
@@ -130,35 +133,26 @@ module Cloudwalk
|
|
130
133
|
end
|
131
134
|
|
132
135
|
def self.build_module(mod)
|
133
|
-
|
136
|
+
app, ver = Cloudwalk::ApplicationVersion.find(mod.first, mod.last)
|
137
|
+
if module_version = Cloudwalk::ApplicationVersion.get(app["id"], ver["id"])
|
134
138
|
{
|
135
|
-
"name" => Cloudwalk::
|
139
|
+
"name" => Cloudwalk::Application.get_name(app["id"]),
|
136
140
|
"version" => module_version["number"],
|
137
141
|
"id" => module_version["app_id"],
|
138
142
|
"version_id" => module_version["id"]
|
139
143
|
}
|
140
144
|
else
|
141
|
-
raise Cloudwalk::CwFileJsonException.new("App (#{mod
|
145
|
+
raise Cloudwalk::CwFileJsonException.new("App (#{mod.first}) Module Version (#{mod.last}) not found")
|
142
146
|
end
|
143
147
|
end
|
144
148
|
|
145
|
-
def self.build_application(
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
}
|
153
|
-
else
|
154
|
-
{
|
155
|
-
"name" => app["name"],
|
156
|
-
"id" => app["id"],
|
157
|
-
"modules" => modules_remote.collect {|mod| build_module(mod)},
|
158
|
-
"version" => version["number"],
|
159
|
-
"version_id" => version["id"]
|
160
|
-
}
|
161
|
-
end
|
149
|
+
def self.build_application(app, version = nil, modules_remote = nil)
|
150
|
+
{
|
151
|
+
"name" => app["name"],
|
152
|
+
"id" => app["id"],
|
153
|
+
"modules" => modules_remote.collect {|mod| build_module(mod)},
|
154
|
+
"version" => version["number"] || version,
|
155
|
+
}
|
162
156
|
end
|
163
157
|
|
164
158
|
def self.exists?
|
@@ -256,11 +250,11 @@ module Cloudwalk
|
|
256
250
|
|
257
251
|
if remote_app
|
258
252
|
remote_posxml_app = remote_app["posxml_app"]
|
259
|
-
remote_versions = Cloudwalk::
|
253
|
+
remote_versions = Cloudwalk::ApplicationVersion.all(remote_posxml_app["id"])
|
260
254
|
remote_version_json = remote_versions.find { |json| json["app_version"]["number"] == version }
|
261
255
|
|
262
256
|
if remote_version_json && (remote_version = remote_version_json["app_version"])
|
263
|
-
remote_version_detail = Cloudwalk::
|
257
|
+
remote_version_detail = Cloudwalk::ApplicationVersion.get(remote_posxml_app["id"], remote_version["id"])
|
264
258
|
# TODO: Check if application exists locally
|
265
259
|
build_application(local_app, config, remote_posxml_app, remote_version, remote_version_detail["app_version"]["module_ids"])
|
266
260
|
else
|
data/lib/cloudwalk/deploy.rb
CHANGED
@@ -30,7 +30,7 @@ module Cloudwalk
|
|
30
30
|
|
31
31
|
app_cwfile = self.cwfile["apps"].find {|config| config["name"] == posxml2xml(posxml) }
|
32
32
|
|
33
|
-
ret, response = Cloudwalk::
|
33
|
+
ret, response = Cloudwalk::ApplicationVersion.update(
|
34
34
|
app_lock["id"], app_lock["version_id"], File.read(path), app_cwfile
|
35
35
|
)
|
36
36
|
if ret
|
@@ -42,7 +42,7 @@ module Cloudwalk
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def name
|
45
|
-
self.cwfile["name"]
|
45
|
+
self.cwfile["apps"].first["name"]
|
46
46
|
end
|
47
47
|
|
48
48
|
def ruby
|
@@ -57,8 +57,8 @@ module Cloudwalk
|
|
57
57
|
raise Cloudwalk::DeployException.new("application #{self.name} not found at Manager, please create it")
|
58
58
|
end
|
59
59
|
|
60
|
-
ret, response = Cloudwalk::
|
61
|
-
app_lock["id"], File.read(zip), self.cwfile
|
60
|
+
ret, response = Cloudwalk::ApplicationVersion.update(
|
61
|
+
app_lock["id"], app_lock["version_id"], File.read(zip), self.cwfile["apps"].first
|
62
62
|
)
|
63
63
|
if ret
|
64
64
|
STDOUT.write("\r=> Success Deployed \n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudwalk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thiago Scalone
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -54,6 +54,8 @@ files:
|
|
54
54
|
- exe/x86_64-pc-linux-gnu
|
55
55
|
- exe/x86_64-w64-mingw32.exe
|
56
56
|
- lib/cloudwalk.rb
|
57
|
+
- lib/cloudwalk/application.rb
|
58
|
+
- lib/cloudwalk/application_version.rb
|
57
59
|
- lib/cloudwalk/config.rb
|
58
60
|
- lib/cloudwalk/cw_file_json.rb
|
59
61
|
- lib/cloudwalk/cw_file_json_exception.rb
|
@@ -61,11 +63,8 @@ files:
|
|
61
63
|
- lib/cloudwalk/deploy_exception.rb
|
62
64
|
- lib/cloudwalk/manager_exception.rb
|
63
65
|
- lib/cloudwalk/manager_helper.rb
|
64
|
-
- lib/cloudwalk/posxml/posxml_application.rb
|
65
|
-
- lib/cloudwalk/posxml/posxml_version.rb
|
66
66
|
- lib/cloudwalk/posxml/rake_task.rb
|
67
67
|
- lib/cloudwalk/ruby/rake_task.rb
|
68
|
-
- lib/cloudwalk/ruby/ruby_application.rb
|
69
68
|
homepage: https://cloudwalk.io/cli
|
70
69
|
licenses:
|
71
70
|
- MIT
|
@@ -85,8 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
84
|
- !ruby/object:Gem::Version
|
86
85
|
version: '0'
|
87
86
|
requirements: []
|
88
|
-
|
89
|
-
rubygems_version: 2.6.14
|
87
|
+
rubygems_version: 3.0.6
|
90
88
|
signing_key:
|
91
89
|
specification_version: 4
|
92
90
|
summary: CLI for Cloudwalk projects
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module Cloudwalk
|
2
|
-
module Posxml
|
3
|
-
class PosxmlApplication
|
4
|
-
include Cloudwalk::ManagerHelper
|
5
|
-
|
6
|
-
def self.all
|
7
|
-
if @apps
|
8
|
-
@apps
|
9
|
-
else
|
10
|
-
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml?access_token=#{self.token}&per_page=100")))
|
11
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
12
|
-
|
13
|
-
total_pages = response["pagination"]["total_pages"].to_i
|
14
|
-
apps = response["posxmlapps"]
|
15
|
-
(total_pages - 1).times do |page|
|
16
|
-
url = "#{self.host}/v1/apps/posxml?access_token=#{self.token}&per_page=100&page=#{page+2}"
|
17
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
18
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
19
|
-
|
20
|
-
apps.concat(response["posxmlapps"])
|
21
|
-
end
|
22
|
-
@apps = apps
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.get(id)
|
27
|
-
url = "#{self.host}/v1/apps/posxml/#{id}?access_token=#{self.token}"
|
28
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
29
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
30
|
-
|
31
|
-
response["posxml_app"]
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.get_name(id)
|
35
|
-
get(id)["name"]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
@@ -1,77 +0,0 @@
|
|
1
|
-
module Cloudwalk
|
2
|
-
module Posxml
|
3
|
-
class PosxmlVersion
|
4
|
-
include Cloudwalk::ManagerHelper
|
5
|
-
|
6
|
-
def self.get_or_create(app, version)
|
7
|
-
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
|
8
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
9
|
-
|
10
|
-
#TODO
|
11
|
-
#`curl -X GET "https://api-staging.cloudwalk.io/v1/apps/posxml/3082/versions?access_token=#{self.token}`
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.all(app_id)
|
15
|
-
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100")))
|
16
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
17
|
-
|
18
|
-
total_pages = response["pagination"]["total_pages"].to_i
|
19
|
-
versions = response["appversions"]
|
20
|
-
|
21
|
-
(total_pages - 1).times do |page|
|
22
|
-
url = "#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100&page=#{page+2}"
|
23
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
24
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
25
|
-
|
26
|
-
versions.concat(response["posxmlapps"])
|
27
|
-
end
|
28
|
-
versions
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.get(app_id, id)
|
32
|
-
url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{id}?access_token=#{token}"
|
33
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
34
|
-
if response["message"]
|
35
|
-
raise ManagerException.new(response["message"])
|
36
|
-
else
|
37
|
-
response["app_version"]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
# NEW
|
43
|
-
def self.find(app_name, version_name)
|
44
|
-
applications = Cloudwalk::Posxml::PosxmlApplication.all
|
45
|
-
app_remote = applications.find { |app_json| app_json["posxml_app"]["name"] == xml2posxml(app_name) }
|
46
|
-
app_posxml = app_remote["posxml_app"]
|
47
|
-
versions = Cloudwalk::Posxml::PosxmlVersion.all(app_posxml["id"])
|
48
|
-
version = versions.find { |json| json["app_version"]["number"] == version_name }
|
49
|
-
|
50
|
-
[app_posxml, (version && version["app_version"])]
|
51
|
-
end
|
52
|
-
|
53
|
-
# NEW B4
|
54
|
-
def self.update(app_id, version_id, bytecode, app_parameters = nil)
|
55
|
-
url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{version_id}?access_token=#{self.token}"
|
56
|
-
uri = URI(url)
|
57
|
-
form = {"bytecode" => Base64.strict_encode64(bytecode)}
|
58
|
-
response = nil
|
59
|
-
|
60
|
-
if app_parameters
|
61
|
-
form["authorizer_url"] = app_parameters["authorizer_url"]
|
62
|
-
form["description"] = app_parameters["description"]
|
63
|
-
form["pos_display_label"] = app_parameters["pos_display_label"]
|
64
|
-
form["displayable"] = app_parameters["pos_display_label"] != "X"
|
65
|
-
end
|
66
|
-
|
67
|
-
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
68
|
-
request = Net::HTTP::Put.new(uri)
|
69
|
-
request.set_form_data(form)
|
70
|
-
response = http.request(request)
|
71
|
-
end
|
72
|
-
[response.code.to_i == 200, response]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
@@ -1,70 +0,0 @@
|
|
1
|
-
module Cloudwalk
|
2
|
-
module Ruby
|
3
|
-
class RubyApplication
|
4
|
-
include Cloudwalk::ManagerHelper
|
5
|
-
|
6
|
-
# NEW
|
7
|
-
def self.find(name)
|
8
|
-
self.all.find do |app|
|
9
|
-
app["name"] == name
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.all
|
14
|
-
if @apps
|
15
|
-
@apps
|
16
|
-
else
|
17
|
-
response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/ruby?access_token=#{self.token}&per_page=100")))
|
18
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
19
|
-
|
20
|
-
total_pages = response["pagination"]["total_pages"].to_i
|
21
|
-
@apps = response["rubyapps"].collect {|r| r["ruby_app"] }
|
22
|
-
(total_pages - 1).times do |page|
|
23
|
-
url = "#{self.host}/v1/apps/ruby?access_token=#{self.token}&per_page=100&page=#{page+2}"
|
24
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
25
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
26
|
-
|
27
|
-
@apps.concat(response["ruby_app"])
|
28
|
-
end
|
29
|
-
@apps
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# BASE
|
34
|
-
|
35
|
-
def self.get(id)
|
36
|
-
url = "#{self.host}/v1/apps/ruby/#{id}?access_token=#{self.token}"
|
37
|
-
response = JSON.parse(Net::HTTP.get(URI(url)))
|
38
|
-
raise ManagerException.new(response["message"]) if response["message"]
|
39
|
-
|
40
|
-
response["ruby_app"]
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.get_name(id)
|
44
|
-
get(id)["name"]
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.update(app_id, bytecode, app_parameters = nil)
|
48
|
-
url = "#{self.host}/v1/apps/ruby/#{app_id}?access_token=#{self.token}"
|
49
|
-
uri = URI(url)
|
50
|
-
form = {"bytecode" => Base64.strict_encode64(bytecode)}
|
51
|
-
response = nil
|
52
|
-
|
53
|
-
if app_parameters
|
54
|
-
form["authorizer_url"] = app_parameters["authorizer_url"]
|
55
|
-
form["description"] = app_parameters["description"]
|
56
|
-
form["pos_display_label"] = app_parameters["pos_display_label"]
|
57
|
-
form["displayable"] = app_parameters["pos_display_label"] != "X"
|
58
|
-
end
|
59
|
-
|
60
|
-
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
61
|
-
request = Net::HTTP::Put.new(uri)
|
62
|
-
request.set_form_data(form)
|
63
|
-
response = http.request(request)
|
64
|
-
end
|
65
|
-
[response.code.to_i == 200, response]
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|