xendit-client 0.1.3 → 0.2.1

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: 5ba880f6f462a36d0cc9a351e08bbc33a995a48011b7f971061c8477d26b32be
4
- data.tar.gz: 3fe098330fa423121e5cc43046aebdef7925bda66578be5ef8d84ceba97453aa
3
+ metadata.gz: 5312150c0d3fe1b861c1f6d637d0adeca789fba2dd8f7f72eaf1e3a65172158c
4
+ data.tar.gz: 361f6b4678e1c6262dcf70667c7eb5485d08da5255d24222a9c7c800e7f5c29e
5
5
  SHA512:
6
- metadata.gz: 430d44ef655dbaf49321847a863368553c1e97a3fffe508533571da7e210286509feef9698d62798711df3bce66090d009cbe70f7dff4b481a9bde2a71c008ef
7
- data.tar.gz: 66579310b386d6152892d896edb07e0956de2584e3352fef7b1218eee5fa6e35692763633eb6c7f07fcd3c4f20865961523c847aa7304ba9e96e20fd9475c87a
6
+ metadata.gz: f5e51a6fc669ddca2ae06403313b717760943edf25e74a4e1fd1c9ca8f02c05ca4a216792d76b135f619eb24a3938d2bbf6424a46006b9b56e347c8dba2ed171
7
+ data.tar.gz: f2c0f442a0701ad613831b32138a41f3944ab8750e4c713cf07587472b1a82b3d9fbb20d0ad4befeb082f1e91326af9a3313fa7674de170dbbd1e8a4530b21b1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+
2
+ ### Version 0.1.1 (date: 02 Mar 2023)
3
+
4
+ * Fix invoice cancel request
5
+
1
6
  ### Version 0.1.0 (date: 15 Jan 2023)
2
7
 
3
8
  * Support invoice API
9
+
10
+ ### Version 0.2.0 (date: 24 Jan 2023)
11
+
12
+ * Support Receive Webhook Payload
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xendit-client (0.1.1)
4
+ xendit-client (0.2.1)
5
5
  faraday (~> 2.7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- faraday (2.7.2)
10
+ faraday (2.7.4)
11
11
  faraday-net_http (>= 2.0, < 3.1)
12
12
  ruby2_keywords (>= 0.0.4)
13
13
  faraday-net_http (3.0.2)
@@ -12,7 +12,7 @@ module Xendit
12
12
  handle_response(response)
13
13
  end
14
14
 
15
- def post(url, body)
15
+ def post(url, body = {})
16
16
  conn = create_connection()
17
17
  response = conn.post(url, JSONSerializer.encode(body))
18
18
  handle_response(response)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Xendit
4
- VERSION = "0.1.3"
4
+ VERSION = "0.2.1"
5
5
  end
@@ -0,0 +1,32 @@
1
+ require_relative 'json_serializer'
2
+
3
+ module Xendit
4
+ class Webhook
5
+ def initialize(request)
6
+ if Xendit.callback_verification_token.nil? || Xendit.callback_verification_token == ""
7
+ raise "Please configure your Callback Verification Token"
8
+ end
9
+
10
+ @request = request
11
+ end
12
+
13
+ def verified?
14
+ secure_compare(Xendit.callback_verification_token, @request.headers["X-CALLBACK-TOKEN"])
15
+ end
16
+
17
+ def data
18
+ verified? ? JSONSerializer.decode(@request.body.read) : {"error" => "The source not verified"}
19
+ end
20
+
21
+ private
22
+
23
+ def secure_compare(a, b)
24
+ return false if a.blank? || b.blank? || a.bytesize != b.bytesize
25
+ l = a.unpack "C#{a.bytesize}"
26
+
27
+ res = 0
28
+ b.each_byte { |byte| res |= byte ^ l.shift }
29
+ res == 0
30
+ end
31
+ end
32
+ end
data/lib/xendit.rb CHANGED
@@ -2,10 +2,11 @@
2
2
 
3
3
  require_relative "xendit/version"
4
4
  require_relative 'xendit/resources'
5
+ require_relative 'xendit/webhook'
5
6
 
6
7
  module Xendit
7
8
  class << self
8
- attr_accessor :api_key
9
+ attr_accessor :api_key, :callback_verification_token
9
10
  attr_writer :base_url
10
11
 
11
12
  def base_url
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xendit-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nasrul Gunawan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -59,6 +59,7 @@ files:
59
59
  - lib/xendit/resources/invoice.rb
60
60
  - lib/xendit/response.rb
61
61
  - lib/xendit/version.rb
62
+ - lib/xendit/webhook.rb
62
63
  - sig/xendit.rbs
63
64
  homepage: https://github.com/nasrulgunawan/xendit-client
64
65
  licenses: []