xendit-client 0.1.3 → 0.2.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: 5ba880f6f462a36d0cc9a351e08bbc33a995a48011b7f971061c8477d26b32be
4
- data.tar.gz: 3fe098330fa423121e5cc43046aebdef7925bda66578be5ef8d84ceba97453aa
3
+ metadata.gz: e5ba46e7d5f706ab629b4ab99cbaf152157a367cc44a0da2c0d4c0fbf9a5696d
4
+ data.tar.gz: cbb977acca0e1e5aff4b378a2d30249823f11d939123ef421d7e374b373c4bf1
5
5
  SHA512:
6
- metadata.gz: 430d44ef655dbaf49321847a863368553c1e97a3fffe508533571da7e210286509feef9698d62798711df3bce66090d009cbe70f7dff4b481a9bde2a71c008ef
7
- data.tar.gz: 66579310b386d6152892d896edb07e0956de2584e3352fef7b1218eee5fa6e35692763633eb6c7f07fcd3c4f20865961523c847aa7304ba9e96e20fd9475c87a
6
+ metadata.gz: cdb26928e949a3aebaff67d14583bf5992e734e18dec8ec1f76c52bedcfcafe9fcc01f4beaf9e78228c58329e7cefd23514011182fa4b60ed9df5fbeb5b655f8
7
+ data.tar.gz: 7576890f01c33837c71dc44d723c9fcdcd0ff1d003427ea5cc44e2a52d7204e0029ab5ea70c69f61e2844bd009329a23c861d2da437158828e8042869a0d6e73
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
1
  ### Version 0.1.0 (date: 15 Jan 2023)
2
2
 
3
3
  * Support invoice API
4
+
5
+ ### Version 0.2.0 (date: 24 Jan 2023)
6
+
7
+ * Support Receive Webhook Payload
@@ -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.0"
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.0
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-01-24 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: []