moloni_api 0.1.4 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile +0 -2
- data/lib/moloni_api/api.rb +32 -42
- data/lib/moloni_api/client.rb +16 -7
- data/lib/moloni_api/constants.rb +5 -0
- data/lib/moloni_api/version.rb +1 -1
- data/lib/moloni_api.rb +1 -35
- data/moloni_api.gemspec +2 -2
- metadata +18 -8
- data/lib/moloni_api/api/config/property.rb +0 -25
- data/lib/moloni_api/api/config/property_set.rb +0 -119
- data/lib/moloni_api/api/config.rb +0 -101
- data/lib/moloni_api/configuration.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 673d8af117bb955354df4f2e33b97db71748da48432fa4f3e5cb92d348316e91
|
4
|
+
data.tar.gz: d610ee570e45511f03ad0daf45e6ad07b908c74e49c4bcbbe45ef1069a09bee9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 519b7cbbdde21394bb9bad14e89a8689352baa80715abce5a6f12af4d3c19c97fb893fdc598796518218dc3420cc083be25f2be2947bdc5002adbbe4ee5c4203
|
7
|
+
data.tar.gz: 25d2849b0bff4f596ff2663044b71e06c08cbee836ed898448f49abdcb307ddfc577e71e1cca338bb3ac682bdd68de289e056823c7f42af015abb76b1bff9342
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/lib/moloni_api/api.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'dry-configurable'
|
3
4
|
require_relative 'api_exceptions'
|
4
|
-
require_relative 'configuration'
|
5
5
|
require_relative 'constants'
|
6
6
|
require_relative 'http_status_codes'
|
7
7
|
require 'json'
|
@@ -12,20 +12,7 @@ module MoloniApi
|
|
12
12
|
include ApiExceptions
|
13
13
|
include Constants
|
14
14
|
include HttpStatusCodes
|
15
|
-
|
16
|
-
attr_reader(*MoloniApi.configuration.property_names)
|
17
|
-
|
18
|
-
attr_accessor :current_options
|
19
|
-
|
20
|
-
# Callback to update current configuration options
|
21
|
-
class_eval do
|
22
|
-
MoloniApi.configuration.property_names.each do |key|
|
23
|
-
define_method "#{key}=" do |arg|
|
24
|
-
instance_variable_set("@#{key}", arg)
|
25
|
-
current_options.merge!({ "#{key}": arg })
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
15
|
+
include Dry::Configurable
|
29
16
|
|
30
17
|
HTTP_STATUS_MAPPING = {
|
31
18
|
HTTP_BAD_REQUEST_CODE => BadRequestError,
|
@@ -36,15 +23,37 @@ module MoloniApi
|
|
36
23
|
'default' => ApiError
|
37
24
|
}.freeze
|
38
25
|
|
26
|
+
setting :follow_redirects, default: true
|
27
|
+
|
28
|
+
# The api endpoint used to connect to MoloniApi if none is set
|
29
|
+
# prd: https://api.moloni.pt/v1/
|
30
|
+
# sandbox: https://api.moloni.pt/sandbox/
|
31
|
+
setting :endpoint, default: ENV['MOLONI_API_ENDPOINT'] || API_ENDPOINT, reader: true
|
32
|
+
|
33
|
+
# The value sent in the http header for 'User-Agent' if none is set
|
34
|
+
setting :user_agent, default: "MoloniApi API Ruby Gem #{MoloniApi::VERSION}"
|
35
|
+
|
36
|
+
# By default uses the Faraday connection options if none is set
|
37
|
+
setting :connection_options, default: {}
|
38
|
+
|
39
|
+
# By default display 30 resources
|
40
|
+
setting :per_page, default: 20
|
41
|
+
|
42
|
+
# Add Faraday::RackBuilder to overwrite middleware
|
43
|
+
setting :stack
|
44
|
+
|
45
|
+
setting :api_access_token, reader: true
|
46
|
+
setting :api_client_id, default: ENV['MOLONI_API_CLIENT_ID'] || API_CLIENT_ID, reader: true
|
47
|
+
setting :api_client_secret, default: ENV['MOLONI_API_CLIENT_SECRET'] || API_CLIENT_SECRET, reader: true
|
48
|
+
|
39
49
|
# Create new API
|
40
50
|
#
|
41
51
|
# @api public
|
42
52
|
def initialize(options = {}, &block)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
send("#{key}=", opts[key])
|
53
|
+
configure do |c|
|
54
|
+
options.each_key do |key|
|
55
|
+
c.send("#{key}=", options[key])
|
56
|
+
end
|
48
57
|
end
|
49
58
|
|
50
59
|
yield_or_eval(&block) if block_given?
|
@@ -65,19 +74,19 @@ module MoloniApi
|
|
65
74
|
# provide your own logger
|
66
75
|
logger = Logger.new $stderr
|
67
76
|
logger.level = Logger::DEBUG
|
68
|
-
@client ||= Faraday.new(
|
77
|
+
@client ||= Faraday.new(config.endpoint) do |client|
|
69
78
|
client.request :url_encoded
|
70
79
|
# client.request :json
|
71
80
|
# client.response :json
|
72
81
|
client.adapter Faraday.default_adapter
|
73
|
-
client.headers['User-Agent'] =
|
82
|
+
client.headers['User-Agent'] = config.user_agent
|
74
83
|
client.response :logger, logger
|
75
84
|
end
|
76
85
|
end
|
77
86
|
|
78
87
|
def request(http_method:, endpoint:, params: {}, query_params: {}, add_access_token: true)
|
79
88
|
if add_access_token
|
80
|
-
query_params[:access_token] =
|
89
|
+
query_params[:access_token] = self.api_access_token
|
81
90
|
query_params[:json] = true
|
82
91
|
end
|
83
92
|
response = client.public_send(http_method, endpoint) do |req|
|
@@ -107,25 +116,6 @@ module MoloniApi
|
|
107
116
|
def response_successful?(response)
|
108
117
|
response.status == HTTP_OK_CODE
|
109
118
|
end
|
110
|
-
|
111
|
-
# Responds to attribute query or attribute clear
|
112
|
-
#
|
113
|
-
# @api private
|
114
|
-
def method_missing(method_name, *args, &block)
|
115
|
-
# :nodoc:
|
116
|
-
case method_name.to_s
|
117
|
-
when /^(.*)\?$/
|
118
|
-
!send(Regexp.last_match(1).to_s).nil?
|
119
|
-
when /^clear_(.*)$/
|
120
|
-
send("#{Regexp.last_match(1)}=", nil)
|
121
|
-
else
|
122
|
-
super
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
def respond_to_missing?(method_name, include_private = false)
|
127
|
-
method_name.to_s.start_with?('clear_') || super
|
128
|
-
end
|
129
119
|
end
|
130
120
|
end
|
131
121
|
# mapi = MoloniApi.new(token: )
|
data/lib/moloni_api/client.rb
CHANGED
@@ -24,8 +24,8 @@ module MoloniApi
|
|
24
24
|
endpoint: 'grant/',
|
25
25
|
query_params: {
|
26
26
|
grant_type: 'password',
|
27
|
-
client_id:
|
28
|
-
client_secret:
|
27
|
+
client_id: self.api_client_id,
|
28
|
+
client_secret: self.api_client_secret,
|
29
29
|
username: user_username,
|
30
30
|
password: user_password
|
31
31
|
},
|
@@ -43,14 +43,14 @@ module MoloniApi
|
|
43
43
|
endpoint: 'grant/',
|
44
44
|
query_params: {
|
45
45
|
grant_type: 'refresh_token',
|
46
|
-
client_id:
|
47
|
-
client_secret:
|
48
|
-
refresh_token: refresh_token ||
|
46
|
+
client_id: self.api_client_id,
|
47
|
+
client_secret: self.api_client_secret,
|
48
|
+
refresh_token: refresh_token || self.api_refresh_token
|
49
49
|
},
|
50
50
|
add_access_token: false
|
51
51
|
)
|
52
52
|
res = process_response(response)
|
53
|
-
|
53
|
+
self.api_access_token = res[:access_token]
|
54
54
|
res
|
55
55
|
end
|
56
56
|
|
@@ -178,7 +178,16 @@ module MoloniApi
|
|
178
178
|
endpoint: 'customers/insert/',
|
179
179
|
params: { company_id: company_id }.merge(customer_data)
|
180
180
|
)
|
181
|
-
process_response(response)
|
181
|
+
p_res = process_response(response)
|
182
|
+
case p_res
|
183
|
+
when Hash
|
184
|
+
p_res
|
185
|
+
else
|
186
|
+
{
|
187
|
+
valid: 0,
|
188
|
+
errors: p_res
|
189
|
+
}
|
190
|
+
end
|
182
191
|
end
|
183
192
|
|
184
193
|
def invoices_insert(company_id, invoice_params: {}, products: [])
|
data/lib/moloni_api/constants.rb
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
module MoloniApi
|
4
4
|
# Constants
|
5
5
|
module Constants
|
6
|
+
# API Defaults
|
7
|
+
API_ENDPOINT = 'https://api.moloni.pt/sandbox/'
|
8
|
+
API_CLIENT_ID = 'apigem'
|
9
|
+
API_CLIENT_SECRET = 'c9c9f4274658da2ad78b55a452894942898b5614'
|
10
|
+
|
6
11
|
# Response headers
|
7
12
|
RATELIMIT_REMAINING = 'X-RateLimit-Remaining'
|
8
13
|
|
data/lib/moloni_api/version.rb
CHANGED
data/lib/moloni_api.rb
CHANGED
@@ -13,35 +13,6 @@ module MoloniApi
|
|
13
13
|
LIBDIR = File.expand_path(LIBNAME.to_s, __dir__)
|
14
14
|
|
15
15
|
class << self
|
16
|
-
# The client configuration
|
17
|
-
#
|
18
|
-
# @return [Configuration]
|
19
|
-
#
|
20
|
-
# @api public
|
21
|
-
def configuration
|
22
|
-
@configuration ||= Configuration.new
|
23
|
-
end
|
24
|
-
|
25
|
-
alias config configuration
|
26
|
-
|
27
|
-
# Configure options
|
28
|
-
#
|
29
|
-
# @example
|
30
|
-
# MoloniApi.configure do |c|
|
31
|
-
# c.some_option = true
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# @yield the configuration block
|
35
|
-
# @yieldparam configuration [MoloniApi::Configuration]
|
36
|
-
# the configuration instance
|
37
|
-
#
|
38
|
-
# @return [nil]
|
39
|
-
#
|
40
|
-
# @api public
|
41
|
-
def configure
|
42
|
-
yield configuration
|
43
|
-
end
|
44
|
-
|
45
16
|
# Alias for MoloniApi::Client.new
|
46
17
|
#
|
47
18
|
# @param [Hash] options
|
@@ -70,20 +41,15 @@ module MoloniApi
|
|
70
41
|
def method_missing(method_name, *args, &block)
|
71
42
|
if new.respond_to?(method_name)
|
72
43
|
new.send(method_name, *args, &block)
|
73
|
-
elsif configuration.respond_to?(method_name)
|
74
|
-
MoloniApi.configuration.send(method_name, *args, &block)
|
75
44
|
else
|
76
45
|
super.respond_to_missing?
|
77
46
|
end
|
78
47
|
end
|
79
48
|
|
80
49
|
def respond_to_missing?(method_name, include_private = false)
|
81
|
-
new.respond_to?(method_name, include_private) ||
|
82
|
-
configuration.respond_to?(method_name) ||
|
83
|
-
super(method_name, include_private)
|
50
|
+
new.respond_to?(method_name, include_private) || super(method_name, include_private)
|
84
51
|
end
|
85
52
|
end
|
86
53
|
end
|
87
54
|
|
88
55
|
require_relative 'moloni_api/client'
|
89
|
-
require_relative 'moloni_api/configuration'
|
data/moloni_api.gemspec
CHANGED
@@ -31,9 +31,9 @@ Gem::Specification.new do |spec|
|
|
31
31
|
|
32
32
|
# Uncomment to register a new dependency of your gem
|
33
33
|
# spec.add_dependency "example-gem", "~> 1.0"
|
34
|
-
spec.add_dependency 'faraday', '~>
|
34
|
+
spec.add_dependency 'faraday', '~> 2.6.0'
|
35
35
|
spec.add_dependency 'oj', '~> 3.11'
|
36
|
-
|
36
|
+
spec.add_dependency 'dry-configurable', '~> 0.16'
|
37
37
|
|
38
38
|
# For more information and examples about making a new gem, checkout our
|
39
39
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moloni_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dinis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.6.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.6.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: oj
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: dry-configurable
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.16'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.16'
|
41
55
|
description: A gem that implements functions from the Moloni API available for its
|
42
56
|
users.
|
43
57
|
email:
|
@@ -64,12 +78,8 @@ files:
|
|
64
78
|
- docker-compose.yml
|
65
79
|
- lib/moloni_api.rb
|
66
80
|
- lib/moloni_api/api.rb
|
67
|
-
- lib/moloni_api/api/config.rb
|
68
|
-
- lib/moloni_api/api/config/property.rb
|
69
|
-
- lib/moloni_api/api/config/property_set.rb
|
70
81
|
- lib/moloni_api/api_exceptions.rb
|
71
82
|
- lib/moloni_api/client.rb
|
72
|
-
- lib/moloni_api/configuration.rb
|
73
83
|
- lib/moloni_api/constants.rb
|
74
84
|
- lib/moloni_api/http_status_codes.rb
|
75
85
|
- lib/moloni_api/models/product.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module MoloniApi
|
4
|
-
class API
|
5
|
-
class Config
|
6
|
-
# Property objects provide an interface for configuration options
|
7
|
-
class Property
|
8
|
-
attr_reader :name, :default, :required
|
9
|
-
|
10
|
-
def initialize(name, options)
|
11
|
-
@name = name
|
12
|
-
@default = options.fetch(:default, nil)
|
13
|
-
@required = options.fetch(:required, nil)
|
14
|
-
@options = options
|
15
|
-
end
|
16
|
-
|
17
|
-
# @api private
|
18
|
-
def define_accessor_methods(properties)
|
19
|
-
properties.define_reader_method(self, name, :public)
|
20
|
-
properties.define_writer_method(self, "#{name}=", :public)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'set'
|
4
|
-
|
5
|
-
module MoloniApi
|
6
|
-
class API
|
7
|
-
class Config
|
8
|
-
# Class responsible for storing configuration properties
|
9
|
-
class PropertySet
|
10
|
-
include Enumerable
|
11
|
-
|
12
|
-
attr_reader :parent, :properties
|
13
|
-
|
14
|
-
# Initialize an PropertySet
|
15
|
-
#
|
16
|
-
# @param [Object] parent
|
17
|
-
# @param [Set] properties
|
18
|
-
#
|
19
|
-
# @return [undefined]
|
20
|
-
#
|
21
|
-
# @api private
|
22
|
-
def initialize(parent = nil, properties = Set.new)
|
23
|
-
@parent = parent
|
24
|
-
@properties = properties
|
25
|
-
@map = {}
|
26
|
-
end
|
27
|
-
|
28
|
-
# Iterate over properties
|
29
|
-
#
|
30
|
-
# @yield [property]
|
31
|
-
#
|
32
|
-
# @yieldparam [Property] property
|
33
|
-
#
|
34
|
-
# @return [self]
|
35
|
-
#
|
36
|
-
# @api public
|
37
|
-
def each
|
38
|
-
return to_enum unless block_given?
|
39
|
-
|
40
|
-
@map.each { |name, property| yield property if name.is_a?(Symbol) }
|
41
|
-
self
|
42
|
-
end
|
43
|
-
|
44
|
-
# Adds property to the set
|
45
|
-
#
|
46
|
-
# @example
|
47
|
-
# properties_set << property
|
48
|
-
#
|
49
|
-
# @param [Property] property
|
50
|
-
#
|
51
|
-
# @return [self]
|
52
|
-
#
|
53
|
-
# @api public
|
54
|
-
def <<(property)
|
55
|
-
properties << property
|
56
|
-
update_map(property.name, property.default)
|
57
|
-
property.define_accessor_methods(self)
|
58
|
-
self
|
59
|
-
end
|
60
|
-
|
61
|
-
# Access property by name
|
62
|
-
#
|
63
|
-
# @api public
|
64
|
-
def [](name)
|
65
|
-
@map[name]
|
66
|
-
end
|
67
|
-
alias fetch []
|
68
|
-
|
69
|
-
# Set property value by name
|
70
|
-
#
|
71
|
-
# @api public
|
72
|
-
def []=(name, property)
|
73
|
-
update_map(name, property)
|
74
|
-
end
|
75
|
-
|
76
|
-
# Update map with index
|
77
|
-
#
|
78
|
-
# @api private
|
79
|
-
def update_map(name, property)
|
80
|
-
@map[name.to_sym] = @map[name.to_s.freeze] = property
|
81
|
-
end
|
82
|
-
|
83
|
-
# Convert properties to a hash of property names and
|
84
|
-
# corresponding values
|
85
|
-
#
|
86
|
-
# @api public
|
87
|
-
def to_hash
|
88
|
-
properties.each_with_object({}) do |property, props|
|
89
|
-
name = property.name
|
90
|
-
props[name] = self[name]
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
# Check if properties exist
|
95
|
-
#
|
96
|
-
# @api public
|
97
|
-
def empty?
|
98
|
-
@map.empty?
|
99
|
-
end
|
100
|
-
|
101
|
-
# @api private
|
102
|
-
def define_reader_method(property, method_name, visibility)
|
103
|
-
property_set = self
|
104
|
-
parent.send(:define_method, method_name) { property_set[property.name] }
|
105
|
-
parent.send(visibility, method_name)
|
106
|
-
end
|
107
|
-
|
108
|
-
# @api private
|
109
|
-
def define_writer_method(property, method_name, visibility)
|
110
|
-
property_set = self
|
111
|
-
parent.send(:define_method, method_name) do |value|
|
112
|
-
property_set[property.name] = value
|
113
|
-
end
|
114
|
-
parent.send(visibility, method_name)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
@@ -1,101 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'config/property'
|
4
|
-
require_relative 'config/property_set'
|
5
|
-
|
6
|
-
module MoloniApi
|
7
|
-
class API
|
8
|
-
# A base class for constructing api configuration
|
9
|
-
class Config
|
10
|
-
# Defines a property on an object's class or instance
|
11
|
-
#
|
12
|
-
# @example
|
13
|
-
# class Configuration < Api::Config
|
14
|
-
# property :adapter, default: :net_http
|
15
|
-
# property :user, required: true
|
16
|
-
# end
|
17
|
-
#
|
18
|
-
# @param [Symbol] name
|
19
|
-
# the name of a property
|
20
|
-
#
|
21
|
-
# @param [#to_hash] options
|
22
|
-
# the extra options
|
23
|
-
#
|
24
|
-
# @return [self]
|
25
|
-
#
|
26
|
-
# @api public
|
27
|
-
def self.property(name, options = {})
|
28
|
-
property_set << Property.new(name, options)
|
29
|
-
update_subclasses(name, options)
|
30
|
-
self
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.update_subclasses(name, options)
|
34
|
-
@subclasses.each { |klass| klass.property(name, options) } if defined?(@subclasses) && @subclasses
|
35
|
-
end
|
36
|
-
|
37
|
-
# Check if property is defined
|
38
|
-
#
|
39
|
-
# @param [Symbol] name
|
40
|
-
# the name to check
|
41
|
-
#
|
42
|
-
# @return [Boolean]
|
43
|
-
#
|
44
|
-
# @api public
|
45
|
-
def self.property?(name)
|
46
|
-
property_set.include?(name)
|
47
|
-
end
|
48
|
-
|
49
|
-
class << self
|
50
|
-
attr_reader :property_set
|
51
|
-
end
|
52
|
-
|
53
|
-
instance_variable_set('@property_set', PropertySet.new(self))
|
54
|
-
|
55
|
-
def self.inherited(descendant)
|
56
|
-
super
|
57
|
-
(@subclasses ||= Set.new) << descendant
|
58
|
-
descendant.instance_variable_set(
|
59
|
-
'@property_set',
|
60
|
-
PropertySet.new(descendant, property_set.properties.dup)
|
61
|
-
)
|
62
|
-
end
|
63
|
-
|
64
|
-
def property_names
|
65
|
-
self.class.property_set.properties.map(&:name)
|
66
|
-
end
|
67
|
-
|
68
|
-
def self.property_names
|
69
|
-
property_set.properties.map(&:name)
|
70
|
-
end
|
71
|
-
|
72
|
-
# Fetch all the properties and their values
|
73
|
-
#
|
74
|
-
# @return [Hash[Symbol]]
|
75
|
-
#
|
76
|
-
# @api public
|
77
|
-
def fetch(value = nil)
|
78
|
-
if value
|
79
|
-
self.class.property_set[value]
|
80
|
-
else
|
81
|
-
self.class.property_set.to_hash
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
# Provide access to properties
|
86
|
-
#
|
87
|
-
# @example
|
88
|
-
# config.call do |config|
|
89
|
-
# config.adapter = :net_http
|
90
|
-
# end
|
91
|
-
#
|
92
|
-
# @return [self]
|
93
|
-
#
|
94
|
-
# @api private
|
95
|
-
def call(&block)
|
96
|
-
block.call(self) if block_given?
|
97
|
-
self
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'api/config'
|
4
|
-
require_relative 'version'
|
5
|
-
|
6
|
-
module MoloniApi
|
7
|
-
# Stores the configuration
|
8
|
-
class Configuration < API::Config
|
9
|
-
API_ENDPOINT = 'https://api.moloni.pt/sandbox/'
|
10
|
-
API_CLIENT_ID = 'apigem'
|
11
|
-
API_CLIENT_SECRET = 'c9c9f4274658da2ad78b55a452894942898b5614'
|
12
|
-
|
13
|
-
property :follow_redirects, default: true
|
14
|
-
|
15
|
-
# The api endpoint used to connect to MoloniApi if none is set
|
16
|
-
# prd: https://api.moloni.pt/v1/
|
17
|
-
# sandbox: https://api.moloni.pt/sandbox/
|
18
|
-
property :endpoint, default: ENV['MOLONI_API_ENDPOINT'] || API_ENDPOINT
|
19
|
-
|
20
|
-
# The value sent in the http header for 'User-Agent' if none is set
|
21
|
-
property :user_agent, default: "MoloniApi API Ruby Gem #{MoloniApi::VERSION}"
|
22
|
-
|
23
|
-
# By default uses the Faraday connection options if none is set
|
24
|
-
property :connection_options, default: {}
|
25
|
-
|
26
|
-
# By default display 30 resources
|
27
|
-
property :per_page, default: 20
|
28
|
-
|
29
|
-
# Add Faraday::RackBuilder to overwrite middleware
|
30
|
-
property :stack
|
31
|
-
|
32
|
-
property :api_access_token
|
33
|
-
property :api_client_id, default: ENV['MOLONI_API_CLIENT_ID'] || API_CLIENT_ID
|
34
|
-
property :api_client_secret, default: ENV['MOLONI_API_CLIENT_SECRET'] || API_CLIENT_SECRET
|
35
|
-
end
|
36
|
-
end
|