act_as_api_client 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +17 -2
- data/Gemfile.lock +2 -2
- data/lib/act_as_api_client/clients/authorize_net_notifications_client.rb +30 -0
- data/lib/act_as_api_client/clients/authorize_net_webhooks_client.rb +42 -0
- data/lib/act_as_api_client/clients/http_client.rb +1 -1
- data/lib/act_as_api_client/version.rb +1 -1
- data/lib/act_as_api_client.rb +14 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 585bfe652e889c7eaebcd2dfefd0a0c295ae87a390f9522de24fc2126e9011b3
|
4
|
+
data.tar.gz: 5d61e33b3f9702b1bbcc2bac97913278dcbcfc6e7db780e0ea4b1a1efdfb14cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2cc7b10a33b1d6955b6aad98709aa58ddba78e38e7804ab6f8b4b8be49ce4ac4b93077cdfa0a9f81e6ea5501784ce02d0ff278228affb4a33a23d71ed52adbe
|
7
|
+
data.tar.gz: c3926de463c5fef33ce98c7158165cffe8fb19d5eef4a94b72fc14fbc51b9a0966134845d899a23310e26b786326a1fe9ee1f058390f7c19809efefa43f7b822
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config --auto-gen-only-exclude`
|
3
|
-
# on 2022-07-
|
3
|
+
# on 2022-07-28 12:30:04 UTC using RuboCop version 0.93.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -12,12 +12,13 @@ Metrics/AbcSize:
|
|
12
12
|
Exclude:
|
13
13
|
- 'lib/act_as_api_client/clients/github_client.rb'
|
14
14
|
|
15
|
-
# Offense count:
|
15
|
+
# Offense count: 5
|
16
16
|
# Configuration parameters: CountComments, Max, CountAsOne, ExcludedMethods.
|
17
17
|
# ExcludedMethods: refine
|
18
18
|
Metrics/BlockLength:
|
19
19
|
Exclude:
|
20
20
|
- '**/*.gemspec'
|
21
|
+
- 'spec/act_as_api_client/clients/authorize_net/authorize_net_notifications_client_spec.rb'
|
21
22
|
- 'spec/act_as_api_client/clients/github_client/find_by_spec.rb'
|
22
23
|
- 'spec/act_as_api_client/clients/github_client/find_spec.rb'
|
23
24
|
- 'spec/act_as_api_client/clients/github_client/where_spec.rb'
|
@@ -46,6 +47,13 @@ RSpec/ExampleLength:
|
|
46
47
|
Exclude:
|
47
48
|
- 'spec/act_as_api_client/clients/http_client_spec.rb'
|
48
49
|
|
50
|
+
# Offense count: 2
|
51
|
+
# Configuration parameters: CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
52
|
+
RSpec/FilePath:
|
53
|
+
Exclude:
|
54
|
+
- 'spec/act_as_api_client/clients/authorize_net/authorize_net_notifications_client_spec.rb'
|
55
|
+
- 'spec/act_as_api_client/clients/authorize_net/authorize_net_webhooks_client_spec.rb'
|
56
|
+
|
49
57
|
# Offense count: 3
|
50
58
|
# Configuration parameters: Max.
|
51
59
|
RSpec/NestedGroups:
|
@@ -53,9 +61,16 @@ RSpec/NestedGroups:
|
|
53
61
|
- 'spec/act_as_api_client/clients/github_client/find_by_spec.rb'
|
54
62
|
|
55
63
|
# Offense count: 1
|
64
|
+
# Configuration parameters: MinBodyLength.
|
65
|
+
Style/GuardClause:
|
66
|
+
Exclude:
|
67
|
+
- 'lib/act_as_api_client/clients/authorize_net_webhooks_client.rb'
|
68
|
+
|
69
|
+
# Offense count: 4
|
56
70
|
# Cop supports --auto-correct.
|
57
71
|
# Configuration parameters: AutoCorrect, Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
58
72
|
# URISchemes: http, https
|
59
73
|
Layout/LineLength:
|
60
74
|
Exclude:
|
61
75
|
- 'lib/act_as_api_client/clients/github_client.rb'
|
76
|
+
- 'spec/support/vcr_setup.rb'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
act_as_api_client (0.
|
4
|
+
act_as_api_client (0.2.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -44,7 +44,7 @@ GEM
|
|
44
44
|
rubocop-ast (>= 0.6.0)
|
45
45
|
ruby-progressbar (~> 1.7)
|
46
46
|
unicode-display_width (>= 1.4.0, < 2.0)
|
47
|
-
rubocop-ast (1.
|
47
|
+
rubocop-ast (1.19.1)
|
48
48
|
parser (>= 3.1.1.0)
|
49
49
|
rubocop-rspec (1.44.1)
|
50
50
|
rubocop (~> 0.87)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "http_client"
|
4
|
+
require_relative "./authorize_net_webhooks_client"
|
5
|
+
require "base64"
|
6
|
+
|
7
|
+
module ActAsApiClient
|
8
|
+
module Clients
|
9
|
+
module AuthorizeNetNotificationsClient
|
10
|
+
include AuthorizeNetWebhooksClient
|
11
|
+
|
12
|
+
def where(parameters = {})
|
13
|
+
# GET https://apitest.authorize.net/rest/v1/notifications?from_date=2017-03-01&to_date=2017-03-13&offset=0&limit=100
|
14
|
+
# GET https://apitest.authorize.net/rest/v1/notifications?deliveryStatus=Failed
|
15
|
+
# [:from_date, :to_date, :offset, :limit, :deliveryStatus]
|
16
|
+
|
17
|
+
get("https://#{base_uri}/rest/v1/notifications/",
|
18
|
+
headers: { "Authorization" => auth },
|
19
|
+
params: parameters)
|
20
|
+
end
|
21
|
+
|
22
|
+
def find(uuid)
|
23
|
+
raise StandardError, "uuid is not provided" if uuid.empty?
|
24
|
+
|
25
|
+
get("https://#{base_uri}/rest/v1/notifications/#{uuid}",
|
26
|
+
headers: { "Authorization" => auth })
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "http_client"
|
4
|
+
require "base64"
|
5
|
+
|
6
|
+
module ActAsApiClient
|
7
|
+
module Clients
|
8
|
+
module AuthorizeNetWebhooksClient
|
9
|
+
include HttpClient
|
10
|
+
DEFAULT_OPTIONS = {
|
11
|
+
mode: :production
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@options = DEFAULT_OPTIONS.merge(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def find(uuid)
|
19
|
+
raise StandardError, "uuid is not provided" if uuid.empty?
|
20
|
+
|
21
|
+
get("https://#{base_uri}/rest/v1/webhooks/#{uuid}",
|
22
|
+
headers: { "Authorization" => auth })
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def base_uri
|
28
|
+
if @options[:mode] == :test
|
29
|
+
"apitest.authorize.net"
|
30
|
+
else
|
31
|
+
"authorize.net"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def auth
|
36
|
+
if options[:payment_user]
|
37
|
+
"Basic #{Base64.strict_encode64("#{options[:payment_user]}:#{options[:payment_pass]}")}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -23,7 +23,7 @@ module ActAsApiClient
|
|
23
23
|
end
|
24
24
|
|
25
25
|
case response
|
26
|
-
when Net::HTTPNotFound, Net::HTTPSuccess, Net::HTTPUnprocessableEntity
|
26
|
+
when Net::HTTPNotFound, Net::HTTPSuccess, Net::HTTPUnprocessableEntity, Net::HTTPUnauthorized
|
27
27
|
::JSON.parse(response.body)
|
28
28
|
end
|
29
29
|
end
|
data/lib/act_as_api_client.rb
CHANGED
@@ -17,13 +17,26 @@ class ApiClient
|
|
17
17
|
def set_general_client(client_for:)
|
18
18
|
return if client_for.nil?
|
19
19
|
|
20
|
+
class_name = convert_underscore_to_camelcase(client_for)
|
21
|
+
|
20
22
|
require(File.expand_path("act_as_api_client/clients/#{client_for}_client",
|
21
23
|
File.dirname(__FILE__)))
|
22
|
-
include const_get("ActAsApiClient::Clients::#{
|
24
|
+
include const_get("ActAsApiClient::Clients::#{class_name}Client")
|
23
25
|
end
|
24
26
|
|
25
27
|
def set_options(options:)
|
26
28
|
define_method("options") { options }
|
27
29
|
end
|
30
|
+
|
31
|
+
# Converting from authorize_net_webhooks_client to AuthorizeNetWebhooksClient
|
32
|
+
#
|
33
|
+
# @param value [String] string with underscores
|
34
|
+
#
|
35
|
+
# @return [String] transformed in camel case format string
|
36
|
+
def convert_underscore_to_camelcase(value)
|
37
|
+
value.to_s.capitalize.gsub(/_(.)/) do |s|
|
38
|
+
s.upcase.gsub("_", "")
|
39
|
+
end
|
40
|
+
end
|
28
41
|
end
|
29
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: act_as_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Rukomoynikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Helps you to build reliable API clients in a minute. Just add act_as_api_client
|
14
14
|
to your classes
|
@@ -35,6 +35,8 @@ files:
|
|
35
35
|
- demo.rb
|
36
36
|
- lib/act_as_api_client.rb
|
37
37
|
- lib/act_as_api_client/base_api_methods.rb
|
38
|
+
- lib/act_as_api_client/clients/authorize_net_notifications_client.rb
|
39
|
+
- lib/act_as_api_client/clients/authorize_net_webhooks_client.rb
|
38
40
|
- lib/act_as_api_client/clients/github_client.rb
|
39
41
|
- lib/act_as_api_client/clients/http_client.rb
|
40
42
|
- lib/act_as_api_client/version.rb
|