ebay-mcp-remote-edition 1.0.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.
- package/LICENSE +21 -0
- package/README.md +755 -0
- package/build/api/account-management/account.js +301 -0
- package/build/api/analytics-and-report/analytics.js +102 -0
- package/build/api/client-trading.js +96 -0
- package/build/api/client.js +173 -0
- package/build/api/communication/feedback.js +119 -0
- package/build/api/communication/message.js +131 -0
- package/build/api/communication/negotiation.js +97 -0
- package/build/api/communication/notification.js +373 -0
- package/build/api/developer/developer.js +81 -0
- package/build/api/index.js +109 -0
- package/build/api/listing-management/inventory.js +640 -0
- package/build/api/listing-metadata/metadata.js +485 -0
- package/build/api/listing-metadata/taxonomy.js +58 -0
- package/build/api/marketing-and-promotions/marketing.js +768 -0
- package/build/api/marketing-and-promotions/recommendation.js +32 -0
- package/build/api/order-management/dispute.js +69 -0
- package/build/api/order-management/fulfillment.js +89 -0
- package/build/api/other/compliance.js +47 -0
- package/build/api/other/edelivery.js +219 -0
- package/build/api/other/identity.js +24 -0
- package/build/api/other/translation.js +22 -0
- package/build/api/other/vero.js +48 -0
- package/build/api/trading/trading.js +78 -0
- package/build/auth/kv-store.js +40 -0
- package/build/auth/multi-user-store.js +120 -0
- package/build/auth/oauth-metadata.js +59 -0
- package/build/auth/oauth-middleware.js +99 -0
- package/build/auth/oauth-types.js +4 -0
- package/build/auth/oauth.js +235 -0
- package/build/auth/scope-utils.js +304 -0
- package/build/auth/token-store.js +46 -0
- package/build/auth/token-verifier.js +172 -0
- package/build/config/environment.js +297 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +129 -0
- package/build/schemas/account-management/account.js +375 -0
- package/build/schemas/analytics/analytics.js +191 -0
- package/build/schemas/communication/messages.js +345 -0
- package/build/schemas/fulfillment/orders.js +338 -0
- package/build/schemas/index.js +68 -0
- package/build/schemas/inventory-management/inventory.js +471 -0
- package/build/schemas/marketing/marketing.js +1103 -0
- package/build/schemas/metadata/metadata.js +618 -0
- package/build/schemas/other/other-apis.js +390 -0
- package/build/schemas/taxonomy/taxonomy.js +575 -0
- package/build/scripts/auto-setup.js +364 -0
- package/build/scripts/dev-sync.js +512 -0
- package/build/scripts/diagnostics.js +301 -0
- package/build/scripts/download-specs.js +116 -0
- package/build/scripts/interactive-setup.js +757 -0
- package/build/scripts/setup.js +1515 -0
- package/build/scripts/update-api-status-doc.js +44 -0
- package/build/server-http.d.ts +1 -0
- package/build/server-http.js +581 -0
- package/build/tools/definitions/account-with-schemas.js +170 -0
- package/build/tools/definitions/account.js +428 -0
- package/build/tools/definitions/analytics.js +66 -0
- package/build/tools/definitions/communication.js +394 -0
- package/build/tools/definitions/developer.js +195 -0
- package/build/tools/definitions/fulfillment.js +326 -0
- package/build/tools/definitions/index.js +41 -0
- package/build/tools/definitions/inventory.js +464 -0
- package/build/tools/definitions/marketing.js +1486 -0
- package/build/tools/definitions/metadata.js +188 -0
- package/build/tools/definitions/other.js +309 -0
- package/build/tools/definitions/taxonomy.js +64 -0
- package/build/tools/definitions/token-management.js +148 -0
- package/build/tools/definitions/trading.js +71 -0
- package/build/tools/index.js +1200 -0
- package/build/tools/schemas.js +667 -0
- package/build/tools/tool-definitions.js +3534 -0
- package/build/types/application-settings/developerAnalyticsV1BetaOas3.js +5 -0
- package/build/types/application-settings/developerClientRegistrationV1Oas3.js +5 -0
- package/build/types/application-settings/developerKeyManagementV1Oas3.js +5 -0
- package/build/types/ebay-enums.js +1330 -0
- package/build/types/ebay.js +123 -0
- package/build/types/index.js +10 -0
- package/build/types/sell-apps/account-management/sellAccountV1Oas3.js +5 -0
- package/build/types/sell-apps/analytics-and-report/sellAnalyticsV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/commerceFeedbackV1BetaOas3.js +5 -0
- package/build/types/sell-apps/communication/commerceMessageV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/commerceNotificationV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/sellNegotiationV1Oas3.js +5 -0
- package/build/types/sell-apps/listing-management/sellInventoryV1Oas3.js +5 -0
- package/build/types/sell-apps/listing-metadata/sellMetadataV1Oas3.js +5 -0
- package/build/types/sell-apps/markeitng-and-promotions/sellMarketingV1Oas3.js +5 -0
- package/build/types/sell-apps/markeitng-and-promotions/sellRecommendationV1Oas3.js +5 -0
- package/build/types/sell-apps/order-management/sellFulfillmentV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceIdentityV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceTranslationV1BetaOas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceVeroV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellComplianceV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellEdeliveryInternationalShippingOas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellMarketingV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellRecommendationV1Oas3.js +5 -0
- package/build/utils/account-management/account.js +831 -0
- package/build/utils/api-status-feed.js +83 -0
- package/build/utils/communication/feedback.js +216 -0
- package/build/utils/communication/message.js +242 -0
- package/build/utils/communication/negotiation.js +150 -0
- package/build/utils/communication/notification.js +369 -0
- package/build/utils/date-converter.js +160 -0
- package/build/utils/llm-client-detector.js +758 -0
- package/build/utils/logger.js +198 -0
- package/build/utils/oauth-helper.js +315 -0
- package/build/utils/order-management/dispute.js +369 -0
- package/build/utils/order-management/fulfillment.js +205 -0
- package/build/utils/other/compliance.js +76 -0
- package/build/utils/other/edelivery.js +241 -0
- package/build/utils/other/identity.js +13 -0
- package/build/utils/other/translation.js +41 -0
- package/build/utils/other/vero.js +90 -0
- package/build/utils/scope-helper.js +207 -0
- package/build/utils/security-checker.js +248 -0
- package/build/utils/setup-validator.js +305 -0
- package/build/utils/token-utils.js +40 -0
- package/build/utils/version.js +56 -0
- package/docs/auth/production_scopes.json +111 -0
- package/docs/auth/sandbox_scopes.json +142 -0
- package/package.json +122 -0
- package/public/icons/1024x1024.png +0 -0
- package/public/icons/128x128.png +0 -0
- package/public/icons/16x16.png +0 -0
- package/public/icons/256x256.png +0 -0
- package/public/icons/32x32.png +0 -0
- package/public/icons/48x48.png +0 -0
- package/public/icons/512x512.png +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback API - Manage buyer and seller feedback
|
|
3
|
+
* Based on: docs/sell-apps/communication/commerce_feedback_v1_beta_oas3.json
|
|
4
|
+
*/
|
|
5
|
+
export class FeedbackApi {
|
|
6
|
+
client;
|
|
7
|
+
basePath = '/commerce/feedback/v1';
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get items awaiting feedback
|
|
13
|
+
* Endpoint: GET /awaiting_feedback
|
|
14
|
+
* @throws Error if the request fails
|
|
15
|
+
*/
|
|
16
|
+
async getAwaitingFeedback(filter, limit, offset) {
|
|
17
|
+
const params = {};
|
|
18
|
+
if (filter !== undefined) {
|
|
19
|
+
if (typeof filter !== 'string') {
|
|
20
|
+
throw new Error('filter must be a string when provided');
|
|
21
|
+
}
|
|
22
|
+
params.filter = filter;
|
|
23
|
+
}
|
|
24
|
+
if (limit !== undefined) {
|
|
25
|
+
if (typeof limit !== 'number' || limit < 1) {
|
|
26
|
+
throw new Error('limit must be a positive number when provided');
|
|
27
|
+
}
|
|
28
|
+
params.limit = limit;
|
|
29
|
+
}
|
|
30
|
+
if (offset !== undefined) {
|
|
31
|
+
if (typeof offset !== 'number' || offset < 0) {
|
|
32
|
+
throw new Error('offset must be a non-negative number when provided');
|
|
33
|
+
}
|
|
34
|
+
params.offset = offset;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return await this.client.get(`${this.basePath}/awaiting_feedback`, params);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Failed to get awaiting feedback: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get feedback for a transaction
|
|
45
|
+
* Endpoint: GET /feedback
|
|
46
|
+
* @throws Error if required parameters are missing or invalid
|
|
47
|
+
*/
|
|
48
|
+
async getFeedback(transactionId) {
|
|
49
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
50
|
+
throw new Error('transactionId is required and must be a string');
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return await this.client.get(`${this.basePath}/feedback`, {
|
|
54
|
+
transaction_id: transactionId,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
throw new Error(`Failed to get feedback: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get feedback rating summary
|
|
63
|
+
* Endpoint: GET /feedback_rating_summary
|
|
64
|
+
* @throws Error if the request fails
|
|
65
|
+
*/
|
|
66
|
+
async getFeedbackRatingSummary() {
|
|
67
|
+
try {
|
|
68
|
+
return await this.client.get(`${this.basePath}/feedback_rating_summary`);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw new Error(`Failed to get feedback rating summary: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Leave feedback for a buyer
|
|
76
|
+
* Endpoint: POST /feedback
|
|
77
|
+
* @throws Error if required parameters are missing or invalid
|
|
78
|
+
*/
|
|
79
|
+
async leaveFeedbackForBuyer(feedbackData) {
|
|
80
|
+
if (!feedbackData || typeof feedbackData !== 'object') {
|
|
81
|
+
throw new Error('feedbackData is required and must be an object');
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
return await this.client.post(`${this.basePath}/feedback`, feedbackData);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
throw new Error(`Failed to leave feedback: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Respond to feedback
|
|
92
|
+
* Endpoint: POST /respond_to_feedback
|
|
93
|
+
* @throws Error if required parameters are missing or invalid
|
|
94
|
+
*/
|
|
95
|
+
async respondToFeedback(feedbackId, responseText) {
|
|
96
|
+
if (!feedbackId || typeof feedbackId !== 'string') {
|
|
97
|
+
throw new Error('feedbackId is required and must be a string');
|
|
98
|
+
}
|
|
99
|
+
if (!responseText || typeof responseText !== 'string') {
|
|
100
|
+
throw new Error('responseText is required and must be a string');
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return await this.client.post(`${this.basePath}/respond_to_feedback`, {
|
|
104
|
+
feedback_id: feedbackId,
|
|
105
|
+
response_text: responseText,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw new Error(`Failed to respond to feedback: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get feedback summary
|
|
114
|
+
* @deprecated Use getFeedbackRatingSummary() instead
|
|
115
|
+
*/
|
|
116
|
+
async getFeedbackSummary() {
|
|
117
|
+
return await this.getFeedbackRatingSummary();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message API - Buyer-seller messaging
|
|
3
|
+
* Based on: docs/sell-apps/communication/commerce_message_v1_oas3.json
|
|
4
|
+
*/
|
|
5
|
+
export class MessageApi {
|
|
6
|
+
client;
|
|
7
|
+
basePath = '/commerce/message/v1';
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Bulk update conversation
|
|
13
|
+
* Endpoint: POST /bulk_update_conversation
|
|
14
|
+
* @throws Error if required parameters are missing or invalid
|
|
15
|
+
*/
|
|
16
|
+
async bulkUpdateConversation(updateData) {
|
|
17
|
+
if (!updateData || typeof updateData !== 'object') {
|
|
18
|
+
throw new Error('updateData is required and must be an object');
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
return await this.client.post(`${this.basePath}/bulk_update_conversation`, updateData);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw new Error(`Failed to bulk update conversation: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get conversations
|
|
29
|
+
* Endpoint: GET /conversation
|
|
30
|
+
* @throws Error if the request fails
|
|
31
|
+
*/
|
|
32
|
+
async getConversations(filter, limit, offset) {
|
|
33
|
+
const params = {};
|
|
34
|
+
if (filter !== undefined) {
|
|
35
|
+
if (typeof filter !== 'string') {
|
|
36
|
+
throw new Error('filter must be a string when provided');
|
|
37
|
+
}
|
|
38
|
+
params.filter = filter;
|
|
39
|
+
}
|
|
40
|
+
if (limit !== undefined) {
|
|
41
|
+
if (typeof limit !== 'number' || limit < 1) {
|
|
42
|
+
throw new Error('limit must be a positive number when provided');
|
|
43
|
+
}
|
|
44
|
+
params.limit = limit;
|
|
45
|
+
}
|
|
46
|
+
if (offset !== undefined) {
|
|
47
|
+
if (typeof offset !== 'number' || offset < 0) {
|
|
48
|
+
throw new Error('offset must be a non-negative number when provided');
|
|
49
|
+
}
|
|
50
|
+
params.offset = offset;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return await this.client.get(`${this.basePath}/conversation`, params);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Failed to get conversations: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get a specific conversation
|
|
61
|
+
* Endpoint: GET /conversation/{conversation_id}
|
|
62
|
+
* @throws Error if required parameters are missing or invalid
|
|
63
|
+
*/
|
|
64
|
+
async getConversation(conversationId) {
|
|
65
|
+
if (!conversationId || typeof conversationId !== 'string') {
|
|
66
|
+
throw new Error('conversationId is required and must be a string');
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
return await this.client.get(`${this.basePath}/conversation/${conversationId}`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new Error(`Failed to get conversation: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Send a message
|
|
77
|
+
* Endpoint: POST /send_message
|
|
78
|
+
* @throws Error if required parameters are missing or invalid
|
|
79
|
+
*/
|
|
80
|
+
async sendMessage(messageData) {
|
|
81
|
+
if (!messageData || typeof messageData !== 'object') {
|
|
82
|
+
throw new Error('messageData is required and must be an object');
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
return await this.client.post(`${this.basePath}/send_message`, messageData);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new Error(`Failed to send message: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Update a conversation
|
|
93
|
+
* Endpoint: POST /update_conversation
|
|
94
|
+
* @throws Error if required parameters are missing or invalid
|
|
95
|
+
*/
|
|
96
|
+
async updateConversation(updateData) {
|
|
97
|
+
if (!updateData || typeof updateData !== 'object') {
|
|
98
|
+
throw new Error('updateData is required and must be an object');
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
return await this.client.post(`${this.basePath}/update_conversation`, updateData);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw new Error(`Failed to update conversation: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Search for messages
|
|
109
|
+
* @deprecated Use getConversations() instead
|
|
110
|
+
*/
|
|
111
|
+
async searchMessages(filter, limit, offset) {
|
|
112
|
+
return await this.getConversations(filter, limit, offset);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get a specific message
|
|
116
|
+
* @deprecated Use getConversation() instead
|
|
117
|
+
*/
|
|
118
|
+
async getMessage(messageId) {
|
|
119
|
+
return await this.getConversation(messageId);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Reply to a message
|
|
123
|
+
* @deprecated Use sendMessage() instead
|
|
124
|
+
*/
|
|
125
|
+
async replyToMessage(messageId, messageContent) {
|
|
126
|
+
return await this.sendMessage({
|
|
127
|
+
conversation_id: messageId,
|
|
128
|
+
message_content: messageContent,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Negotiation API - Buyer-seller negotiations and offers
|
|
3
|
+
* Based on: docs/sell-apps/communication/sell_negotiation_v1_oas3.json
|
|
4
|
+
*/
|
|
5
|
+
export class NegotiationApi {
|
|
6
|
+
client;
|
|
7
|
+
basePath = '/sell/negotiation/v1';
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Find eligible items for a seller-initiated offer
|
|
13
|
+
* Endpoint: GET /find_eligible_items
|
|
14
|
+
* @throws Error if the request fails
|
|
15
|
+
*/
|
|
16
|
+
async findEligibleItems(filter, limit, offset) {
|
|
17
|
+
const params = {};
|
|
18
|
+
if (filter !== undefined) {
|
|
19
|
+
if (typeof filter !== 'string') {
|
|
20
|
+
throw new Error('filter must be a string when provided');
|
|
21
|
+
}
|
|
22
|
+
params.filter = filter;
|
|
23
|
+
}
|
|
24
|
+
if (limit !== undefined) {
|
|
25
|
+
if (typeof limit !== 'number' || limit < 1) {
|
|
26
|
+
throw new Error('limit must be a positive number when provided');
|
|
27
|
+
}
|
|
28
|
+
params.limit = limit;
|
|
29
|
+
}
|
|
30
|
+
if (offset !== undefined) {
|
|
31
|
+
if (typeof offset !== 'number' || offset < 0) {
|
|
32
|
+
throw new Error('offset must be a non-negative number when provided');
|
|
33
|
+
}
|
|
34
|
+
params.offset = offset;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return await this.client.get(`${this.basePath}/find_eligible_items`, params);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Failed to find eligible items: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Send offer to interested buyers
|
|
45
|
+
* Endpoint: POST /send_offer_to_interested_buyers
|
|
46
|
+
* @throws Error if required parameters are missing or invalid
|
|
47
|
+
*/
|
|
48
|
+
async sendOfferToInterestedBuyers(offerData) {
|
|
49
|
+
if (!offerData || typeof offerData !== 'object') {
|
|
50
|
+
throw new Error('offerData is required and must be an object');
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return await this.client.post(`${this.basePath}/send_offer_to_interested_buyers`, offerData);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Failed to send offer to interested buyers: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get offers to buyers (Best Offers)
|
|
61
|
+
* @deprecated This method does not match any endpoint in the OpenAPI spec
|
|
62
|
+
*/
|
|
63
|
+
async getOffersToBuyers(filter, limit, offset) {
|
|
64
|
+
const params = {};
|
|
65
|
+
if (filter)
|
|
66
|
+
params.filter = filter;
|
|
67
|
+
if (limit)
|
|
68
|
+
params.limit = limit;
|
|
69
|
+
if (offset)
|
|
70
|
+
params.offset = offset;
|
|
71
|
+
return await this.client.get(`${this.basePath}/offer`, params);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get offers for listing (alias for getOffersToBuyers)
|
|
75
|
+
* Endpoint: GET /offer
|
|
76
|
+
* @throws Error if the request fails
|
|
77
|
+
*/
|
|
78
|
+
async getOffersForListing(filter, limit, offset) {
|
|
79
|
+
return await this.getOffersToBuyers(filter, limit, offset);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get a specific offer
|
|
83
|
+
* Endpoint: GET /offer/{offerId}
|
|
84
|
+
* @throws Error if required parameters are missing or invalid
|
|
85
|
+
*/
|
|
86
|
+
async getOffer(offerId) {
|
|
87
|
+
if (!offerId || typeof offerId !== 'string') {
|
|
88
|
+
throw new Error('offerId is required and must be a string');
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
return await this.client.get(`${this.basePath}/offer/${offerId}`);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new Error(`Failed to get offer: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|