xsys 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b252c024a11ee752ec3a5d1813e8e21b495cfa8
4
- data.tar.gz: db5c4e65a5e6f8af9ac8bb9afcdf86a55876683e
3
+ metadata.gz: ad3b0937aab36ef0b51174abe1ae3802c7f3c671
4
+ data.tar.gz: ac5d1d9c1c3c473cbe83209b4c2c91ba029889b7
5
5
  SHA512:
6
- metadata.gz: d912ba5c83dd2d4177cf2d1f1e217dc465fde8a1c16f11b14095949d5bb3d72802b36c1d3b4de12abdde3ddb46ac089fa530c971bbda91b171687fbe581154c0
7
- data.tar.gz: 1efd2327767964bd3ac7e964930f3aa25213f1f32c86b3776489ca0a7e369279ce2b51937278e96c81517f2233a42b6f56b302fedc9838e7927ad9b14d555f62
6
+ metadata.gz: d26af9016080af21d6ad5bc92ac57c3a521c1a6ba4dc39388030d1e0454243b349dc0be6396c6051a21c50f12beb41ec346cfeaef43a2a555a5148897f94e6e5
7
+ data.tar.gz: 55379f99473aa080448be57773b8ea7db1b2329517ff196b280521fc5216441f3f6cb64a3b03f210e2ec2f6359304b83939e6ad72c6e9ae1e535c62b027292e2
data/CHANGELOG.md CHANGED
@@ -104,12 +104,16 @@
104
104
 
105
105
  ## v0.0.27
106
106
 
107
- * renamed transaction_id to id in transaction
107
+ * Renamed transaction_id to id in transaction
108
108
 
109
109
  ## v0.1.0
110
110
 
111
- * redesigned API to minimal functionality
111
+ * Redesigned API to minimal functionality
112
112
 
113
113
  ## v0.1.1
114
114
 
115
- * general fixes
115
+ * General fixes
116
+
117
+ ## v0.2.0
118
+
119
+ * Added background jobs
data/lib/xsys.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'xsys/model/background_job'
2
+ require 'xsys/model/job_event'
1
3
  require 'xsys/model/price_list'
2
4
  require 'xsys/model/product'
3
5
  require 'xsys/model/product_category'
@@ -15,3 +17,4 @@ require 'xsys/version'
15
17
  # dependencies
16
18
  require 'rest-client'
17
19
  require 'singleton'
20
+ require 'time'
data/lib/xsys/api.rb CHANGED
@@ -5,6 +5,19 @@ module Xsys
5
5
  @access_token = args[:access_token]
6
6
  end
7
7
 
8
+ def self.get_background_job(code)
9
+ Model::BackgroundJob.new(get_request("/background_jobs/#{code}")[:body])
10
+ end
11
+
12
+ def self.update_background_job(code, params)
13
+ Model::BackgroundJob.new(put_request("/background_jobs/#{code}", params)[:body])
14
+ end
15
+
16
+ def self.add_background_job_event(code, event_description)
17
+ params = { description: event_description }
18
+ Model::JobEvent.new(post_request("/background_jobs/#{code}/job_events", params)[:body])
19
+ end
20
+
8
21
  def self.get_price_lists(filters={})
9
22
  get_request('/price_lists')[:body].map { |r| Model::PriceList.new(r) }
10
23
  end
@@ -0,0 +1,30 @@
1
+ module Xsys
2
+ module Model
3
+ class BackgroundJob
4
+ def self.attr_list
5
+ [:code, :shop_code, :label, :arguments, :status, :processed_items
6
+ :total_items, :observations, :started_at, :ended_at, :events]
7
+ end
8
+
9
+ attr_reader *attr_list
10
+
11
+ def initialize(attributes={})
12
+ attributes.each do |k, v|
13
+ if k.to_s == 'events'
14
+ @events = v.map { |x| JobEvent.new(x) }
15
+ elsif k.to_s == 'started_at'
16
+ @started_at = Time.parse(v)
17
+ elsif k.to_s == 'ended_at'
18
+ @ended_at = Time.parse(v)
19
+ else
20
+ self.send("#{k}=", v) if self.respond_to?(k)
21
+ end
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ attr_writer *attr_list
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,21 @@
1
+ module Xsys
2
+ module Model
3
+ class JobEvent
4
+ def self.attr_list
5
+ [:description]
6
+ end
7
+
8
+ attr_reader *attr_list
9
+
10
+ def initialize(attributes={})
11
+ attributes.each do |k, v|
12
+ self.send("#{k}=", v) if self.respond_to?(k)
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ attr_writer *attr_list
19
+ end
20
+ end
21
+ end
@@ -11,14 +11,16 @@ module Xsys
11
11
 
12
12
  def initialize(attributes={})
13
13
  attributes.each do |k, v|
14
- if k == 'category'
14
+ if k.to_s == 'category'
15
15
  @category = ProductCategory.new(v)
16
- elsif k == 'provider'
16
+ elsif k.to_s == 'provider'
17
17
  @provider = ProductProvider.new(v)
18
- elsif k == 'stocks'
18
+ elsif k.to_s == 'stocks'
19
19
  @stocks = v.map { |s| Stock.new(s) }
20
- elsif k == 'prices'
20
+ elsif k.to_s == 'prices'
21
21
  @prices = v.map { |s| ProductPriceList.new(s) }
22
+ elsif k.to_s == 'cost_updated_at'
23
+ @cost_updated_at = Time.parse(v)
22
24
  else
23
25
  self.send("#{k}=", v) if self.respond_to?(k)
24
26
  end
@@ -10,7 +10,11 @@ module Xsys
10
10
 
11
11
  def initialize(attributes={})
12
12
  attributes.each do |k, v|
13
- self.send("#{k}=", v) if self.respond_to?(k)
13
+ if k.to_s == 'price_updated_at'
14
+ @price_updated_at = Time.parse(v)
15
+ else
16
+ self.send("#{k}=", v) if self.respond_to?(k)
17
+ end
14
18
  end
15
19
  end
16
20
 
data/lib/xsys/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xsys
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xsys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matias Hick
@@ -64,6 +64,8 @@ files:
64
64
  - README.md
65
65
  - lib/xsys.rb
66
66
  - lib/xsys/api.rb
67
+ - lib/xsys/model/background_job.rb
68
+ - lib/xsys/model/job_event.rb
67
69
  - lib/xsys/model/price_list.rb
68
70
  - lib/xsys/model/product.rb
69
71
  - lib/xsys/model/product_category.rb