xendit-client 0.1.3 → 0.2.0

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: 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: []