lpt-ruby 0.4.1 → 0.6.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: 101c5d634b204e89f400cf527e8b8ff057b460908cf864a1c18a853ff0519b95
4
- data.tar.gz: f4dcc512ae65eb7ac498093d5d56c3c6775c553a232b62954879f43800be5e40
3
+ metadata.gz: 06eaf76b737a85ea2f6fe9675129a861df5f82ce6367076ce8f4c22171051f62
4
+ data.tar.gz: 9b265cc8bf5bb0249b5202b42183ec1d90db9655727cb574081edd8079c8d4ec
5
5
  SHA512:
6
- metadata.gz: 5eed1b027c5a49804b0df69f4d0de67402a9ed6c62c860ff1e49a39b9b7eaba2045268d7370ac59773958f812f53a1d83b8a5b024881c2d79b610ffa9b71cff4
7
- data.tar.gz: dfd4a7034611bfdd12fde5230bb56df87ec8b0f138f95d48c42919d42b95ad5f314c6f6e22886ad20091b03e863f82c2d76d00452cd03c9820cb26755f3504f9
6
+ metadata.gz: ff57e08031724708dc27e123309bbee271c0b50c0ba02e4bd92f3bfda0c288ca66388af4b7e91fcf968ac61e43031e52ae826144928ced24d7c31c196026dc6c
7
+ data.tar.gz: 458cdf89362062a466f8f6135b938251e944d76139b41dec449b8455e9294536d73b4b918e4166f763c68c24159a929c075e614018d687abc39d7b71fed7354c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [0.6.0] - 2026-03-18
2
+
3
+ - Introduce AddressParams class for Profile and Instrument requests
4
+
5
+ ## [0.5.0] - 2025-09-09
6
+
7
+ - Introduces better error handling for resources
8
+ - ResourceCreationFailure - a runtime error when a resource cannot be created
9
+ - ResourceRetrievalFailure - a runtime error whena resource cannot be retrieved
10
+
1
11
  ## [0.4.1] - 2025-07-29
2
12
 
3
13
  - The first official release of the LPT Ruby Gem
data/README.md CHANGED
@@ -33,6 +33,27 @@ The available environments are
33
33
  Lpt::Environment::TEST
34
34
  Lpt::Environment::DEV
35
35
 
36
+ ### Creating a Profile
37
+
38
+ ```
39
+ address = Lpt::Requests::AddressParams.new(
40
+ line1: "742 Evergreen Terrace"
41
+ city: "Springfield"
42
+ )
43
+
44
+ request = Lpt::Requests::ProfileRequest.new(
45
+ name: "Homer J. Simpson",
46
+ profile_id: 123456789,
47
+ address: address,
48
+ contact: {
49
+ phone: "KL5-1230",
50
+ email: "homer@example.com"
51
+ }
52
+ )
53
+
54
+ profile = Lpt::Resources::Profile.create(request)
55
+ ```
56
+
36
57
  ## Development
37
58
 
38
59
  After checking out the repo, run `bin/setup` to install dependencies. Then, run
@@ -10,6 +10,8 @@ module Lpt
10
10
  response = client.post(path, request.to_json)
11
11
  handle_response resource, response
12
12
  resource
13
+ rescue Faraday::Error => e
14
+ raise Lpt::ResourceCreationFailure, e.message
13
15
  end
14
16
 
15
17
  protected
@@ -8,6 +8,8 @@ module Lpt
8
8
  resource = new(id: id)
9
9
  response = client.get(resource.resource_path)
10
10
  new(response.body)
11
+ rescue Faraday::Error => e
12
+ raise Lpt::ResourceRetrievalFailure, e.message
11
13
  end
12
14
  end
13
15
  end
data/lib/lpt/errors.rb ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lpt
4
+ class LptError < RuntimeError; end
5
+
6
+ class ResourceCreationFailure < LptError; end
7
+ class ResourceRetrievalFailure < LptError; end
8
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lpt
4
+ module Requests
5
+ class AddressParams < Params
6
+ attr_accessor :line1, :line2, :line3, :city, :subdivision, :postal_code,
7
+ :country
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lpt
4
+ module Requests
5
+ class Params
6
+ def initialize(attributes = {})
7
+ attributes.each_pair do |k, v|
8
+ setter = :"#{k}="
9
+ public_send(setter, v)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/lpt/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lpt
4
- VERSION = "0.4.1"
4
+ VERSION = "0.6.0"
5
5
  end
data/lib/lpt.rb CHANGED
@@ -8,6 +8,7 @@ require "logger"
8
8
  require_relative "lpt/authentication"
9
9
  require_relative "lpt/version"
10
10
  require_relative "lpt/environment"
11
+ require_relative "lpt/errors"
11
12
  require_relative "lpt/lpt_client"
12
13
 
13
14
  require_relative "lpt/api_operations/create"
@@ -20,6 +21,9 @@ require_relative "lpt/resources/payment"
20
21
  require_relative "lpt/resources/profile"
21
22
 
22
23
  require_relative "lpt/requests/api_request"
24
+ require_relative "lpt/requests/params"
25
+
26
+ require_relative "lpt/requests/address_params"
23
27
  require_relative "lpt/requests/empty_request"
24
28
  require_relative "lpt/requests/instrument_request"
25
29
  require_relative "lpt/requests/instrument_token_request"
@@ -27,8 +31,6 @@ require_relative "lpt/requests/payment_request"
27
31
  require_relative "lpt/requests/profile_request"
28
32
 
29
33
  module Lpt
30
- class Error < StandardError; end
31
-
32
34
  DEFAULT_CA_BUNDLE_PATH = "#{__dir__}/data/ca-certificates.crt"
33
35
 
34
36
  LEVEL_DEBUG = Logger::DEBUG
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lpt-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LPT
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-29 00:00:00.000000000 Z
11
+ date: 2026-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -59,11 +59,14 @@ files:
59
59
  - lib/lpt/api_operations/update.rb
60
60
  - lib/lpt/authentication.rb
61
61
  - lib/lpt/environment.rb
62
+ - lib/lpt/errors.rb
62
63
  - lib/lpt/lpt_client.rb
64
+ - lib/lpt/requests/address_params.rb
63
65
  - lib/lpt/requests/api_request.rb
64
66
  - lib/lpt/requests/empty_request.rb
65
67
  - lib/lpt/requests/instrument_request.rb
66
68
  - lib/lpt/requests/instrument_token_request.rb
69
+ - lib/lpt/requests/params.rb
67
70
  - lib/lpt/requests/payment_capture_request.rb
68
71
  - lib/lpt/requests/payment_refund_request.rb
69
72
  - lib/lpt/requests/payment_request.rb