economic-rest 0.1.6 → 0.1.7

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
  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