Class: Cloudwalk::Posxml::PosxmlVersion
- Inherits:
-
Object
- Object
- Cloudwalk::Posxml::PosxmlVersion
- Includes:
- ManagerHelper
- Defined in:
- lib/cloudwalk/posxml/posxml_version.rb
Class Method Summary collapse
- .all(app_id) ⇒ Object
-
.find(app_name, version_name) ⇒ Object
NEW.
- .get(app_id, id) ⇒ Object
- .get_or_create(app, version) ⇒ Object
-
.update(app_id, version_id, bytecode, app_parameters = nil) ⇒ Object
NEW B4.
Methods included from ManagerHelper
#host, included, #posxml2xml, #token, #xml2posxml, #xml2rb
Class Method Details
.all(app_id) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cloudwalk/posxml/posxml_version.rb', line 14 def self.all(app_id) response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100"))) raise ManagerException.new(response["message"]) if response["message"] total_pages = response["pagination"]["total_pages"].to_i versions = response["appversions"] (total_pages - 1).times do |page| url = "#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100&page=#{page+2}" response = JSON.parse(Net::HTTP.get(URI(url))) raise ManagerException.new(response["message"]) if response["message"] versions.concat(response["posxmlapps"]) end versions end |
.find(app_name, version_name) ⇒ Object
NEW
43 44 45 46 47 48 49 50 51 |
# File 'lib/cloudwalk/posxml/posxml_version.rb', line 43 def self.find(app_name, version_name) applications = Cloudwalk::Posxml::PosxmlApplication.all app_remote = applications.find { |app_json| app_json["posxml_app"]["name"] == xml2posxml(app_name) } app_posxml = app_remote["posxml_app"] versions = Cloudwalk::Posxml::PosxmlVersion.all(app_posxml["id"]) version = versions.find { |json| json["app_version"]["number"] == version_name } [app_posxml, (version && version["app_version"])] end |
.get(app_id, id) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/cloudwalk/posxml/posxml_version.rb', line 31 def self.get(app_id, id) url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{id}?access_token=#{token}" response = JSON.parse(Net::HTTP.get(URI(url))) if response["message"] raise ManagerException.new(response["message"]) else response["app_version"] end end |
.get_or_create(app, version) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/cloudwalk/posxml/posxml_version.rb', line 6 def self.get_or_create(app, version) response = JSON.parse(Net::HTTP.get(URI("#{self.host}/v1/apps/posxml/#{app_id}/versions?access_token=#{self.token}&per_page=100"))) raise ManagerException.new(response["message"]) if response["message"] #TODO #`curl -X GET "https://api-staging.cloudwalk.io/v1/apps/posxml/3082/versions?access_token=#{self.token}` end |
.update(app_id, version_id, bytecode, app_parameters = nil) ⇒ Object
NEW B4
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cloudwalk/posxml/posxml_version.rb', line 54 def self.update(app_id, version_id, bytecode, app_parameters = nil) url = "#{self.host}/v1/apps/posxml/#{app_id}/versions/#{version_id}?access_token=#{self.token}" uri = URI(url) form = {"bytecode" => Base64.strict_encode64(bytecode)} response = nil if app_parameters form["authorizer_url"] = app_parameters["authorizer_url"] form["description"] = app_parameters["description"] form["pos_display_label"] = app_parameters["pos_display_label"] form["displayable"] = app_parameters["pos_display_label"] != "X" end Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http| request = Net::HTTP::Put.new(uri) request.set_form_data(form) response = http.request(request) end [response.code.to_i == 200, response] end |