virtusprinter 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []