economic-rest 0.1.6 → 0.1.7

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
  SHA256:
3
- metadata.gz: bc4ebe704f751fe2eb86534e9824041037228be63e53192c3d8655665ae88389
4
- data.tar.gz: 4ba74d3b99d0a9be802d595283e49f432cf6dcafe03f767f48df7485972534bf
3
+ metadata.gz: 54c64f6375d3d4c521ca7d2fa65ad388cfd83ffb055ab1bd9182f3676d739f55
4
+ data.tar.gz: 714553722be2e463249e564300dd7df127ca33a9b7b437a7cd226952ea60df09
5
5
  SHA512:
6
- metadata.gz: d99c732ed08f7af6ce94c9b482473d92451bf410926e83acae511f847f79f6306e125b35c9e1bcb00c98ea7abafb1c24a5253898b061d0812197cc60c8f8687d
7
- data.tar.gz: c5660a285d9b69e4a5205e1f2507c644cdd1ce3500057c022e6b0c38bcba0d1bf0585273c41fc5056f1a35a1415f345f1dd2f8042210cb4b1dfd976aa034d1e6
6
+ metadata.gz: b5680d2596c44bdc284753726e640e660504f78c80511cbe0be8229a5cc8258a3fba374b6cb8a51e79ca42773c6faba5c57fcf25416602d9434a2c9176b6a901
7
+ data.tar.gz: e97cdb878fbb4558f11d682a3c98e6c9ba35883e00138953571052fa4671f304b8973b254f45c91dd622af09c3f3185c5c52bda85bfc7ced224d7c2ae6173565
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- economic-rest (0.1.5)
4
+ economic-rest (0.1.6)
5
5
  rest-client
6
6
 
7
7
  GEM
data/lib/economic/base.rb CHANGED
@@ -12,13 +12,18 @@ module Economic
12
12
  (@attributes ||= []).push(name)
13
13
  end
14
14
 
15
- def self.field(name, id: false)
15
+ def self.field(name, id: false, model: nil)
16
16
  economic_cased_attibute_name = name.to_s
17
17
  attr_accessor economic_cased_attibute_name
18
18
  alias_method snake_case(economic_cased_attibute_name), economic_cased_attibute_name
19
19
  alias_method "#{snake_case(economic_cased_attibute_name)}=", "#{economic_cased_attibute_name}="
20
20
  alias_method 'id_key', economic_cased_attibute_name if id
21
21
  add_attribute economic_cased_attibute_name
22
+ if model
23
+ define_method("create_#{economic_cased_attibute_name[0...-1]}") do |class_instance|
24
+ repo.save(self, submodel: class_instance)
25
+ end
26
+ end
22
27
  end
23
28
 
24
29
  def values_based_on_hash(hash)
@@ -20,19 +20,31 @@ module Economic
20
20
  "/#{page_or_id}"
21
21
  end
22
22
  url << "&filter=#{filter_text}" unless filter_text == ''
23
- response = RestClient.get(url, headers)
23
+ response = RestClient.get(url, headers) do |response, _request, _result|
24
+ response
25
+ end
24
26
  test_response(response)
25
27
  end
26
28
 
27
- def save(model)
29
+ def save(model, submodel: '')
28
30
  url = ''
29
31
  url << URL
30
32
  url << endpoint_name.to_s if endpoint_name
31
33
  url << "/#{model.id_key}"
32
- response = if model.id_key
33
- RestClient.put(url, model.to_h.to_json, headers)
34
+ url << sub_endpoint_name(submodel) unless submodel == ''
35
+ relevant_model = if submodel == ''
36
+ model
37
+ else
38
+ submodel
39
+ end
40
+ response = if relevant_model.id_key.nil?
41
+ RestClient.post(url, relevant_model.to_h.to_json, headers) do |response, _request, _result|
42
+ response
43
+ end
34
44
  else
35
- RestClient.post(url, model.to_h.to_json, headers)
45
+ RestClient.put(url, relevant_model.to_h.to_json, headers) do |response, _request, _result|
46
+ response
47
+ end
36
48
  end
37
49
  test_response(response)
38
50
  end
@@ -91,11 +103,18 @@ module Economic
91
103
  else
92
104
  end_p = end_p.gsub('Repo', 's')
93
105
  end
106
+ end_p = end_p.gsub('Journals', 'Journals-Experimental')
107
+ end_p.downcase
108
+ end
109
+
110
+ def sub_endpoint_name(submodel)
111
+ end_p = submodel.class.name.sub('Economic::', '')
112
+ end_p = "/#{end_p}s"
94
113
  end_p.downcase
95
114
  end
96
115
 
97
116
  def test_response(response)
98
- raise response if response.code != 200
117
+ raise response unless response.code.between?(200, 299)
99
118
 
100
119
  response
101
120
  end
@@ -0,0 +1,11 @@
1
+ module Economic
2
+ class Journal < Base
3
+ field :entries
4
+ field :journalNumber, id: true
5
+ field :name
6
+ field :vouchers, model: :Voucher
7
+
8
+ field :settings
9
+ field :templates
10
+ end
11
+ end
@@ -0,0 +1,4 @@
1
+ module Economic
2
+ class JournalRepo < Economic::BaseRepo
3
+ end
4
+ end
@@ -1,5 +1,5 @@
1
1
  module Economic
2
2
  module Rest
3
- VERSION = '0.1.6'.freeze
3
+ VERSION = '0.1.7'.freeze
4
4
  end
5
5
  end
data/lib/economic/rest.rb CHANGED
@@ -14,6 +14,11 @@ require 'economic/orders/archived_repo'
14
14
  require 'economic/orders/drafts_repo'
15
15
  require 'economic/orders/sent_repo'
16
16
 
17
+ require 'economic/journal_repo'
18
+ require 'economic/journal'
19
+
20
+ require 'economic/voucher'
21
+
17
22
  module Economic
18
23
  class Demo
19
24
  def self.hello
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: economic-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Klogborg
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-30 00:00:00.000000000 Z
11
+ date: 2019-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -101,6 +101,8 @@ files:
101
101
  - lib/economic/base_repo.rb
102
102
  - lib/economic/customer.rb
103
103
  - lib/economic/customer_repo.rb
104
+ - lib/economic/journal.rb
105
+ - lib/economic/journal_repo.rb
104
106
  - lib/economic/order.rb
105
107
  - lib/economic/orders/archived_repo.rb
106
108
  - lib/economic/orders/drafts_repo.rb