seller_ledger-ruby 1.0.0 → 1.5.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
  SHA256:
3
- metadata.gz: 434363366daf337993198517b9e6d09863f0d9468eb5349afe01b33f36f0b88f
4
- data.tar.gz: 27b1e0190cf222b859969332cb2df177271f1da740010ad5143cd8d601c8e8a2
3
+ metadata.gz: 39ace969eea3dcd86fe39df969357fd3f7637bb1ec43ef824cdc5d4b2c944cc6
4
+ data.tar.gz: a13c768184a164d79bb745c54ca3528a1acfd7ed50dd40cef15bbee75af5252d
5
5
  SHA512:
6
- metadata.gz: dded41a31c8235e4006e1ed7e4c2f808f4d63e374b09f637341b7faf507c2282d3ceb80d172ecaa03e72d5e873308905296c661fa1698f1eacb4e8e32e322611
7
- data.tar.gz: d092730d6981b17c778dee32c0555438125ea5afa77b654f3f40157ea6a53ba6c3a13f2b23a184a42e366f7d78874c9c14a04f5fe0421202e037117b753f22d2
6
+ metadata.gz: 7c32ab845438a1aa9e320f669e06562b9fcbfc02d939bb999b130bd41f878a205ef1cec67e9e3d2dc0d1d79530bd54ae9d4a174782efed25a599ba2bd52f10fb
7
+ data.tar.gz: e7f726cbd71d87521948ee2a1b62865fce97e819e50c340ebbd501084c72ee32ccbc60cac008394f3b75db9d6f257221ddee1985d2dd08f2b431a2600378dfa6
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
- ## [Unreleased]
1
+ ## [1.2.0] - 2024-06-26
2
+
3
+ - Raise if required parameters are nil or blank
4
+
5
+ ## [1.1.0] - 2024-06-26
6
+
7
+ - Account, business, connection, and inventory endpoints
2
8
 
3
9
  ## [1.0.0] - 2024-04-29
4
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seller_ledger-ruby (1.0.0)
4
+ seller_ledger-ruby (1.2.0)
5
5
  faraday
6
6
  json
7
7
 
@@ -9,6 +9,7 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  ast (2.4.2)
12
+ coderay (1.1.3)
12
13
  diff-lcs (1.5.1)
13
14
  faraday (2.9.0)
14
15
  faraday-net_http (>= 2.0, < 3.2)
@@ -16,12 +17,16 @@ GEM
16
17
  net-http
17
18
  json (2.7.2)
18
19
  language_server-protocol (3.17.0.3)
20
+ method_source (1.1.0)
19
21
  net-http (0.4.1)
20
22
  uri
21
23
  parallel (1.24.0)
22
24
  parser (3.3.0.5)
23
25
  ast (~> 2.4.1)
24
26
  racc
27
+ pry (0.14.2)
28
+ coderay (~> 1.1)
29
+ method_source (~> 1.0)
25
30
  racc (1.7.3)
26
31
  rainbow (3.1.1)
27
32
  rake (13.2.1)
@@ -61,6 +66,7 @@ PLATFORMS
61
66
  x86_64-linux
62
67
 
63
68
  DEPENDENCIES
69
+ pry
64
70
  rake (~> 13.0)
65
71
  rspec (~> 3.0)
66
72
  rubocop (~> 1.21)
data/README.md CHANGED
@@ -4,11 +4,11 @@
4
4
 
5
5
  Install the gem and add to the application's Gemfile by executing:
6
6
 
7
- $ bundle add seller_ledger
7
+ $ bundle add seller_ledger-ruby
8
8
 
9
9
  If bundler is not being used to manage dependencies, install the gem by executing:
10
10
 
11
- $ gem install seller_ledger
11
+ $ gem install seller_ledger-ruby
12
12
 
13
13
  ## Usage
14
14
 
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SellerLedger
4
+ class Client
5
+ module Accounts
6
+ def list_accounts(params = {})
7
+ paginated_request(
8
+ "/v1/accounts",
9
+ params,
10
+ "accounts"
11
+ )
12
+ end
13
+
14
+ def get_account(id)
15
+ validate(id)
16
+ get("/v1/accounts/#{id}")
17
+ end
18
+
19
+ def list_account_transactions(id, params = {})
20
+ validate(id)
21
+ paginated_request(
22
+ "/v1/accounts/#{id}/transactions",
23
+ params,
24
+ "transactions"
25
+ )
26
+ end
27
+
28
+ def list_account_entries(id, params = {})
29
+ validate(id)
30
+ paginated_request(
31
+ "/v1/accounts/#{id}/entries",
32
+ params,
33
+ "entries"
34
+ )
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SellerLedger
4
+ class Client
5
+ module Business
6
+ def get_business
7
+ get("/v1/business")
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SellerLedger
4
+ class Client
5
+ module ConnectionTransactions
6
+ def list_orders(connection_id, params = {})
7
+ validate(connection_id)
8
+ paginated_request(
9
+ "/v1/connections/#{connection_id}/orders",
10
+ params,
11
+ "transactions"
12
+ )
13
+ end
14
+
15
+ def create_order(connection_id, params)
16
+ validate(connection_id)
17
+ post("/v1/connections/#{connection_id}/orders", params)
18
+ end
19
+
20
+ def update_order(connection_id, transaction_id, params)
21
+ validate(connection_id)
22
+ validate(transaction_id)
23
+ put("/v1/connections/#{connection_id}/orders/#{transaction_id}", params)
24
+ end
25
+
26
+ def get_order(connection_id, transaction_id)
27
+ validate(connection_id)
28
+ validate(transaction_id)
29
+ get("/v1/connections/#{connection_id}/orders/#{transaction_id}")
30
+ end
31
+
32
+ def delete_order(connection_id, transaction_id)
33
+ validate(connection_id)
34
+ validate(transaction_id)
35
+ delete("/v1/connections/#{connection_id}/orders/#{transaction_id}")
36
+ end
37
+
38
+ def list_refunds(connection_id, params = {})
39
+ validate(connection_id)
40
+ paginated_request(
41
+ "/v1/connections/#{connection_id}/refunds",
42
+ params,
43
+ "transactions"
44
+ )
45
+ end
46
+
47
+ def create_refund(connection_id, params)
48
+ validate(connection_id)
49
+ post("/v1/connections/#{connection_id}/refunds", params)
50
+ end
51
+
52
+ def update_refund(connection_id, transaction_id, params)
53
+ validate(connection_id)
54
+ validate(transaction_id)
55
+ put("/v1/connections/#{connection_id}/refunds/#{transaction_id}", params)
56
+ end
57
+
58
+ def get_refund(connection_id, transaction_id)
59
+ validate(connection_id)
60
+ validate(transaction_id)
61
+ get("/v1/connections/#{connection_id}/refunds/#{transaction_id}")
62
+ end
63
+
64
+ def delete_refund(connection_id, transaction_id)
65
+ validate(connection_id)
66
+ validate(transaction_id)
67
+ delete("/v1/connections/#{connection_id}/refunds/#{transaction_id}")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SellerLedger
4
+ class Client
5
+ module Connections
6
+ def list_connections(params = {})
7
+ paginated_request(
8
+ "/v1/connections",
9
+ params,
10
+ "connections"
11
+ )
12
+ end
13
+
14
+ def create_connection(params)
15
+ post("/v1/connections", params)
16
+ end
17
+
18
+ def get_connection(id)
19
+ validate(id)
20
+ get("/v1/connections/#{id}")
21
+ end
22
+
23
+ def delete_connection(id)
24
+ validate(id)
25
+ delete("/v1/connections/#{id}")
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SellerLedger
4
+ class Client
5
+ module Inventory
6
+ def list_inventory_purchases(params = {})
7
+ paginated_request(
8
+ "/v1/inventory/purchases",
9
+ params,
10
+ "purchases"
11
+ )
12
+ end
13
+
14
+ def create_inventory_purchase(params)
15
+ post("/v1/inventory/purchases", params)
16
+ end
17
+
18
+ def get_inventory_purchase(id)
19
+ validate(id)
20
+ get("/v1/inventory/purchases/#{id}")
21
+ end
22
+
23
+ def delete_inventory_purchase(id)
24
+ validate(id)
25
+ delete("/v1/inventory/purchases/#{id}")
26
+ end
27
+ end
28
+ end
29
+ end
@@ -3,28 +3,31 @@
3
3
  module SellerLedger
4
4
  class Client
5
5
  module MileageTransactions
6
- def list_mileage_transactions(params = {})
6
+ def list_mileage_expenses(params = {})
7
7
  paginated_request(
8
- "/v1/transactions/mileage",
8
+ "/v1/mileage_expenses",
9
9
  params,
10
- "transactions"
10
+ "mileage_expenses"
11
11
  )
12
12
  end
13
13
 
14
- def create_mileage_transaction(params)
15
- post("/v1/transactions/mileage", params)
14
+ def create_mileage_expense(params)
15
+ post("/v1/mileage_expenses", params)
16
16
  end
17
17
 
18
- def update_mileage_transaction(id, params)
19
- put("/v1/transactions/mileage/#{id}", params)
18
+ def update_mileage_expense(id, params)
19
+ validate(id)
20
+ put("/v1/mileage_expenses/#{id}", params)
20
21
  end
21
22
 
22
- def get_mileage_transaction(id)
23
- get("/v1/transactions/mileage/#{id}")
23
+ def get_mileage_expense(id)
24
+ validate(id)
25
+ get("/v1/mileage_expenses/#{id}")
24
26
  end
25
27
 
26
- def delete_mileage_transaction(id)
27
- delete("/v1/transactions/mileage/#{id}")
28
+ def delete_mileage_expense(id)
29
+ validate(id)
30
+ delete("/v1/mileage_expenses/#{id}")
28
31
  end
29
32
  end
30
33
  end
@@ -11,8 +11,23 @@ module SellerLedger
11
11
  )
12
12
  end
13
13
 
14
- def get_transaction(id)
15
- get("/v1/transactions/#{id}")
14
+ def get_transaction(id, params = {})
15
+ validate(id)
16
+ get("/v1/transactions/#{id}", params)
17
+ end
18
+
19
+ def create_transaction(params)
20
+ post("/v1/transactions", params)
21
+ end
22
+
23
+ def update_transaction(id, params)
24
+ validate(id)
25
+ put("/v1/transactions/#{id}", params)
26
+ end
27
+
28
+ def delete_transaction(id, params = {})
29
+ validate(id)
30
+ delete("/v1/transactions/#{id}", params)
16
31
  end
17
32
  end
18
33
  end
@@ -2,19 +2,25 @@
2
2
 
3
3
  require "faraday"
4
4
  require "json"
5
+ require "seller_ledger/client/accounts"
6
+ require "seller_ledger/client/business"
5
7
  require "seller_ledger/client/categories"
6
- require "seller_ledger/client/transactions"
8
+ require "seller_ledger/client/connections"
9
+ require "seller_ledger/client/connection_transactions"
10
+ require "seller_ledger/client/inventory"
7
11
  require "seller_ledger/client/mileage_transactions"
8
- require "seller_ledger/client/income_transactions"
9
- require "seller_ledger/client/expense_transactions"
12
+ require "seller_ledger/client/transactions"
10
13
 
11
14
  module SellerLedger
12
15
  class Client
16
+ include SellerLedger::Client::Accounts
17
+ include SellerLedger::Client::Business
13
18
  include SellerLedger::Client::Categories
14
- include SellerLedger::Client::Transactions
19
+ include SellerLedger::Client::Connections
20
+ include SellerLedger::Client::ConnectionTransactions
21
+ include SellerLedger::Client::Inventory
15
22
  include SellerLedger::Client::MileageTransactions
16
- include SellerLedger::Client::IncomeTransactions
17
- include SellerLedger::Client::ExpenseTransactions
23
+ include SellerLedger::Client::Transactions
18
24
 
19
25
  def initialize(token:, url: "https://api.sellerledger.com")
20
26
  @token = token
@@ -33,14 +39,15 @@ module SellerLedger
33
39
  request(:put, url, params).body
34
40
  end
35
41
 
36
- def delete(url)
37
- request(:delete, url).body
42
+ def delete(url, params = {})
43
+ request(:delete, url, params).body
38
44
  end
39
45
 
40
46
  def request(method, url, params)
41
47
  response = agent.send(method, url, params)
42
48
  raise SellerLedger::Errors::Unauthenticated.new if response.status == 401
43
- raise SellerLedger::Errors::Generic.new(response.body["error"]) if response.body["error"].present?
49
+ error = response.body["error"]
50
+ raise SellerLedger::Errors::Generic.new(error) if error != nil && error != ""
44
51
  response
45
52
  end
46
53
 
@@ -66,5 +73,9 @@ module SellerLedger
66
73
  f.response :json
67
74
  end
68
75
  end
76
+
77
+ def validate(value)
78
+ raise SellerLedger::Errors::ValueError.new if value == nil || value == ""
79
+ end
69
80
  end
70
81
  end
@@ -8,5 +8,11 @@ module SellerLedger
8
8
 
9
9
  class Generic < StandardError
10
10
  end
11
+
12
+ class ValueError < StandardError
13
+ def to_s
14
+ "Method parameter cannot be nil or an empty string"
15
+ end
16
+ end
11
17
  end
12
18
  end
@@ -3,7 +3,7 @@
3
3
  module SellerLedger
4
4
  MAJOR = 1
5
5
 
6
- MINOR = 0
6
+ MINOR = 5
7
7
 
8
8
  PATCH = 0
9
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seller_ledger-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Reeth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-29 00:00:00.000000000 Z
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Ruby wrapper for interacting with the Seller Ledger API
42
56
  email:
43
57
  - kevin@sellerledger.com
@@ -54,9 +68,12 @@ files:
54
68
  - Rakefile
55
69
  - lib/seller_ledger.rb
56
70
  - lib/seller_ledger/client.rb
71
+ - lib/seller_ledger/client/accounts.rb
72
+ - lib/seller_ledger/client/business.rb
57
73
  - lib/seller_ledger/client/categories.rb
58
- - lib/seller_ledger/client/expense_transactions.rb
59
- - lib/seller_ledger/client/income_transactions.rb
74
+ - lib/seller_ledger/client/connection_transactions.rb
75
+ - lib/seller_ledger/client/connections.rb
76
+ - lib/seller_ledger/client/inventory.rb
60
77
  - lib/seller_ledger/client/mileage_transactions.rb
61
78
  - lib/seller_ledger/client/transactions.rb
62
79
  - lib/seller_ledger/errors.rb
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SellerLedger
4
- class Client
5
- module ExpenseTransactions
6
- def list_expense_transactions(params = {})
7
- paginated_request(
8
- "/v1/transactions/expenses",
9
- params,
10
- "transactions"
11
- )
12
- end
13
-
14
- def create_expense_transaction(params)
15
- post("/v1/transactions/expenses", params)
16
- end
17
-
18
- def update_expense_transaction(id, params)
19
- put("/v1/transactions/expenses/#{id}", params)
20
- end
21
-
22
- def get_expense_transaction(id)
23
- get("/v1/transactions/expenses/#{id}")
24
- end
25
-
26
- def delete_expense_transaction(id)
27
- delete("/v1/transactions/expenses/#{id}")
28
- end
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SellerLedger
4
- class Client
5
- module IncomeTransactions
6
- def list_income_transactions(params = {})
7
- paginated_request(
8
- "/v1/transactions/income",
9
- params,
10
- "transactions"
11
- )
12
- end
13
-
14
- def create_income_transaction(params)
15
- post("/v1/transactions/income", params)
16
- end
17
-
18
- def update_income_transaction(id, params)
19
- put("/v1/transactions/income/#{id}", params)
20
- end
21
-
22
- def get_income_transaction(id)
23
- get("/v1/transactions/income/#{id}")
24
- end
25
-
26
- def delete_income_transaction(id)
27
- delete("/v1/transactions/income/#{id}")
28
- end
29
- end
30
- end
31
- end