virtusprinter 0.1.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.
Files changed (2) hide show
  1. data/lib/virtusprinter.rb +105 -0
  2. metadata +59 -0
@@ -0,0 +1,105 @@
1
+ #encoding: UTF-8
2
+ require "httparty"
3
+
4
+ class VirtusPrinter
5
+ include HTTParty
6
+ attr_reader :error
7
+
8
+ def initialize(remote = true)
9
+ config = YAML::load_file("./config.yml")
10
+ @vp_domain = config['virtusprinter']['domain']
11
+ @vp_subdomain = config['virtusprinter']['subdomain']
12
+ @vp_email = config['virtusprinter']['email']
13
+ @vp_password = config['virtusprinter']['password']
14
+ @vp_local = config['virtusprinter']['local']
15
+ if @vp_local
16
+ self.class.base_uri "http://#{@vp_subdomain}.lvh.me:3000"
17
+ else
18
+ self.class.base_uri "http://#{@vp_subdomain}.#{@vp_domain}"
19
+ end
20
+ @auth = {:username => @vp_email, :password => @vp_password}
21
+ end
22
+
23
+ def post_label(printer_id, xml)
24
+ response = self.class.post "/printers/#{printer_id}/labels.xml", :basic_auth => @auth, :headers => { "Content-Type" => "application/xml"}, :body => xml
25
+ case response.code
26
+ when 201
27
+ return true
28
+ when 404
29
+ @error = "No encontré la impresora #{printer_id}"
30
+ return false
31
+ when 406
32
+ @error = "No existe el formato"
33
+ return false
34
+ when 500
35
+ @error = "Error en el servidor"
36
+ return false
37
+ else
38
+ @error = "Error desconocido"
39
+ return false
40
+ end
41
+ end
42
+
43
+ def get_labels(computer_id)
44
+ response = self.class.get "/computers/#{computer_id}/labels.xml", :basic_auth => @auth
45
+ case response.code
46
+ when 200
47
+ return true, response.body
48
+ when 401
49
+ @error = "Error en usuario o contraseña"
50
+ return false
51
+ when 404
52
+ @error = "No encontré la computadora #{computer_id}"
53
+ return false
54
+ when 500
55
+ @error = "Error en el servidor"
56
+ return false
57
+ else
58
+ @error = "Error desconocido #{response.code}"
59
+ return false
60
+ end
61
+ end
62
+
63
+ def update_label(label_id, status, error = '')
64
+ response = self.class.put "/labels/#{label_id}.xml", :basic_auth => @auth, :body => {:status => status, :error => error}
65
+ case response.code
66
+ when 200
67
+ return true
68
+ when 400
69
+ @error = "Parámetros incorrectos"
70
+ return false
71
+ when 404
72
+ @error = "No encontré la etiqueta"
73
+ return false
74
+ when 401
75
+ @error = "Error en usuario o contraseña"
76
+ return false
77
+ when 500
78
+ @error = "Error en el servidor"
79
+ return false
80
+ else
81
+ @error = "Error desconocido #{response.code}"
82
+ return false
83
+ end
84
+ end
85
+
86
+ def test_template(template_id, port)
87
+ response = self.class.get "/templates/#{template_id}/test.xml", :basic_auth => @auth, :query => {"port" => port}
88
+ case response.code
89
+ when 200
90
+ return true, response.body
91
+ when 401
92
+ @error = "Error en usuario o contraseña"
93
+ return false
94
+ when 404
95
+ @error = "No encontré el formato #{template_id}"
96
+ return false
97
+ when 500
98
+ @error = "Error en el servidor"
99
+ return false
100
+ else
101
+ @error = "Error desconocido #{response.code}"
102
+ return false
103
+ end
104
+ end
105
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: virtusprinter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Hector Sansores
9
+ - Leopoldo Ramirez
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-02-28 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: httparty
17
+ requirement: &12357380 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - =
21
+ - !ruby/object:Gem::Version
22
+ version: 0.8.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *12357380
26
+ description: ''
27
+ email:
28
+ - hector.sansores@virtus.com.mx
29
+ - leopoldo.ramirez@virtus.com.mx
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/virtusprinter.rb
35
+ homepage: http://rubygems.org/gems/virtusprinter
36
+ licenses: []
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 1.8.15
56
+ signing_key:
57
+ specification_version: 3
58
+ summary: Wrapper for virtusprinter API
59
+ test_files: []