cloudwalk 1.14.3 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|