beanie 0.1.2 → 0.1.3

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: 9490141bb625f770191ce98bab41c4230e60b1ee
4
- data.tar.gz: fc6fca6369a77a519c9aafc9daf931c204405476
3
+ metadata.gz: 0be70757db5a53fe03f310cbc2e939455c1a2020
4
+ data.tar.gz: 1d90afd4f7c703df8038554cd1a075a2d8f4000a
5
5
  SHA512:
6
- metadata.gz: 013754c7bf2d03d33b97b4dbfd1b7c2210151b29ae12b613b95f6ab53d15f948d84b01f93db11a08a59162f5c8f5d833bec64d07da09470ab35b7513a8d9458a
7
- data.tar.gz: 6420c802395b5d246e1eff19e716ad40bc8c36ec4d0109fdad9ac71e5a0d61bef9564aae26427968d75641bcc50a75d06af16ab08251fc0c62272c8283447edd
6
+ metadata.gz: 518c5a6921a048676986efaa57d95281974556baa922368fff212789bbb269ab930782d0209a4ecc2739ce1bc72870abb749a3dea4787e7dba27d6d7b1b161d8
7
+ data.tar.gz: 65d45ed530e4f7a2aecc8b99844882c3f70889fee8febad718a3437de8f00f83aa9dc2d122d86c62b657e16bdc484f9e650ac5ef3f5d8e9562a34332e1354d4c
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/beanie.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["dtynan@kalopa.com"]
11
11
  spec.summary = %q{Ruby bindings for the Beanie API}
12
12
  spec.description = %q{Beanie - your cloud accountant. See https://bean.ie for more details.}
13
- spec.homepage = "https://bean.ie/docs/api/ruby"
13
+ spec.homepage = "https://bean.ie/help/api/ruby"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
data/lib/beanie/api.rb CHANGED
@@ -56,7 +56,16 @@ module Beanie
56
56
  data = extract()
57
57
  data.delete("id")
58
58
  objdata = {object_name => data}
59
- response = self.class.post(objdata, opts)
59
+ if @id
60
+ #
61
+ # Needs an update...
62
+ opts[:id] = @id
63
+ response = self.class.put(objdata, opts)
64
+ else
65
+ #
66
+ # Needs a create!
67
+ response = self.class.post(objdata, opts)
68
+ end
60
69
  self.populate(response[self.object_name])
61
70
  end
62
71
 
@@ -96,7 +105,11 @@ module Beanie
96
105
  # Run a REST PUT against the Beanie API.
97
106
  def self.put(data, opts = {})
98
107
  response = RestClient.put(build_url(opts), data, headers=set_headers)
99
- JSON.parse(response.body)
108
+ if response.body and response.body.length > 0
109
+ JSON.parse(response.body)
110
+ else
111
+ ""
112
+ end
100
113
  end
101
114
 
102
115
  #
@@ -31,7 +31,7 @@ module Beanie
31
31
  class Company < Api
32
32
  attr_accessor :id, :name, :email, :address1, :address2, :address3, :city
33
33
  attr_accessor :state_county, :website, :phone, :fax, :zip_postcode
34
- attr_accessor :registration, :next_fye, :runcom, :country, :currency
34
+ attr_accessor :registration, :next_fye, :country, :currency
35
35
  attr_accessor :invoice_template_id, :purchase_shipping_nominal_account_id
36
36
  attr_accessor :sales_shipping_nominal_account_id
37
37
  attr_accessor :accounts_receivable_nominal_account_id
@@ -54,7 +54,6 @@ module Beanie
54
54
  @zip_postcode = nil
55
55
  @registration = nil
56
56
  @next_fye = nil
57
- @runcom = nil
58
57
  @country = nil
59
58
  @currency = nil
60
59
  @invoice_template_id = nil
@@ -29,7 +29,31 @@
29
29
  #
30
30
  module Beanie
31
31
  class NominalAccount < Api
32
- attr_accessor :id, :code, :name, :nominal_account_category_id
32
+ attr_accessor :id, :na_type, :code, :name, :nominal_account_category_id
33
+
34
+ TYPE_FIXED_ASSETS = 0
35
+ TYPE_CURRENT_ASSETS = 1
36
+ TYPE_CURRENT_LIABILITIES = 2
37
+ TYPE_NON_CURRENT_LIABILITIES = 3
38
+ TYPE_RESERVES = 4
39
+ TYPE_INCOME = 5
40
+ TYPE_DIRECT_COSTS = 6
41
+ TYPE_EXPENSE = 7
42
+ TYPE_OTHER_EXPENSE = 8
43
+ TYPE_OTHER_INCOME = 9
44
+
45
+ TYPE_NAMES = [
46
+ ["Fixed Assets", TYPE_FIXED_ASSETS],
47
+ ["Current Assets", TYPE_CURRENT_ASSETS],
48
+ ["Current Liabilities", TYPE_CURRENT_LIABILITIES],
49
+ ["Non-Current Liabilities", TYPE_NON_CURRENT_LIABILITIES],
50
+ ["Reserves", TYPE_RESERVES],
51
+ ["Income", TYPE_INCOME],
52
+ ["Direct Costs", TYPE_DIRECT_COSTS],
53
+ ["Expense", TYPE_EXPENSE],
54
+ ["Other Expense", TYPE_OTHER_EXPENSE],
55
+ ["Other Income", TYPE_OTHER_INCOME]
56
+ ].freeze
33
57
 
34
58
  #
35
59
  # Initialize instance variables
@@ -39,5 +63,11 @@ module Beanie
39
63
  @name = nil
40
64
  @nominal_account_category_id = nil
41
65
  end
66
+
67
+ #
68
+ # Show proper name for type
69
+ def type_name
70
+ TYPE_NAMES[na_type][0]
71
+ end
42
72
  end
43
73
  end
@@ -31,30 +31,6 @@ module Beanie
31
31
  class NominalAccountCategory < Api
32
32
  attr_accessor :id, :na_type, :name, :parent_category_id
33
33
 
34
- NA_TYPE_FIXED_ASSETS = 0
35
- NA_TYPE_CURRENT_ASSETS = 1
36
- NA_TYPE_CURRENT_LIABILITIES = 2
37
- NA_TYPE_NON_CURRENT_LIABILITIES = 3
38
- NA_TYPE_RESERVES = 4
39
- NA_TYPE_INCOME = 5
40
- NA_TYPE_DIRECT_COSTS = 6
41
- NA_TYPE_EXPENSE = 7
42
- NA_TYPE_OTHER_EXPENSE = 8
43
- NA_TYPE_OTHER_INCOME = 9
44
-
45
- NA_TYPE_NAMES = [
46
- ["Fixed Assets", NA_TYPE_FIXED_ASSETS],
47
- ["Current Assets", NA_TYPE_CURRENT_ASSETS],
48
- ["Current Liabilities", NA_TYPE_CURRENT_LIABILITIES],
49
- ["Non-Current Liabilities", NA_TYPE_NON_CURRENT_LIABILITIES],
50
- ["Reserves", NA_TYPE_RESERVES],
51
- ["Income", NA_TYPE_INCOME],
52
- ["Direct Costs", NA_TYPE_DIRECT_COSTS],
53
- ["Expense", NA_TYPE_EXPENSE],
54
- ["Other Expense", NA_TYPE_OTHER_EXPENSE],
55
- ["Other Income", NA_TYPE_OTHER_INCOME]
56
- ].freeze
57
-
58
34
  #
59
35
  # Initialize instance variables
60
36
  def initialize
@@ -66,8 +42,8 @@ module Beanie
66
42
 
67
43
  #
68
44
  # Show proper name for type
69
- def na_type_name
70
- NA_TYPE_NAMES[na_type][0]
45
+ def type_name
46
+ NominalAccount::TYPE_NAMES[na_type][0]
71
47
  end
72
48
  end
73
49
  end
@@ -29,7 +29,7 @@
29
29
  #
30
30
  module Beanie
31
31
  class Product < Api
32
- attr_accessor :id, :description, :name, :sku, :is_service
32
+ attr_accessor :id, :description, :name, :code, :is_service
33
33
  attr_accessor :nominal_account_id, :product_category_id, :unit_of_measure
34
34
 
35
35
  #
@@ -38,7 +38,7 @@ module Beanie
38
38
  @id = nil
39
39
  @description = nil
40
40
  @name = nil
41
- @sku = nil
41
+ @code = nil
42
42
  @is_service = nil
43
43
  @nominal_account_id = nil
44
44
  @product_category_id = nil
@@ -46,7 +46,6 @@ module Beanie
46
46
  end
47
47
 
48
48
  def self.find_by_name(name)
49
- puts "Find by name: #{name}"
50
49
  Beanie.find("products", "name", name)
51
50
  end
52
51
  end
@@ -43,20 +43,25 @@ module Beanie
43
43
  @sales_order_id = nil
44
44
  @bill_of_material_id = nil
45
45
  @work_centre_group_id = nil
46
+ @_private_data = nil
46
47
  end
47
48
 
48
49
  #
49
50
  # Get the private data
50
51
  def private_data
51
- response = ProductionOrder.get(:url => "/production_orders/#{@id}/private_data")
52
- response["data"]
52
+ unless @_private_data
53
+ response = ProductionOrder.get(:url => "/production_orders/#{@id}/private_data")
54
+ @_private_data = response["data"]
55
+ end
56
+ return @_private_data
53
57
  end
54
58
 
55
59
  #
56
60
  # Update/set the private data
57
61
  def private_data=(data)
62
+ @_private_data = data
58
63
  pdata = {:data => data}
59
- response = ProductionOrder.post(pdata, :url => "/production_orders/#{@id}/private_data")
64
+ ProductionOrder.post(pdata, :url => "/production_orders/#{@id}/private_data")
60
65
  end
61
66
 
62
67
  #
@@ -28,5 +28,5 @@
28
28
  # POSSIBILITY OF SUCH DAMAGE.
29
29
  #
30
30
  module Beanie
31
- VERSION = "0.1.2"
31
+ VERSION = "0.1.3"
32
32
  end
@@ -29,18 +29,41 @@
29
29
  #
30
30
  module Beanie
31
31
  class WorkCentre < Api
32
- attr_accessor :id, :name, :location, :description, :work_centre_group_id
32
+ attr_accessor :id, :name, :state, :location, :description, :work_centre_group_id
33
+
34
+ STATE_UNKNOWN = 0
35
+ STATE_MAINTENANCE = 1
36
+ STATE_OFFLINE = 2
37
+ STATE_READY = 3
38
+ STATE_BUSY = 4
39
+ STATE_DONE = 5
40
+
41
+ STATE_NAMES = [
42
+ ["Unknown State", STATE_UNKNOWN],
43
+ ["Maintenance Mode", STATE_MAINTENANCE],
44
+ ["Offline (Unavailable)", STATE_OFFLINE],
45
+ ["Ready for Work", STATE_READY],
46
+ ["Working (Busy)", STATE_BUSY],
47
+ ["Work Complete", STATE_DONE]
48
+ ].freeze
33
49
 
34
50
  #
35
51
  # Initialize instance variables
36
52
  def initialize
37
53
  @id = nil
38
54
  @name = nil
55
+ @state = nil
39
56
  @location = nil
40
57
  @description = nil
41
58
  @work_centre_group_id = nil
42
59
  end
43
60
 
61
+ #
62
+ # State name
63
+ def state_name
64
+ STATE_NAMES[@state][0]
65
+ end
66
+
44
67
  #
45
68
  # Get the private data
46
69
  def private_data
@@ -58,9 +81,12 @@ module Beanie
58
81
  #
59
82
  # Construct the path a little differently...
60
83
  def construct_path(opts = {})
61
- raise ":work_centre_group_id is not defined" unless opts[:work_centre_group_id]
62
- path = "/work_centre_groups/#{opts[:work_centre_group_id]}/work_centres"
63
- opts.delete(:work_centre_group_id)
84
+ if opts[:work_centre_group_id]
85
+ path = "/work_centre_groups/#{opts[:work_centre_group_id]}/work_centres"
86
+ opts.delete(:work_centre_group_id)
87
+ else
88
+ path = "/work_centres"
89
+ end
64
90
  path
65
91
  end
66
92
  end
data/lib/beanie.rb CHANGED
@@ -28,7 +28,7 @@
28
28
  # POSSIBILITY OF SUCH DAMAGE.
29
29
  #
30
30
  # Ruby bindings for the Beanie API
31
- # Docs at http://bean.ie/docs/api/ruby
31
+ # Docs at http://bean.ie/help/api/ruby
32
32
  require 'rest-client'
33
33
  require 'json'
34
34
 
@@ -105,13 +105,12 @@ module Beanie
105
105
  'Set your API Key using "Beanie.api_key = <API-KEY>". ' \
106
106
  'Set your Secret Key using "Beanie.secret_key = <SECRET>". ' \
107
107
  'You can generate API keys from the Beanie web interface. ' \
108
- 'See https://bean.ie/en/apikey for details or email support@bean.ie ' \
109
- 'for further assistance.')
108
+ 'See https://bean.ie/help/api/key for details or email ' \
109
+ 'support@bean.ie for further assistance.')
110
110
  end
111
111
  url = "#{@base_uri}/api/authenticate"
112
112
  data = {:api_key => @api_key, :secret_key => @secret_key}
113
113
  response = RestClient.post(url, data.to_json, :content_type => :json, :accept => :json)
114
- puts "Token response: #{response.code} (data: #{response.body})"
115
114
  raise AuthenticationError.new('Authentication failure.') unless response.code == 202
116
115
  data = JSON.parse(response.body)
117
116
  @@token = data['token']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beanie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dermot Tynan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
11
+ date: 2018-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -129,7 +129,7 @@ files:
129
129
  - lib/beanie/version.rb
130
130
  - lib/beanie/work_centre.rb
131
131
  - lib/beanie/work_centre_group.rb
132
- homepage: https://bean.ie/docs/api/ruby
132
+ homepage: https://bean.ie/help/api/ruby
133
133
  licenses:
134
134
  - MIT
135
135
  metadata: {}