listo-delivery 0.1.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 +7 -0
- data/LICENSE +21 -0
- data/README.md +152 -0
- data/lib/listo_delivery/client.rb +170 -0
- data/lib/listo_delivery/errors.rb +53 -0
- data/lib/listo_delivery/generated/api_version.rb +12 -0
- data/lib/listo_delivery/generated/client_operations.rb +82 -0
- data/lib/listo_delivery/generated/loader.rb +69 -0
- data/lib/listo_delivery/generated/models/balance.rb +48 -0
- data/lib/listo_delivery/generated/models/cancel_delivery_request.rb +29 -0
- data/lib/listo_delivery/generated/models/card_onboarding_link.rb +21 -0
- data/lib/listo_delivery/generated/models/card_status.rb +22 -0
- data/lib/listo_delivery/generated/models/connect_request.rb +28 -0
- data/lib/listo_delivery/generated/models/courier_ping.rb +58 -0
- data/lib/listo_delivery/generated/models/create_connect_request_request.rb +35 -0
- data/lib/listo_delivery/generated/models/create_connection_request.rb +21 -0
- data/lib/listo_delivery/generated/models/create_delivery_request.rb +189 -0
- data/lib/listo_delivery/generated/models/create_quote_request.rb +111 -0
- data/lib/listo_delivery/generated/models/create_store_owner_request.rb +26 -0
- data/lib/listo_delivery/generated/models/create_store_request.rb +104 -0
- data/lib/listo_delivery/generated/models/create_withdrawal_request.rb +29 -0
- data/lib/listo_delivery/generated/models/delivery.rb +879 -0
- data/lib/listo_delivery/generated/models/delivery_courier_location_event.rb +23 -0
- data/lib/listo_delivery/generated/models/delivery_list.rb +34 -0
- data/lib/listo_delivery/generated/models/delivery_message_skipped.rb +37 -0
- data/lib/listo_delivery/generated/models/delivery_message_skipped_event.rb +23 -0
- data/lib/listo_delivery/generated/models/delivery_status_changed_event.rb +23 -0
- data/lib/listo_delivery/generated/models/delivery_updated_event.rb +23 -0
- data/lib/listo_delivery/generated/models/error.rb +56 -0
- data/lib/listo_delivery/generated/models/error_response.rb +20 -0
- data/lib/listo_delivery/generated/models/event_list.rb +34 -0
- data/lib/listo_delivery/generated/models/ledger_entry.rb +62 -0
- data/lib/listo_delivery/generated/models/ledger_entry_list.rb +34 -0
- data/lib/listo_delivery/generated/models/manifest.rb +20 -0
- data/lib/listo_delivery/generated/models/manifest_item.rb +36 -0
- data/lib/listo_delivery/generated/models/owner_invitation.rb +27 -0
- data/lib/listo_delivery/generated/models/ping.rb +56 -0
- data/lib/listo_delivery/generated/models/quote.rb +99 -0
- data/lib/listo_delivery/generated/models/refund_delivery_request.rb +28 -0
- data/lib/listo_delivery/generated/models/request_log.rb +91 -0
- data/lib/listo_delivery/generated/models/request_log_detail.rb +105 -0
- data/lib/listo_delivery/generated/models/request_log_list.rb +34 -0
- data/lib/listo_delivery/generated/models/reschedule_delivery_request.rb +41 -0
- data/lib/listo_delivery/generated/models/same_day_terms.rb +106 -0
- data/lib/listo_delivery/generated/models/send_test_webhook_request.rb +22 -0
- data/lib/listo_delivery/generated/models/store.rb +235 -0
- data/lib/listo_delivery/generated/models/store_balance.rb +48 -0
- data/lib/listo_delivery/generated/models/store_connected_event.rb +23 -0
- data/lib/listo_delivery/generated/models/store_list.rb +34 -0
- data/lib/listo_delivery/generated/models/store_updated_event.rb +23 -0
- data/lib/listo_delivery/generated/models/update_store_request.rb +94 -0
- data/lib/listo_delivery/generated/models/webhook_delivery.rb +99 -0
- data/lib/listo_delivery/generated/models/webhook_delivery_list.rb +34 -0
- data/lib/listo_delivery/generated/models/webhook_event.rb +69 -0
- data/lib/listo_delivery/generated/models/webhook_event_envelope.rb +35 -0
- data/lib/listo_delivery/generated/models/withdrawal.rb +91 -0
- data/lib/listo_delivery/generated/models/withdrawal_list.rb +34 -0
- data/lib/listo_delivery/generated/models/withdrawal_updated_event.rb +23 -0
- data/lib/listo_delivery/generated/resources/balance.rb +43 -0
- data/lib/listo_delivery/generated/resources/card_onboarding.rb +70 -0
- data/lib/listo_delivery/generated/resources/connect_requests.rb +31 -0
- data/lib/listo_delivery/generated/resources/connections.rb +31 -0
- data/lib/listo_delivery/generated/resources/deliveries.rb +128 -0
- data/lib/listo_delivery/generated/resources/events.rb +59 -0
- data/lib/listo_delivery/generated/resources/ledger.rb +47 -0
- data/lib/listo_delivery/generated/resources/quotes.rb +31 -0
- data/lib/listo_delivery/generated/resources/request_logs.rb +45 -0
- data/lib/listo_delivery/generated/resources/stores.rb +143 -0
- data/lib/listo_delivery/generated/resources/webhooks.rb +46 -0
- data/lib/listo_delivery/generated/resources/withdrawals.rb +60 -0
- data/lib/listo_delivery/model.rb +69 -0
- data/lib/listo_delivery/util.rb +76 -0
- data/lib/listo_delivery/version.rb +7 -0
- data/lib/listo_delivery/webhooks.rb +98 -0
- data/lib/listo_delivery.rb +16 -0
- data/listo_delivery.gemspec +27 -0
- metadata +120 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "connections".
|
|
9
|
+
class Connections
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Exchange an approval for the store.
|
|
16
|
+
#
|
|
17
|
+
# POST /v1/connections
|
|
18
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
19
|
+
# @return [Models::Store]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def create(body = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"POST",
|
|
24
|
+
"/v1/connections",
|
|
25
|
+
body: Util.body(body, fields, required: "createConnection"),
|
|
26
|
+
model: Models::Store
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "deliveries".
|
|
9
|
+
class Deliveries
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Cancel a delivery.
|
|
16
|
+
#
|
|
17
|
+
# POST /v1/deliveries/{delivery_id}/cancellations
|
|
18
|
+
# @param delivery_id [String]
|
|
19
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
20
|
+
# @return [Models::Delivery]
|
|
21
|
+
# @raise [ListoDelivery::Error]
|
|
22
|
+
def cancel(delivery_id, body = nil, **fields)
|
|
23
|
+
@client.execute(
|
|
24
|
+
"POST",
|
|
25
|
+
"/v1/deliveries/#{Util.segment(delivery_id)}/cancellations",
|
|
26
|
+
body: Util.body(body, fields, required: "cancelDelivery"),
|
|
27
|
+
model: Models::Delivery
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Create a delivery.
|
|
32
|
+
#
|
|
33
|
+
# POST /v1/deliveries
|
|
34
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
35
|
+
# @param idempotency_key [String, nil] your own key; a fresh UUID is sent when omitted
|
|
36
|
+
# @return [Models::Delivery]
|
|
37
|
+
# @raise [ListoDelivery::Error]
|
|
38
|
+
def create(body = nil, idempotency_key: nil, **fields)
|
|
39
|
+
@client.execute(
|
|
40
|
+
"POST",
|
|
41
|
+
"/v1/deliveries",
|
|
42
|
+
body: Util.body(body, fields, required: "createDelivery"),
|
|
43
|
+
idempotent: true,
|
|
44
|
+
idempotency_key: idempotency_key,
|
|
45
|
+
model: Models::Delivery
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# List deliveries.
|
|
50
|
+
#
|
|
51
|
+
# GET /v1/deliveries
|
|
52
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
53
|
+
# @return [Models::DeliveryList]
|
|
54
|
+
# @raise [ListoDelivery::Error]
|
|
55
|
+
def list(query = nil, **fields)
|
|
56
|
+
@client.execute(
|
|
57
|
+
"GET",
|
|
58
|
+
"/v1/deliveries",
|
|
59
|
+
query: Util.query(query, fields),
|
|
60
|
+
model: Models::DeliveryList
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Refund a delivery.
|
|
65
|
+
#
|
|
66
|
+
# POST /v1/deliveries/{delivery_id}/refunds
|
|
67
|
+
# @param delivery_id [String]
|
|
68
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
69
|
+
# @param idempotency_key [String, nil] your own key; a fresh UUID is sent when omitted
|
|
70
|
+
# @return [Models::Delivery]
|
|
71
|
+
# @raise [ListoDelivery::Error]
|
|
72
|
+
def refund(delivery_id, body = nil, idempotency_key: nil, **fields)
|
|
73
|
+
@client.execute(
|
|
74
|
+
"POST",
|
|
75
|
+
"/v1/deliveries/#{Util.segment(delivery_id)}/refunds",
|
|
76
|
+
body: Util.body(body, fields),
|
|
77
|
+
idempotent: true,
|
|
78
|
+
idempotency_key: idempotency_key,
|
|
79
|
+
model: Models::Delivery
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Update a delivery.
|
|
84
|
+
#
|
|
85
|
+
# PATCH /v1/deliveries/{id}
|
|
86
|
+
# @param id [String]
|
|
87
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
88
|
+
# @return [Models::Delivery]
|
|
89
|
+
# @raise [ListoDelivery::Error]
|
|
90
|
+
def reschedule(id, body = nil, **fields)
|
|
91
|
+
@client.execute(
|
|
92
|
+
"PATCH",
|
|
93
|
+
"/v1/deliveries/#{Util.segment(id)}",
|
|
94
|
+
body: Util.body(body, fields, required: "rescheduleDelivery"),
|
|
95
|
+
model: Models::Delivery
|
|
96
|
+
)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Fetch a delivery.
|
|
100
|
+
#
|
|
101
|
+
# GET /v1/deliveries/{id}
|
|
102
|
+
# @param id [String]
|
|
103
|
+
# @return [Models::Delivery]
|
|
104
|
+
# @raise [ListoDelivery::Error]
|
|
105
|
+
def retrieve(id)
|
|
106
|
+
@client.execute(
|
|
107
|
+
"GET",
|
|
108
|
+
"/v1/deliveries/#{Util.segment(id)}",
|
|
109
|
+
model: Models::Delivery
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Retry a failed dispatch.
|
|
114
|
+
#
|
|
115
|
+
# POST /v1/deliveries/{delivery_id}/retries
|
|
116
|
+
# @param delivery_id [String]
|
|
117
|
+
# @return [Models::Delivery]
|
|
118
|
+
# @raise [ListoDelivery::Error]
|
|
119
|
+
def retry(delivery_id)
|
|
120
|
+
@client.execute(
|
|
121
|
+
"POST",
|
|
122
|
+
"/v1/deliveries/#{Util.segment(delivery_id)}/retries",
|
|
123
|
+
model: Models::Delivery
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "events".
|
|
9
|
+
class Events
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# List your webhook events.
|
|
16
|
+
#
|
|
17
|
+
# GET /v1/events
|
|
18
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
19
|
+
# @return [Models::EventList]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def list(query = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"GET",
|
|
24
|
+
"/v1/events",
|
|
25
|
+
query: Util.query(query, fields),
|
|
26
|
+
model: Models::EventList
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Send a webhook event again.
|
|
31
|
+
#
|
|
32
|
+
# POST /v1/events/{event_id}/resend
|
|
33
|
+
# @param event_id [String]
|
|
34
|
+
# @return [Models::WebhookEvent]
|
|
35
|
+
# @raise [ListoDelivery::Error]
|
|
36
|
+
def resend(event_id)
|
|
37
|
+
@client.execute(
|
|
38
|
+
"POST",
|
|
39
|
+
"/v1/events/#{Util.segment(event_id)}/resend",
|
|
40
|
+
model: Models::WebhookEvent
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Retrieve a webhook event.
|
|
45
|
+
#
|
|
46
|
+
# GET /v1/events/{id}
|
|
47
|
+
# @param id [String]
|
|
48
|
+
# @return [Models::WebhookEvent]
|
|
49
|
+
# @raise [ListoDelivery::Error]
|
|
50
|
+
def retrieve(id)
|
|
51
|
+
@client.execute(
|
|
52
|
+
"GET",
|
|
53
|
+
"/v1/events/#{Util.segment(id)}",
|
|
54
|
+
model: Models::WebhookEvent
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "ledger".
|
|
9
|
+
class Ledger
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# List your ledger entries.
|
|
16
|
+
#
|
|
17
|
+
# GET /v1/ledger
|
|
18
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
19
|
+
# @return [Models::LedgerEntryList]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def list(query = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"GET",
|
|
24
|
+
"/v1/ledger",
|
|
25
|
+
query: Util.query(query, fields),
|
|
26
|
+
model: Models::LedgerEntryList
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# List a store's ledger entries.
|
|
31
|
+
#
|
|
32
|
+
# GET /v1/stores/{store_id}/ledger
|
|
33
|
+
# @param store_id [String]
|
|
34
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
35
|
+
# @return [Models::LedgerEntryList]
|
|
36
|
+
# @raise [ListoDelivery::Error]
|
|
37
|
+
def list_for_store(store_id, query = nil, **fields)
|
|
38
|
+
@client.execute(
|
|
39
|
+
"GET",
|
|
40
|
+
"/v1/stores/#{Util.segment(store_id)}/ledger",
|
|
41
|
+
query: Util.query(query, fields),
|
|
42
|
+
model: Models::LedgerEntryList
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "quotes".
|
|
9
|
+
class Quotes
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Price a delivery.
|
|
16
|
+
#
|
|
17
|
+
# POST /v1/quotes
|
|
18
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
19
|
+
# @return [Models::Quote]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def create(body = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"POST",
|
|
24
|
+
"/v1/quotes",
|
|
25
|
+
body: Util.body(body, fields, required: "createQuote"),
|
|
26
|
+
model: Models::Quote
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "request_logs".
|
|
9
|
+
class RequestLogs
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# List your request log.
|
|
16
|
+
#
|
|
17
|
+
# GET /v1/request_logs
|
|
18
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
19
|
+
# @return [Models::RequestLogList]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def list(query = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"GET",
|
|
24
|
+
"/v1/request_logs",
|
|
25
|
+
query: Util.query(query, fields),
|
|
26
|
+
model: Models::RequestLogList
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Retrieve a request log entry.
|
|
31
|
+
#
|
|
32
|
+
# GET /v1/request_logs/{id}
|
|
33
|
+
# @param id [String]
|
|
34
|
+
# @return [Models::RequestLogDetail]
|
|
35
|
+
# @raise [ListoDelivery::Error]
|
|
36
|
+
def retrieve(id)
|
|
37
|
+
@client.execute(
|
|
38
|
+
"GET",
|
|
39
|
+
"/v1/request_logs/#{Util.segment(id)}",
|
|
40
|
+
model: Models::RequestLogDetail
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "stores".
|
|
9
|
+
class Stores
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Cancel a store's plan.
|
|
16
|
+
#
|
|
17
|
+
# POST /v1/stores/{store_id}/plan_cancellation
|
|
18
|
+
# @param store_id [String]
|
|
19
|
+
# @param idempotency_key [String, nil] your own key; a fresh UUID is sent when omitted
|
|
20
|
+
# @return [Models::Store]
|
|
21
|
+
# @raise [ListoDelivery::Error]
|
|
22
|
+
def cancel_plan(store_id, idempotency_key: nil)
|
|
23
|
+
@client.execute(
|
|
24
|
+
"POST",
|
|
25
|
+
"/v1/stores/#{Util.segment(store_id)}/plan_cancellation",
|
|
26
|
+
idempotent: true,
|
|
27
|
+
idempotency_key: idempotency_key,
|
|
28
|
+
model: Models::Store
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Create a store.
|
|
33
|
+
#
|
|
34
|
+
# POST /v1/stores
|
|
35
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
36
|
+
# @param idempotency_key [String, nil] your own key; a fresh UUID is sent when omitted
|
|
37
|
+
# @return [Models::Store]
|
|
38
|
+
# @raise [ListoDelivery::Error]
|
|
39
|
+
def create(body = nil, idempotency_key: nil, **fields)
|
|
40
|
+
@client.execute(
|
|
41
|
+
"POST",
|
|
42
|
+
"/v1/stores",
|
|
43
|
+
body: Util.body(body, fields, required: "createStore"),
|
|
44
|
+
idempotent: true,
|
|
45
|
+
idempotency_key: idempotency_key,
|
|
46
|
+
model: Models::Store
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Invite a store owner.
|
|
51
|
+
#
|
|
52
|
+
# POST /v1/stores/{store_id}/owner
|
|
53
|
+
# @param store_id [String]
|
|
54
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
55
|
+
# @return [Models::OwnerInvitation]
|
|
56
|
+
# @raise [ListoDelivery::Error]
|
|
57
|
+
def create_owner(store_id, body = nil, **fields)
|
|
58
|
+
@client.execute(
|
|
59
|
+
"POST",
|
|
60
|
+
"/v1/stores/#{Util.segment(store_id)}/owner",
|
|
61
|
+
body: Util.body(body, fields, required: "createStoreOwner"),
|
|
62
|
+
model: Models::OwnerInvitation
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# List your stores.
|
|
67
|
+
#
|
|
68
|
+
# GET /v1/stores
|
|
69
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
70
|
+
# @return [Models::StoreList]
|
|
71
|
+
# @raise [ListoDelivery::Error]
|
|
72
|
+
def list(query = nil, **fields)
|
|
73
|
+
@client.execute(
|
|
74
|
+
"GET",
|
|
75
|
+
"/v1/stores",
|
|
76
|
+
query: Util.query(query, fields),
|
|
77
|
+
model: Models::StoreList
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Reactivate a store's plan.
|
|
82
|
+
#
|
|
83
|
+
# POST /v1/stores/{store_id}/plan
|
|
84
|
+
# @param store_id [String]
|
|
85
|
+
# @param idempotency_key [String, nil] your own key; a fresh UUID is sent when omitted
|
|
86
|
+
# @return [Models::Store]
|
|
87
|
+
# @raise [ListoDelivery::Error]
|
|
88
|
+
def reactivate_plan(store_id, idempotency_key: nil)
|
|
89
|
+
@client.execute(
|
|
90
|
+
"POST",
|
|
91
|
+
"/v1/stores/#{Util.segment(store_id)}/plan",
|
|
92
|
+
idempotent: true,
|
|
93
|
+
idempotency_key: idempotency_key,
|
|
94
|
+
model: Models::Store
|
|
95
|
+
)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Fetch a store.
|
|
99
|
+
#
|
|
100
|
+
# GET /v1/stores/{id}
|
|
101
|
+
# @param id [String]
|
|
102
|
+
# @return [Models::Store]
|
|
103
|
+
# @raise [ListoDelivery::Error]
|
|
104
|
+
def retrieve(id)
|
|
105
|
+
@client.execute(
|
|
106
|
+
"GET",
|
|
107
|
+
"/v1/stores/#{Util.segment(id)}",
|
|
108
|
+
model: Models::Store
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Undo a store's plan cancellation.
|
|
113
|
+
#
|
|
114
|
+
# DELETE /v1/stores/{store_id}/plan_cancellation
|
|
115
|
+
# @param store_id [String]
|
|
116
|
+
# @return [Models::Store]
|
|
117
|
+
# @raise [ListoDelivery::Error]
|
|
118
|
+
def undo_plan_cancellation(store_id)
|
|
119
|
+
@client.execute(
|
|
120
|
+
"DELETE",
|
|
121
|
+
"/v1/stores/#{Util.segment(store_id)}/plan_cancellation",
|
|
122
|
+
model: Models::Store
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Update a store.
|
|
127
|
+
#
|
|
128
|
+
# PATCH /v1/stores/{id}
|
|
129
|
+
# @param id [String]
|
|
130
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
131
|
+
# @return [Models::Store]
|
|
132
|
+
# @raise [ListoDelivery::Error]
|
|
133
|
+
def update(id, body = nil, **fields)
|
|
134
|
+
@client.execute(
|
|
135
|
+
"PATCH",
|
|
136
|
+
"/v1/stores/#{Util.segment(id)}",
|
|
137
|
+
body: Util.body(body, fields),
|
|
138
|
+
model: Models::Store
|
|
139
|
+
)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "webhooks".
|
|
9
|
+
class Webhooks
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# List webhook delivery attempts.
|
|
16
|
+
#
|
|
17
|
+
# GET /v1/webhook_deliveries
|
|
18
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
19
|
+
# @return [Models::WebhookDeliveryList]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def list_deliveries(query = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"GET",
|
|
24
|
+
"/v1/webhook_deliveries",
|
|
25
|
+
query: Util.query(query, fields),
|
|
26
|
+
model: Models::WebhookDeliveryList
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Send a test webhook.
|
|
31
|
+
#
|
|
32
|
+
# POST /v1/test_webhooks
|
|
33
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
34
|
+
# @return [Models::WebhookEvent]
|
|
35
|
+
# @raise [ListoDelivery::Error]
|
|
36
|
+
def send_test(body = nil, **fields)
|
|
37
|
+
@client.execute(
|
|
38
|
+
"POST",
|
|
39
|
+
"/v1/test_webhooks",
|
|
40
|
+
body: Util.body(body, fields, required: "sendTestWebhook"),
|
|
41
|
+
model: Models::WebhookEvent
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# GENERATED from Listo's API definition (API 1.37.0). Do not edit by hand:
|
|
4
|
+
# this file is rewritten whenever the SDK is regenerated.
|
|
5
|
+
|
|
6
|
+
module ListoDelivery
|
|
7
|
+
module Resources
|
|
8
|
+
# Operations under "withdrawals".
|
|
9
|
+
class Withdrawals
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(client)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Request a withdrawal.
|
|
16
|
+
#
|
|
17
|
+
# POST /v1/withdrawals
|
|
18
|
+
# @param body [Hash, nil] request body (also accepted as keywords)
|
|
19
|
+
# @return [Models::Withdrawal]
|
|
20
|
+
# @raise [ListoDelivery::Error]
|
|
21
|
+
def create(body = nil, **fields)
|
|
22
|
+
@client.execute(
|
|
23
|
+
"POST",
|
|
24
|
+
"/v1/withdrawals",
|
|
25
|
+
body: Util.body(body, fields, required: "createWithdrawal"),
|
|
26
|
+
model: Models::Withdrawal
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# List your withdrawals.
|
|
31
|
+
#
|
|
32
|
+
# GET /v1/withdrawals
|
|
33
|
+
# @param query [Hash, nil] query parameters (also accepted as keywords)
|
|
34
|
+
# @return [Models::WithdrawalList]
|
|
35
|
+
# @raise [ListoDelivery::Error]
|
|
36
|
+
def list(query = nil, **fields)
|
|
37
|
+
@client.execute(
|
|
38
|
+
"GET",
|
|
39
|
+
"/v1/withdrawals",
|
|
40
|
+
query: Util.query(query, fields),
|
|
41
|
+
model: Models::WithdrawalList
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Fetch a withdrawal.
|
|
46
|
+
#
|
|
47
|
+
# GET /v1/withdrawals/{id}
|
|
48
|
+
# @param id [String]
|
|
49
|
+
# @return [Models::Withdrawal]
|
|
50
|
+
# @raise [ListoDelivery::Error]
|
|
51
|
+
def retrieve(id)
|
|
52
|
+
@client.execute(
|
|
53
|
+
"GET",
|
|
54
|
+
"/v1/withdrawals/#{Util.segment(id)}",
|
|
55
|
+
model: Models::Withdrawal
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ListoDelivery
|
|
4
|
+
# Base of every generated model. A model wraps the JSON object as received:
|
|
5
|
+
# a reader per documented field (by wire name), `#to_h` and `#[]`, and any
|
|
6
|
+
# field the server adds later stays in `#to_h` instead of breaking parsing.
|
|
7
|
+
class Model
|
|
8
|
+
# Field name => how to convert it (nil for a plain JSON value). Each
|
|
9
|
+
# generated class replaces this.
|
|
10
|
+
TYPES = {}.freeze
|
|
11
|
+
|
|
12
|
+
# Turns a parsed JSON value into this model; anything that is not an
|
|
13
|
+
# object comes back untouched.
|
|
14
|
+
def self.build(value)
|
|
15
|
+
value.is_a?(Hash) ? new(value) : value
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @param data [Hash] the JSON object, string or symbol keys
|
|
19
|
+
def initialize(data = {})
|
|
20
|
+
@raw = Util.plain(data)
|
|
21
|
+
@cache = {}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# The JSON object, unknown keys included. A copy: changing it changes nothing here.
|
|
25
|
+
def to_h
|
|
26
|
+
Util.plain(@raw)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# The field named as on the wire, converted like its reader.
|
|
30
|
+
def [](key)
|
|
31
|
+
read(key.to_s)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def ==(other)
|
|
35
|
+
other.class == self.class && other.to_h == to_h
|
|
36
|
+
end
|
|
37
|
+
alias_method :eql?, :==
|
|
38
|
+
|
|
39
|
+
def hash
|
|
40
|
+
[self.class, @raw].hash
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def inspect
|
|
44
|
+
"#<#{self.class.name} #{@raw.inspect}>"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def to_json(*args)
|
|
48
|
+
@raw.to_json(*args)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
def read(name)
|
|
54
|
+
return @cache[name] if @cache.key?(name)
|
|
55
|
+
|
|
56
|
+
@cache[name] = convert(self.class::TYPES[name], @raw[name])
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def convert(descriptor, value)
|
|
60
|
+
return value if descriptor.nil? || value.nil?
|
|
61
|
+
|
|
62
|
+
case descriptor.first
|
|
63
|
+
when "model" then Models.const_get(descriptor.last).build(value)
|
|
64
|
+
when "array" then value.is_a?(Array) ? value.map { |v| convert(descriptor.last, v) } : value
|
|
65
|
+
else value
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|