guesty-client 0.1.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 +7 -0
- data/CHANGELOG.md +34 -0
- data/LICENSE +21 -0
- data/README.md +178 -0
- data/lib/guesty/access_tokens/upsert.rb +61 -0
- data/lib/guesty/api_error.rb +73 -0
- data/lib/guesty/client.rb +138 -0
- data/lib/guesty/config.rb +29 -0
- data/lib/guesty/conversations/attachments/index.rb +42 -0
- data/lib/guesty/conversations/index.rb +58 -0
- data/lib/guesty/conversations/messages/reply.rb +55 -0
- data/lib/guesty/conversations/posts/index.rb +121 -0
- data/lib/guesty/conversations/posts/since.rb +37 -0
- data/lib/guesty/conversations/search.rb +31 -0
- data/lib/guesty/conversations/show.rb +25 -0
- data/lib/guesty/conversations.rb +15 -0
- data/lib/guesty/error.rb +32 -0
- data/lib/guesty/guest_folio/invoice_items/index.rb +61 -0
- data/lib/guesty/guests/profiles/create.rb +25 -0
- data/lib/guesty/guests/profiles/show.rb +23 -0
- data/lib/guesty/guests/profiles/update.rb +36 -0
- data/lib/guesty/guests.rb +5 -0
- data/lib/guesty/homes/calendars/show.rb +134 -0
- data/lib/guesty/homes/search.rb +46 -0
- data/lib/guesty/memory_rate_limiter.rb +28 -0
- data/lib/guesty/memory_token_store.rb +33 -0
- data/lib/guesty/operation.rb +37 -0
- data/lib/guesty/rate_limiter_middleware.rb +23 -0
- data/lib/guesty/reservations/accommodation_fare/update.rb +44 -0
- data/lib/guesty/reservations/approve.rb +23 -0
- data/lib/guesty/reservations/create.rb +50 -0
- data/lib/guesty/reservations/custom_fields/update.rb +26 -0
- data/lib/guesty/reservations/dates/update.rb +41 -0
- data/lib/guesty/reservations/decline.rb +30 -0
- data/lib/guesty/reservations/flags/update.rb +33 -0
- data/lib/guesty/reservations/payments/create.rb +72 -0
- data/lib/guesty/reservations/pre_approve.rb +23 -0
- data/lib/guesty/reservations/recover.rb +27 -0
- data/lib/guesty/reservations/reviews/extractors/airbnb.rb +66 -0
- data/lib/guesty/reservations/reviews/extractors/base.rb +36 -0
- data/lib/guesty/reservations/reviews/extractors/booking_com.rb +35 -0
- data/lib/guesty/reservations/reviews/extractors/vrbo.rb +46 -0
- data/lib/guesty/reservations/reviews/index.rb +67 -0
- data/lib/guesty/reservations/search.rb +63 -0
- data/lib/guesty/reservations/show.rb +28 -0
- data/lib/guesty/reservations/status/cancel.rb +34 -0
- data/lib/guesty/reservations/status/update.rb +21 -0
- data/lib/guesty/reservations/stays/update.rb +42 -0
- data/lib/guesty/reservations/update.rb +19 -0
- data/lib/guesty/reservations.rb +13 -0
- data/lib/guesty/reviews/respond.rb +19 -0
- data/lib/guesty/version.rb +3 -0
- data/lib/guesty/views/create.rb +19 -0
- data/lib/guesty/views/update.rb +33 -0
- data/lib/guesty/webhooks/create.rb +21 -0
- data/lib/guesty/webhooks/index.rb +18 -0
- data/lib/guesty/webhooks/signatures/verify.rb +76 -0
- data/lib/guesty/webhooks/sync.rb +36 -0
- data/lib/guesty/webhooks/update.rb +22 -0
- data/lib/guesty-client.rb +1 -0
- data/lib/guesty.rb +78 -0
- data/sig/guesty.rbs +427 -0
- metadata +191 -0
data/sig/guesty.rbs
ADDED
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
# Public API of the gem, mirroring the inline `# @rbs` annotations in lib/.
|
|
2
|
+
# Shipped with the gem so host apps pick it up through `rbs collection`.
|
|
3
|
+
module Guesty
|
|
4
|
+
VERSION: ::String
|
|
5
|
+
|
|
6
|
+
BASE_URL: ::String
|
|
7
|
+
TIMEOUT: ::Integer
|
|
8
|
+
RETRY_OPTIONS: ::Hash[::Symbol, untyped]
|
|
9
|
+
|
|
10
|
+
type slot = {
|
|
11
|
+
key: ::String,
|
|
12
|
+
client_id: ::String,
|
|
13
|
+
secret: ::String
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
def self.configure: () { (Config) -> void } -> void
|
|
17
|
+
def self.config: () -> Config
|
|
18
|
+
|
|
19
|
+
def self.connection: (?url: ::String, ?skip_auth: bool, ?timeout: ::Integer) -> untyped
|
|
20
|
+
def self.do_request: (::Symbol | ::String request_method, ::String path, ?::Hash[::Symbol, untyped] params, ?retries: ::Integer, ?timeout: ::Integer) -> untyped
|
|
21
|
+
def self.with_priority: (::Symbol priority) { (?) -> untyped } -> untyped
|
|
22
|
+
def self.current_priority: () -> ::Symbol
|
|
23
|
+
def self.current_slot: () -> slot
|
|
24
|
+
def self.rate_limit_key: (::Symbol window) -> ::Symbol
|
|
25
|
+
def self.token_slots: (?::Symbol priority) -> ::Array[slot]
|
|
26
|
+
def self.webhook_key: () -> ::String?
|
|
27
|
+
def self.sync_guest_and_reservation_changes?: () -> bool
|
|
28
|
+
def self.pick_slot: (::Symbol priority) -> slot
|
|
29
|
+
def self.successful_response?: (untyped response) -> bool
|
|
30
|
+
def self.retryable_read?: (::StandardError error) -> bool
|
|
31
|
+
def self.unapplied?: (::StandardError error) -> bool
|
|
32
|
+
def self.delivery_unknown?: (::StandardError error) -> bool
|
|
33
|
+
def self.auth_token: () -> ::String
|
|
34
|
+
|
|
35
|
+
class Error < ::StandardError
|
|
36
|
+
attr_reader fatal: bool
|
|
37
|
+
|
|
38
|
+
def initialize: (?::String message, ?fatal: bool) -> void
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Raised by operations before any network call when the arguments are unusable.
|
|
42
|
+
class ArgumentError < Error
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Raised by the rate limiter middleware when the injected limiter refuses the
|
|
46
|
+
# request: the call never left the process, so no write landed upstream.
|
|
47
|
+
class ThrottledError < Error
|
|
48
|
+
attr_reader key: ::Symbol
|
|
49
|
+
attr_reader threshold: ::Integer
|
|
50
|
+
attr_reader interval: untyped
|
|
51
|
+
attr_reader retry_after: untyped
|
|
52
|
+
|
|
53
|
+
def initialize: (key: ::Symbol, threshold: ::Integer, interval: untyped, retry_after: untyped) -> void
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# A rejected Guesty response, classified so callers can tell a retryable
|
|
57
|
+
# glitch from a write that never landed.
|
|
58
|
+
class ApiError < Error
|
|
59
|
+
attr_reader raw_body: untyped
|
|
60
|
+
attr_reader response: untyped
|
|
61
|
+
|
|
62
|
+
def initialize: (untyped response) -> void
|
|
63
|
+
|
|
64
|
+
def status: () -> ::Integer
|
|
65
|
+
def guesty_glitch?: () -> bool
|
|
66
|
+
def retryable_non_delivery?: () -> bool
|
|
67
|
+
def permanent_rejection?: () -> bool
|
|
68
|
+
def transient?: () -> bool
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class Config
|
|
72
|
+
attr_accessor credentials: ::Hash[::Symbol, untyped]
|
|
73
|
+
attr_accessor token_store: untyped
|
|
74
|
+
attr_accessor rate_limiter: untyped
|
|
75
|
+
attr_accessor slot_picker: untyped
|
|
76
|
+
attr_accessor base_url: ::String
|
|
77
|
+
attr_accessor sync_guest_and_reservation_changes: bool
|
|
78
|
+
attr_accessor custom_fields: ::Hash[::Symbol, ::String]
|
|
79
|
+
attr_accessor default_currency: ::String?
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class MemoryTokenStore
|
|
83
|
+
class Token
|
|
84
|
+
attr_accessor access_token: ::String
|
|
85
|
+
attr_accessor expires_at: ::Time?
|
|
86
|
+
|
|
87
|
+
def initialize: (access_token: ::String, expires_at: ::Time?) -> void
|
|
88
|
+
def expired?: () -> bool
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def read: (::String slot_key) -> Token?
|
|
92
|
+
def save: (slot_key: ::String, access_token: ::String, expires_at: ::Time) -> Token
|
|
93
|
+
def clear: () -> ::Hash[untyped, untyped]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class MemoryRateLimiter
|
|
97
|
+
def throttle!: (key: ::Symbol, threshold: ::Integer, interval: untyped) -> void
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class RateLimiterMiddleware
|
|
101
|
+
def initialize: (untyped app, ?::Hash[::Symbol, untyped] options) -> void
|
|
102
|
+
def on_request: (untyped env) -> void
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# #call! returns the same Result as #call, raising the failure instead of
|
|
106
|
+
# wrapping it — hence the `alias call! call` on every operation below.
|
|
107
|
+
module Operation
|
|
108
|
+
def call!: (*untyped, **untyped) -> untyped
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
module AccessTokens
|
|
112
|
+
class Upsert
|
|
113
|
+
OAUTH_ENDPOINT: ::String
|
|
114
|
+
|
|
115
|
+
def call: () -> ::Dry::Monads::Result[untyped]
|
|
116
|
+
alias call! call
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
module Reservations
|
|
121
|
+
CANCELLED_STATUS: ::String
|
|
122
|
+
CLOSED_STATUSES: ::Array[::String]
|
|
123
|
+
|
|
124
|
+
def self.from_conversation: (untyped conversation) -> ::Array[::Hash[::Symbol, untyped]]
|
|
125
|
+
|
|
126
|
+
class Search
|
|
127
|
+
FILTER_MAPPINGS: ::Hash[::Symbol, ::Hash[::Symbol, ::String]]
|
|
128
|
+
|
|
129
|
+
def self.filters: (::Hash[::Symbol, untyped] attributes) -> ::Array[::Hash[::Symbol, untyped]]
|
|
130
|
+
def call: (fields: ::Array[::String], attributes: ::Hash[::Symbol, untyped], ?skip: ::Integer, ?take: ::Integer) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
131
|
+
alias call! call
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
class Show
|
|
135
|
+
def call: (reservation_id: ::String, fields: ::Array[::String]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
136
|
+
alias call! call
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
class Create
|
|
140
|
+
def call: (attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[::String]
|
|
141
|
+
alias call! call
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
class Update
|
|
145
|
+
def call: (reservation_id: ::String, attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[bool]
|
|
146
|
+
alias call! call
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
class Recover
|
|
150
|
+
def call: (confirmation_code: ::String, start_date: ::Date, end_date: ::Date) -> ::Dry::Monads::Result[::String?]
|
|
151
|
+
alias call! call
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
class Approve
|
|
155
|
+
def call: (reservation_id: ::String) -> ::Dry::Monads::Result[bool]
|
|
156
|
+
alias call! call
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class Decline
|
|
160
|
+
def call: (reservation_id: ::String, reason: ::String, message: ::String) -> ::Dry::Monads::Result[bool]
|
|
161
|
+
alias call! call
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
class PreApprove
|
|
165
|
+
def call: (reservation_id: ::String) -> ::Dry::Monads::Result[bool]
|
|
166
|
+
alias call! call
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
module Status
|
|
170
|
+
class Update
|
|
171
|
+
def call: (reservation_id: ::String, attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[bool]
|
|
172
|
+
alias call! call
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
class Cancel
|
|
176
|
+
CANCELLED_BY: ::Hash[::Symbol, ::String]
|
|
177
|
+
|
|
178
|
+
def call: (reservation_id: ::String, note: ::String, cancelled_by: ::Symbol) -> ::Dry::Monads::Result[bool]
|
|
179
|
+
alias call! call
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
module Dates
|
|
184
|
+
class Update
|
|
185
|
+
def call: (reservation_id: ::String, attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[bool]
|
|
186
|
+
alias call! call
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
module Stays
|
|
191
|
+
class Update
|
|
192
|
+
def call: (reservation_id: ::String, stay: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[bool]
|
|
193
|
+
alias call! call
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
module Flags
|
|
198
|
+
class Update
|
|
199
|
+
def call: (reservation_id: ::String, flags: ::Hash[::Symbol, bool]) -> ::Dry::Monads::Result[bool]
|
|
200
|
+
alias call! call
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
module AccommodationFare
|
|
205
|
+
class Update
|
|
206
|
+
FARE_TYPES: ::Array[::String]
|
|
207
|
+
ADJUSTED_TYPE: ::String
|
|
208
|
+
|
|
209
|
+
def call: (reservation_id: ::String, amount: ::Integer | ::Float | ::BigDecimal) -> ::Dry::Monads::Result[::BigDecimal]
|
|
210
|
+
alias call! call
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
module CustomFields
|
|
215
|
+
class Update
|
|
216
|
+
def call: (reservation_id: ::String, custom_fields: ::Array[::Hash[::Symbol, untyped]]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
217
|
+
alias call! call
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
module Payments
|
|
222
|
+
class Create
|
|
223
|
+
PAYMENT_METHOD_NAME: ::String
|
|
224
|
+
HISTORY_UNAVAILABLE: ::String
|
|
225
|
+
|
|
226
|
+
def call: (reservation_id: ::String, attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
227
|
+
alias call! call
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
module Reviews
|
|
232
|
+
class Index
|
|
233
|
+
def call: (since: ::Time, ?skip: ::Integer, ?take: ::Integer) -> ::Dry::Monads::Result[::Array[::Hash[::Symbol, untyped]]]
|
|
234
|
+
alias call! call
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
module Extractors
|
|
238
|
+
class Base
|
|
239
|
+
def call: (raw_review: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
240
|
+
alias call! call
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
class Airbnb < Base
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
class BookingCom < Base
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
class Vrbo < Base
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
module Conversations
|
|
256
|
+
CHANNELS: ::Hash[::String, ::String]
|
|
257
|
+
|
|
258
|
+
def self.channel: (::String module_type) -> ::String
|
|
259
|
+
|
|
260
|
+
class Index
|
|
261
|
+
FIELDS: ::String
|
|
262
|
+
LIMIT: ::Integer
|
|
263
|
+
MAX_PAGES: ::Integer
|
|
264
|
+
|
|
265
|
+
def call: (since: ::Time) -> ::Dry::Monads::Result[::Array[::Hash[::Symbol, untyped]]]
|
|
266
|
+
alias call! call
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
class Search
|
|
270
|
+
FIELDS: ::String
|
|
271
|
+
|
|
272
|
+
def call: (external_id: ::String) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]?]
|
|
273
|
+
alias call! call
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
class Show
|
|
277
|
+
FIELDS: ::String
|
|
278
|
+
|
|
279
|
+
def call: (conversation_id: ::String) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
280
|
+
alias call! call
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
module Posts
|
|
284
|
+
class Index
|
|
285
|
+
LIMIT: ::Integer
|
|
286
|
+
|
|
287
|
+
def call: (conversation_id: ::String, ?cursor: ::String?) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
288
|
+
alias call! call
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
class Since
|
|
292
|
+
MAX_PAGES: ::Integer
|
|
293
|
+
|
|
294
|
+
def call: (conversation_id: ::String, ?since: ::Time?) -> ::Dry::Monads::Result[::Array[untyped]]
|
|
295
|
+
alias call! call
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
module Messages
|
|
300
|
+
class Reply
|
|
301
|
+
BOOKING_MODULE_TYPES: ::Hash[::String, ::String]
|
|
302
|
+
|
|
303
|
+
def self.module_type_for: (::String? channel_name) -> ::String?
|
|
304
|
+
|
|
305
|
+
def call: (conversation_id: ::String, body: ::String, ?module_type: ::String?) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
306
|
+
alias call! call
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
module Attachments
|
|
311
|
+
class Index
|
|
312
|
+
BATCH_SIZE: ::Integer
|
|
313
|
+
|
|
314
|
+
def call: (keys: ::Array[::String]) -> ::Dry::Monads::Result[::Hash[::String, ::String]]
|
|
315
|
+
alias call! call
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
module Guests
|
|
321
|
+
OTA_LINK_TYPES: ::Hash[::Symbol, ::String]
|
|
322
|
+
|
|
323
|
+
module Profiles
|
|
324
|
+
class Create
|
|
325
|
+
def call: (attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
326
|
+
alias call! call
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
class Show
|
|
330
|
+
def call: (guest_id: ::String, ?fields: ::Array[::String]?) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
331
|
+
alias call! call
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
class Update
|
|
335
|
+
def call: (guest_id: ::String, attributes: ::Hash[::Symbol, untyped]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
336
|
+
alias call! call
|
|
337
|
+
end
|
|
338
|
+
end
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
module Homes
|
|
342
|
+
class Search
|
|
343
|
+
def call: (attributes: ::Hash[::Symbol, untyped], ?skip: ::Integer, ?take: ::Integer) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
344
|
+
alias call! call
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
module Calendars
|
|
348
|
+
class Show
|
|
349
|
+
BLOCK_TYPE_MAPPING: ::Hash[::Symbol, ::Symbol]
|
|
350
|
+
|
|
351
|
+
def call: (home_id: ::String, start_date: ::Date, end_date: ::Date) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
352
|
+
alias call! call
|
|
353
|
+
end
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
module GuestFolio
|
|
358
|
+
module InvoiceItems
|
|
359
|
+
class Index
|
|
360
|
+
FIELDS: ::Array[::String]
|
|
361
|
+
|
|
362
|
+
type item = {
|
|
363
|
+
external_id: ::String,
|
|
364
|
+
normal_type: ::String?,
|
|
365
|
+
amount: ::BigDecimal?,
|
|
366
|
+
currency: ::String,
|
|
367
|
+
occurred_at: ::Time?
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
def call: (reservation_id: ::String) -> ::Dry::Monads::Result[::Array[item]]
|
|
371
|
+
alias call! call
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
module Reviews
|
|
377
|
+
class Respond
|
|
378
|
+
def call: (review_id: ::String, text: ::String) -> ::Dry::Monads::Result[bool]
|
|
379
|
+
alias call! call
|
|
380
|
+
end
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
module Views
|
|
384
|
+
class Create
|
|
385
|
+
def call: (title: ::String, section: ::String) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
386
|
+
alias call! call
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
class Update
|
|
390
|
+
def call: (id: ::String, ?title: ::String?, ?fields: ::String?, ?filters: ::Array[::Hash[::Symbol, untyped]]?, ?sort: ::String?) -> ::Dry::Monads::Result[untyped]
|
|
391
|
+
alias call! call
|
|
392
|
+
end
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
module Webhooks
|
|
396
|
+
class Index
|
|
397
|
+
def call: () -> ::Dry::Monads::Result[::Array[untyped]]
|
|
398
|
+
alias call! call
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
class Create
|
|
402
|
+
def call: (url: ::String, events: ::Array[::String]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
403
|
+
alias call! call
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
class Update
|
|
407
|
+
def call: (id: ::String, url: ::String, events: ::Array[::String]) -> ::Dry::Monads::Result[::Hash[::Symbol, untyped]]
|
|
408
|
+
alias call! call
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
class Sync
|
|
412
|
+
def call: (urls: ::Array[::String], events: ::Array[::String]) -> ::Dry::Monads::Result[::Hash[::Symbol, ::Array[::String]]]
|
|
413
|
+
alias call! call
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
module Signatures
|
|
417
|
+
class Verify
|
|
418
|
+
SECRET_PREFIX: ::String
|
|
419
|
+
SIGNATURE_VERSION: ::String
|
|
420
|
+
TOLERANCE: ::ActiveSupport::Duration
|
|
421
|
+
|
|
422
|
+
def call: (payload: ::String, headers: untyped) -> ::Dry::Monads::Result[bool]
|
|
423
|
+
alias call! call
|
|
424
|
+
end
|
|
425
|
+
end
|
|
426
|
+
end
|
|
427
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: guesty-client
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Guestit
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: activesupport
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '8.1'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '8.1'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: dry-monads
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.10'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.10'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: faraday
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2.14'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '2.14'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: faraday-retry
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '2.4'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '2.4'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: mini_mime
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '1.1'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '1.1'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: oj
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '3.17'
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '3.17'
|
|
96
|
+
description: 'One operation per Guesty Open API endpoint, returning dry-monads Results,
|
|
97
|
+
with OAuth token minting, credential slots, priority lanes, rate limiting and webhook
|
|
98
|
+
signature checks. Framework-free: the host injects credentials, token storage and
|
|
99
|
+
the rate limiter.'
|
|
100
|
+
executables: []
|
|
101
|
+
extensions: []
|
|
102
|
+
extra_rdoc_files: []
|
|
103
|
+
files:
|
|
104
|
+
- CHANGELOG.md
|
|
105
|
+
- LICENSE
|
|
106
|
+
- README.md
|
|
107
|
+
- lib/guesty-client.rb
|
|
108
|
+
- lib/guesty.rb
|
|
109
|
+
- lib/guesty/access_tokens/upsert.rb
|
|
110
|
+
- lib/guesty/api_error.rb
|
|
111
|
+
- lib/guesty/client.rb
|
|
112
|
+
- lib/guesty/config.rb
|
|
113
|
+
- lib/guesty/conversations.rb
|
|
114
|
+
- lib/guesty/conversations/attachments/index.rb
|
|
115
|
+
- lib/guesty/conversations/index.rb
|
|
116
|
+
- lib/guesty/conversations/messages/reply.rb
|
|
117
|
+
- lib/guesty/conversations/posts/index.rb
|
|
118
|
+
- lib/guesty/conversations/posts/since.rb
|
|
119
|
+
- lib/guesty/conversations/search.rb
|
|
120
|
+
- lib/guesty/conversations/show.rb
|
|
121
|
+
- lib/guesty/error.rb
|
|
122
|
+
- lib/guesty/guest_folio/invoice_items/index.rb
|
|
123
|
+
- lib/guesty/guests.rb
|
|
124
|
+
- lib/guesty/guests/profiles/create.rb
|
|
125
|
+
- lib/guesty/guests/profiles/show.rb
|
|
126
|
+
- lib/guesty/guests/profiles/update.rb
|
|
127
|
+
- lib/guesty/homes/calendars/show.rb
|
|
128
|
+
- lib/guesty/homes/search.rb
|
|
129
|
+
- lib/guesty/memory_rate_limiter.rb
|
|
130
|
+
- lib/guesty/memory_token_store.rb
|
|
131
|
+
- lib/guesty/operation.rb
|
|
132
|
+
- lib/guesty/rate_limiter_middleware.rb
|
|
133
|
+
- lib/guesty/reservations.rb
|
|
134
|
+
- lib/guesty/reservations/accommodation_fare/update.rb
|
|
135
|
+
- lib/guesty/reservations/approve.rb
|
|
136
|
+
- lib/guesty/reservations/create.rb
|
|
137
|
+
- lib/guesty/reservations/custom_fields/update.rb
|
|
138
|
+
- lib/guesty/reservations/dates/update.rb
|
|
139
|
+
- lib/guesty/reservations/decline.rb
|
|
140
|
+
- lib/guesty/reservations/flags/update.rb
|
|
141
|
+
- lib/guesty/reservations/payments/create.rb
|
|
142
|
+
- lib/guesty/reservations/pre_approve.rb
|
|
143
|
+
- lib/guesty/reservations/recover.rb
|
|
144
|
+
- lib/guesty/reservations/reviews/extractors/airbnb.rb
|
|
145
|
+
- lib/guesty/reservations/reviews/extractors/base.rb
|
|
146
|
+
- lib/guesty/reservations/reviews/extractors/booking_com.rb
|
|
147
|
+
- lib/guesty/reservations/reviews/extractors/vrbo.rb
|
|
148
|
+
- lib/guesty/reservations/reviews/index.rb
|
|
149
|
+
- lib/guesty/reservations/search.rb
|
|
150
|
+
- lib/guesty/reservations/show.rb
|
|
151
|
+
- lib/guesty/reservations/status/cancel.rb
|
|
152
|
+
- lib/guesty/reservations/status/update.rb
|
|
153
|
+
- lib/guesty/reservations/stays/update.rb
|
|
154
|
+
- lib/guesty/reservations/update.rb
|
|
155
|
+
- lib/guesty/reviews/respond.rb
|
|
156
|
+
- lib/guesty/version.rb
|
|
157
|
+
- lib/guesty/views/create.rb
|
|
158
|
+
- lib/guesty/views/update.rb
|
|
159
|
+
- lib/guesty/webhooks/create.rb
|
|
160
|
+
- lib/guesty/webhooks/index.rb
|
|
161
|
+
- lib/guesty/webhooks/signatures/verify.rb
|
|
162
|
+
- lib/guesty/webhooks/sync.rb
|
|
163
|
+
- lib/guesty/webhooks/update.rb
|
|
164
|
+
- sig/guesty.rbs
|
|
165
|
+
homepage: https://github.com/guestitab/guesty-client
|
|
166
|
+
licenses:
|
|
167
|
+
- MIT
|
|
168
|
+
metadata:
|
|
169
|
+
allowed_push_host: https://rubygems.org
|
|
170
|
+
source_code_uri: https://github.com/guestitab/guesty-client
|
|
171
|
+
changelog_uri: https://github.com/guestitab/guesty-client/blob/staging/CHANGELOG.md
|
|
172
|
+
bug_tracker_uri: https://github.com/guestitab/guesty-client/issues
|
|
173
|
+
rubygems_mfa_required: 'true'
|
|
174
|
+
rdoc_options: []
|
|
175
|
+
require_paths:
|
|
176
|
+
- lib
|
|
177
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
178
|
+
requirements:
|
|
179
|
+
- - ">="
|
|
180
|
+
- !ruby/object:Gem::Version
|
|
181
|
+
version: '4.0'
|
|
182
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - ">="
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '0'
|
|
187
|
+
requirements: []
|
|
188
|
+
rubygems_version: 4.0.23
|
|
189
|
+
specification_version: 4
|
|
190
|
+
summary: Ruby client for the Guesty Open API
|
|
191
|
+
test_files: []
|