sprint_client 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sprint_client.rb +25 -7
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4cd904fb03773aa281e55de6e10dfc0e6be2b24a198fa95ffe1a82372264e926
4
- data.tar.gz: 51a498b4afb2c6889fa4d9aa9f713eb42f1fb7f44bafa64730d6114c83b4892b
3
+ metadata.gz: c21d3dac4bda250212579d1b8d3b593e0208d365354d9aae1e1085ecb6711bef
4
+ data.tar.gz: a029637cc6ff98f21409ec28f050dd7058dae5f539437115806e3e93601a4b00
5
5
  SHA512:
6
- metadata.gz: d0e3bd5b194bf9154388352c89e4ced28449da45fa72b0d6670d2ee6d9d974e0f2f718abea0ba6b89f2d4e07dc7fd124ad2ecb821f5b9aa2ee1270f4f3d258e5
7
- data.tar.gz: bad2bbc3b52516b56aabda4feb8b60764e6a31f5217504536f6367c839e127a16c4ec67e1183a0dee9cc4b84bee2e052d0eb068a2166ef384ac94f4b57603e66
6
+ metadata.gz: f50f3845d341a9f1f6a2484ee17a18b99b4e925894377a04da186a30eab3d7da953fb274c62d328a9ef6e5d4b94e9aa8b58c63c61db1549caa7563efd7796e54
7
+ data.tar.gz: f4297e1d3e2040622a4b5990f3561b86d1f11d364d1c7be3e8b7c1838eec0c68017f5a708e9d83d7f4100b3097312c3dd4cfa5fdb17c39be30e0927b7fd3448b
data/lib/sprint_client.rb CHANGED
@@ -9,9 +9,14 @@ class SPrintClient
9
9
  require 'json'
10
10
 
11
11
  # printer_name - a string showing which printer to send the request to
12
- # label_template_name - a string to identify which label template to be used in the print request
12
+ # label_template_name - a string to identify which label template to be used in the print request e.g plate_384.yml.erb
13
13
  # merge_fields_list - a list of hashes, each containing the field values for a particular label
14
- # e.g [{ barcode: "DN111111", date: "1-APR-2020" }, { barcode: "DN222222", date: "2-APR-2020" }] would print two labels
14
+ # e.g
15
+ # [
16
+ # {"right_text"=>"DN9000003B", "left_text"=>"DN9000003B", "barcode"=>"DN9000003B", "extra_right_text"=>"DN9000003B LTHR-384 RT", "extra_left_text"=>"10-NOV-2020"},
17
+ # {"right_text"=>"DN9000003B", "left_text"=>"DN9000003B", "barcode"=>"DN9000003B", "extra_right_text"=>"DN9000003B LTHR-384 RT", "extra_left_text"=>"10-NOV-2020"}
18
+ # ]
19
+ # would print two labels
15
20
  def self.send_print_request(printer_name, label_template_name, merge_fields_list)
16
21
  # define GraphQL print mutation
17
22
  query = "mutation Print($printRequest: PrintRequest!, $printer: String!) {
@@ -22,10 +27,25 @@ class SPrintClient
22
27
 
23
28
  # locate the required label template
24
29
  path = get_label_template_path(label_template_name)
25
- template = get_template(path)
30
+ begin
31
+ template = get_template(path)
32
+ rescue StandardError => e
33
+ return Net::HTTPResponse.new('1.1', '422', "Could not find label template with name #{label_template_name}")
34
+ end
26
35
 
27
36
  # parse the template for each label
28
37
  layouts = set_layouts(merge_fields_list, template)
38
+ # layouts: [
39
+ # {
40
+ # "labelSize"=>{"width"=>68, "height"=>6, "displacement"=>13},
41
+ # "barcodeFields"=>[{"x"=>21, "y"=>0, "cellWidth"=>0.2, "barcodeType"=>"code39", "value"=>"DN9000003B", "height"=>5}],
42
+ # "textFields"=>[{"x"=>1, "y"=>4, "value"=>"DN9000003B", "font"=>"proportional", "fontSize"=>1.7}, {"x"=>47, "y"=>4, "value"=>"DN9000003B", "font"=>"proportional", "fontSize"=>1.7}]
43
+ # },
44
+ # {
45
+ # "labelSize"=>{"width"=>68, "height"=>6, "displacement"=>13},
46
+ # "textFields"=>[{"x"=>1, "y"=>3, "value"=>"10-NOV-2020", "font"=>"proportional", "fontSize"=>1.7}, {"x"=>15, "y"=>3, "value"=>"DN9000003B LTHR-384 RT", "font"=>"proportional", "fontSize"=>1.7}]
47
+ # }
48
+ # ]
29
49
 
30
50
  # build the body of the print request
31
51
  body = {
@@ -39,7 +59,6 @@ class SPrintClient
39
59
  }
40
60
 
41
61
  send_post(body)
42
-
43
62
  end
44
63
 
45
64
  def self.sprint_uri=(sprint_uri)
@@ -51,6 +70,8 @@ class SPrintClient
51
70
  Net::HTTP.post URI(@@sprint_uri),
52
71
  body.to_json,
53
72
  'Content-Type' => 'application/json'
73
+ rescue StandardError => e
74
+ Net::HTTPResponse.new('1.1', '422', "Failed to send post to #{@@sprint_uri}")
54
75
  end
55
76
 
56
77
  def self.get_template(path)
@@ -66,10 +87,7 @@ class SPrintClient
66
87
  layouts
67
88
  end
68
89
 
69
- private
70
-
71
90
  def self.get_label_template_path(label_template_name)
72
91
  File.join('config', 'sprint', 'label_templates', label_template_name)
73
92
  end
74
-
75
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprint_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harriet Craven
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-11-05 00:00:00.000000000 Z
12
+ date: 2020-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  requirements: []
54
- rubygems_version: 3.1.2
54
+ rubygems_version: 3.0.8
55
55
  signing_key:
56
56
  specification_version: 4
57
57
  summary: A client gem for SPrint