xsys 0.1.1 → 0.2.0

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