fantasticstay_api 0.1.1 → 0.1.3
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/Dockerfile +5 -1
- data/README.md +2 -0
- data/Rakefile +3 -1
- data/fantasticstay_api.gemspec +2 -2
- data/lib/fantasticstay_api/api.rb +10 -9
- data/lib/fantasticstay_api/client.rb +7 -16
- data/lib/fantasticstay_api/configuration.rb +10 -4
- data/lib/fantasticstay_api/version.rb +1 -1
- data/lib/fantasticstay_api.rb +1 -1
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34e6c99e07ab528a63116a7bdfcd764a6cd74047f805ef2121c02f82b7266584
|
4
|
+
data.tar.gz: 4a2af7516ae2ae8385cf20acb58b282d72d9d52e8024df49f3f3db91fffc32c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8be0b2d3027bdf240d35414d4800dfaaf13de5e2c06348dac2c7fbbf38670f362829b29ff898b4cd1c82ee34d17034c9b6ed686ebdaad735f5eabb235487da80
|
7
|
+
data.tar.gz: dced4169e85772446ba7441ea95da1d32f96f8e76d37aaa1a87b1c4aa72193c78a8d0f64334086505a3869050e48a8fc7f0ad85795ff08697d22747bb6e1156a
|
data/Dockerfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# FantasticstayApi
|
2
2
|
|
3
|
+

|
4
|
+
|
3
5
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/fantasticstay_api`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
6
|
|
5
7
|
TODO: Delete this and the text above, and describe your gem
|
data/Rakefile
CHANGED
data/fantasticstay_api.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = 'MIT'
|
15
15
|
spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
|
16
16
|
|
17
|
-
spec.metadata['allowed_push_host'] =
|
17
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
18
18
|
|
19
19
|
spec.metadata['homepage_uri'] = spec.homepage
|
20
20
|
spec.metadata['source_code_uri'] = 'https://github.com/dlage/fantasticstay_api_gem'
|
@@ -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 'api_cache', '~> 0.3.0'
|
34
35
|
spec.add_dependency 'faraday', '~> 1.3.0'
|
35
36
|
spec.add_dependency 'oj', '~> 3.11'
|
36
|
-
spec.add_dependency 'api_cache', '~> 0.3.0'
|
37
37
|
|
38
38
|
# spec.add_dependency 'dry-configurable', '~> 0.12.1'
|
39
39
|
|
@@ -14,7 +14,7 @@ module FantasticstayApi
|
|
14
14
|
include Constants
|
15
15
|
include HttpStatusCodes
|
16
16
|
|
17
|
-
attr_reader(*FantasticstayApi.configuration.property_names
|
17
|
+
attr_reader(*FantasticstayApi.configuration.property_names)
|
18
18
|
|
19
19
|
attr_accessor :current_options
|
20
20
|
|
@@ -28,7 +28,6 @@ module FantasticstayApi
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
API_ENDPOINT = 'https://api.fsapp.io'
|
32
31
|
HTTP_STATUS_MAPPING = {
|
33
32
|
HTTP_BAD_REQUEST_CODE => BadRequestError,
|
34
33
|
HTTP_UNAUTHORIZED_CODE => UnauthorizedError,
|
@@ -48,8 +47,6 @@ module FantasticstayApi
|
|
48
47
|
FantasticstayApi.configuration.property_names.each do |key|
|
49
48
|
send("#{key}=", opts[key])
|
50
49
|
end
|
51
|
-
@api_token = opts[:token] || ENV['FANTASTICSTAY_API_TOKEN']
|
52
|
-
@api_endpoint = opts[:endpoint] || ENV['FANTASTICSTAY_API_ENDPOINT'] || API_ENDPOINT
|
53
50
|
|
54
51
|
yield_or_eval(&block) if block_given?
|
55
52
|
end
|
@@ -69,18 +66,22 @@ module FantasticstayApi
|
|
69
66
|
# provide your own logger
|
70
67
|
logger = Logger.new $stderr
|
71
68
|
logger.level = Logger::DEBUG
|
72
|
-
@client ||= Faraday.new(@
|
69
|
+
@client ||= Faraday.new(@endpoint) do |client|
|
73
70
|
client.request :url_encoded
|
74
71
|
client.adapter Faraday.default_adapter
|
75
72
|
client.headers['Content-Type'] = 'application/json'
|
76
|
-
client.headers['x-api-key'] = @
|
73
|
+
client.headers['x-api-key'] = @token
|
74
|
+
client.headers['User-Agent'] = @user_agent
|
77
75
|
client.response :logger, logger
|
78
76
|
end
|
79
77
|
end
|
80
78
|
|
81
79
|
def request(http_method:, endpoint:, params: {}, cache_ttl: 3600)
|
82
|
-
response = APICache.get(
|
83
|
-
|
80
|
+
response = APICache.get(
|
81
|
+
Digest::SHA256.bubblebabble(@token) + http_method.to_s + endpoint + params.to_s,
|
82
|
+
cache: cache_ttl
|
83
|
+
) do
|
84
|
+
client.public_send(http_method, endpoint, params)
|
84
85
|
end
|
85
86
|
parsed_response = Oj.load(response.body)
|
86
87
|
|
@@ -108,7 +109,7 @@ module FantasticstayApi
|
|
108
109
|
# :nodoc:
|
109
110
|
case method_name.to_s
|
110
111
|
when /^(.*)\?$/
|
111
|
-
|
112
|
+
!send(Regexp.last_match(1).to_s).nil?
|
112
113
|
when /^clear_(.*)$/
|
113
114
|
send("#{Regexp.last_match(1)}=", nil)
|
114
115
|
else
|
@@ -26,10 +26,7 @@ module FantasticstayApi
|
|
26
26
|
http_method: :get,
|
27
27
|
endpoint: 'calendar',
|
28
28
|
params: {
|
29
|
-
listing_id: listing_id,
|
30
|
-
start_date: start_date,
|
31
|
-
end_date: end_date,
|
32
|
-
filters: filters.to_json
|
29
|
+
listing_id: listing_id, start_date: start_date, end_date: end_date, filters: filters.to_json
|
33
30
|
}.merge(global_params)
|
34
31
|
)
|
35
32
|
process_response(response)
|
@@ -45,16 +42,14 @@ module FantasticstayApi
|
|
45
42
|
end
|
46
43
|
|
47
44
|
# FantasticstayApi::Client.new.reservations(38859)
|
48
|
-
def reservations(listing_id, filters = [], sort =
|
45
|
+
def reservations(listing_id, filters = [], sort = { order: 'checkIn', direction: 'desc' }, global_params = {})
|
49
46
|
response = request(
|
50
47
|
http_method: :get,
|
51
48
|
endpoint: 'reservations',
|
52
49
|
params: {
|
53
|
-
listing_id: listing_id,
|
54
|
-
filters: filters.to_json,
|
55
|
-
sort: sort
|
50
|
+
listing_id: listing_id, filters: filters.to_json, sort: sort[:order], direction: sort[:direction]
|
56
51
|
}.merge!(global_params),
|
57
|
-
cache_ttl: 3600*24
|
52
|
+
cache_ttl: 3600 * 24
|
58
53
|
)
|
59
54
|
process_response(response)
|
60
55
|
end
|
@@ -73,7 +68,7 @@ module FantasticstayApi
|
|
73
68
|
http_method: :get,
|
74
69
|
endpoint: "guests/#{guest_id}",
|
75
70
|
params: global_params,
|
76
|
-
cache_ttl: 3600*24
|
71
|
+
cache_ttl: 3600 * 24
|
77
72
|
)
|
78
73
|
process_response(response)
|
79
74
|
end
|
@@ -94,13 +89,9 @@ module FantasticstayApi
|
|
94
89
|
case result
|
95
90
|
when Hash
|
96
91
|
result.transform_keys!(&:to_sym)
|
97
|
-
result.
|
98
|
-
process_response(r)
|
99
|
-
end
|
92
|
+
result.each_value { |r| process_response(r) }
|
100
93
|
when Array
|
101
|
-
result.each
|
102
|
-
process_response(r)
|
103
|
-
end
|
94
|
+
result.each { |r| process_response(r) }
|
104
95
|
end
|
105
96
|
result
|
106
97
|
end
|
@@ -6,19 +6,25 @@ require_relative 'version'
|
|
6
6
|
module FantasticstayApi
|
7
7
|
# Stores the configuration
|
8
8
|
class Configuration < API::Config
|
9
|
+
API_ENDPOINT = 'https://api.fsapp.io'
|
10
|
+
API_TOKEN = 'TESTING'
|
11
|
+
|
9
12
|
property :follow_redirects, default: true
|
10
13
|
|
11
14
|
# The api endpoint used to connect to FantasticstayApi if none is set
|
12
|
-
property
|
15
|
+
property :endpoint, default: ENV['FANTASTICSTAY_API_ENDPOINT'] || API_ENDPOINT
|
16
|
+
|
17
|
+
# The token included in request header 'x-api-key'
|
18
|
+
property :token, default: ENV['FANTASTICSTAY_API_TOKEN'] || API_TOKEN
|
13
19
|
|
14
20
|
# The value sent in the http header for 'User-Agent' if none is set
|
15
|
-
property
|
21
|
+
property :user_agent, default: "FantasticstayApi API Ruby Gem #{FantasticstayApi::VERSION}"
|
16
22
|
|
17
23
|
# By default uses the Faraday connection options if none is set
|
18
|
-
property
|
24
|
+
property :connection_options, default: {}
|
19
25
|
|
20
26
|
# By default display 30 resources
|
21
|
-
property :per_page, default:
|
27
|
+
property :per_page, default: 10
|
22
28
|
|
23
29
|
# Add Faraday::RackBuilder to overwrite middleware
|
24
30
|
property :stack
|
data/lib/fantasticstay_api.rb
CHANGED
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fantasticstay_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dinis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: api_cache
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.3.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: 0.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: oj
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '3.11'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '3.11'
|
55
55
|
description: A gem that implements functions from the FS API available for its users.
|
56
56
|
email:
|
57
57
|
- dinis@lage.pw
|
@@ -94,7 +94,7 @@ metadata:
|
|
94
94
|
homepage_uri: https://github.com/dlage/fantasticstay_api_gem
|
95
95
|
source_code_uri: https://github.com/dlage/fantasticstay_api_gem
|
96
96
|
changelog_uri: https://github.com/dlage/fantasticstay_api_gem/blob/master/CHANGELOG.md
|
97
|
-
post_install_message:
|
97
|
+
post_install_message:
|
98
98
|
rdoc_options: []
|
99
99
|
require_paths:
|
100
100
|
- lib
|
@@ -109,8 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.
|
113
|
-
signing_key:
|
112
|
+
rubygems_version: 3.2.33
|
113
|
+
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: FantasticStay API Wrapper.
|
116
116
|
test_files: []
|