ebay-mcp 1.18.0 → 1.18.2
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/README.md +24 -35
- package/build/api/account-management/accountV2.js +22 -22
- package/build/api/account-management/finances.js +10 -10
- package/build/api/analytics-and-report/analytics.js +1 -1
- package/build/api/{client.js → client/ebayApiClient.js} +37 -41
- package/build/api/{clientTrading.js → client/tradingApiClient.js} +22 -22
- package/build/api/communication/feedback.js +21 -21
- package/build/api/communication/message.js +23 -23
- package/build/api/communication/negotiation.js +7 -7
- package/build/api/communication/notification.js +52 -52
- package/build/api/developer/developer.js +3 -3
- package/build/api/{index.js → ebaySellerApi.js} +4 -4
- package/build/api/listing-management/feedReportTasks.js +6 -6
- package/build/api/listing-management/feedRequest.js +6 -6
- package/build/api/listing-management/feedSchedules.js +4 -4
- package/build/api/listing-management/feedTasks.js +2 -2
- package/build/api/listing-management/items.js +22 -22
- package/build/api/listing-management/locations.js +4 -4
- package/build/api/listing-management/media.js +14 -14
- package/build/api/listing-management/mediaAttach.js +14 -14
- package/build/api/listing-management/mediaResources.js +15 -13
- package/build/api/listing-management/offerFormat.js +1 -1
- package/build/api/listing-management/offers.js +23 -23
- package/build/api/listing-management/stores.js +9 -9
- package/build/api/listing-metadata/metadata.js +10 -10
- package/build/api/marketing-and-promotions/ads.js +34 -34
- package/build/api/marketing-and-promotions/campaigns.js +19 -19
- package/build/api/marketing-and-promotions/promotions.js +22 -22
- package/build/api/marketing-and-promotions/reports.js +7 -7
- package/build/api/order-management/dispute.js +11 -9
- package/build/api/order-management/fulfillment.js +4 -4
- package/build/api/order-management/logistics.js +7 -7
- package/build/api/other/browseMappers.js +15 -13
- package/build/api/other/browseValidators.js +4 -4
- package/build/api/other/edelivery.js +19 -19
- package/build/api/other/finding.js +13 -13
- package/build/api/other/translation.js +2 -2
- package/build/api/other/vero.js +2 -2
- package/build/api/shared/download.js +7 -7
- package/build/api/shared/request.js +28 -19
- package/build/api/trading/listingFormat.js +37 -30
- package/build/api/trading/trading.js +33 -33
- package/build/auth/credentialSession.js +5 -5
- package/build/auth/oauth.js +3 -3
- package/build/auth/oauthHelper.js +24 -24
- package/build/auth/oauthMetadata.js +4 -4
- package/build/auth/oauthMiddleware.js +16 -16
- package/build/auth/scopeUtils.js +2 -2
- package/build/auth/tokenVerifier.js +23 -23
- package/build/config/environment.js +4 -45
- package/build/config/oauthScopes.js +132 -0
- package/build/index.js +5 -5
- package/build/mcp/httpTransport.js +32 -20
- package/build/mcp/runtime.js +12 -12
- package/build/mcp/toolGating.js +6 -12
- package/build/mcp/uiBridge.js +3 -3
- package/build/schemas/account-management/account.js +2 -52
- package/build/schemas/account-management/accountV2.js +2 -2
- package/build/schemas/account-management/finances.js +1 -1
- package/build/schemas/analytics/analytics.js +2 -48
- package/build/schemas/communication/messages.js +2 -46
- package/build/schemas/developer/developer.js +1 -27
- package/build/schemas/fulfillment/logistics.js +1 -1
- package/build/schemas/fulfillment/orders.js +2 -47
- package/build/schemas/inventory-management/feed.js +1 -1
- package/build/schemas/inventory-management/inventory.js +2 -50
- package/build/schemas/inventory-management/media.js +2 -2
- package/build/schemas/inventory-management/mediaDocuments.js +1 -1
- package/build/schemas/inventory-management/stores.js +1 -1
- package/build/schemas/marketing/ads.js +2 -2
- package/build/schemas/marketing/campaigns.js +2 -2
- package/build/schemas/marketing/common.js +2 -2
- package/build/schemas/marketing/marketing.js +0 -1
- package/build/schemas/marketing/promotions.js +2 -2
- package/build/schemas/marketing/reports.js +2 -2
- package/build/schemas/metadata/metadata.js +2 -90
- package/build/schemas/metadata/shipping.js +1 -1
- package/build/schemas/other/browse.js +2 -2
- package/build/schemas/other/finding.js +2 -2
- package/build/schemas/other/otherApis.js +2 -114
- package/build/schemas/taxonomy/categoryTree.js +1 -1
- package/build/schemas/taxonomy/charity.js +1 -1
- package/build/schemas/taxonomy/taxonomy.js +2 -69
- package/build/scripts/autoSetup.js +3 -3
- package/build/scripts/{buildUi.js → buildMcpApps.js} +13 -13
- package/build/scripts/devSync.js +19 -68
- package/build/scripts/diagnostics.js +15 -16
- package/build/scripts/interactiveSetup.js +25 -25
- package/build/scripts/scopeHelper.js +2 -2
- package/build/scripts/securityChecker.js +20 -20
- package/build/scripts/setup.js +76 -76
- package/build/scripts/setupShared.js +5 -30
- package/build/scripts/setupValidator.js +9 -9
- package/build/scripts/setupWizard.js +23 -23
- package/build/scripts/skills.js +14 -17
- package/build/scripts/specRefs.js +1 -1
- package/build/scripts/specSources.js +144 -0
- package/build/serverHttp.js +4 -7
- package/build/skills/content.js +13 -13
- package/build/skills/install.js +9 -9
- package/build/skills/render.js +2 -2
- package/build/tools/categories/communication.js +1 -1
- package/build/tools/categories/connector.js +19 -16
- package/build/tools/categories/fulfillment.js +4 -4
- package/build/tools/categories/inventory.js +1 -1
- package/build/tools/categories/metadata.js +1 -1
- package/build/tools/categories/taxonomy.js +1 -1
- package/build/tools/categories/tokenManagement.js +8 -8
- package/build/tools/contracts.js +2 -2
- package/build/tools/defineTool.js +27 -12
- package/build/tools/registry.js +2 -2
- package/build/tools/schemas.js +2 -2
- package/build/tools/ui/mapHelpers.js +12 -12
- package/build/tools/ui/maps.js +101 -97
- package/build/tools/ui/viewModels.js +2 -2
- package/build/utils/apiStatusFeed.js +12 -12
- package/build/utils/communication/feedback.js +3 -3
- package/build/utils/communication/message.js +3 -3
- package/build/utils/communication/negotiation.js +3 -3
- package/build/utils/communication/notification.js +3 -3
- package/build/utils/entryModule.js +33 -0
- package/build/utils/envFile.js +47 -0
- package/build/utils/envParser.js +5 -5
- package/build/utils/errors.js +4 -4
- package/build/utils/http.js +38 -38
- package/build/utils/localFeedFiles.js +3 -3
- package/build/utils/logRedaction.js +21 -0
- package/build/utils/logger.js +49 -35
- package/build/utils/other/compliance.js +3 -3
- package/build/utils/other/identity.js +3 -3
- package/build/utils/other/translation.js +3 -3
- package/build/utils/other/vero.js +3 -3
- package/build/utils/schemaHelpers.js +2 -2
- package/build/utils/tokenUtils.js +2 -2
- package/build/utils/trading/trading.js +1 -1
- package/build/utils/version.js +1 -1
- package/build/utils/zodIssues.js +14 -0
- package/package.json +8 -11
- package/README.de.md +0 -426
- package/README.es.md +0 -426
- package/README.fr.md +0 -426
- package/README.ja.md +0 -426
- package/README.ko.md +0 -426
- package/README.pt-BR.md +0 -426
- package/README.ru.md +0 -426
- package/README.zh-CN.md +0 -426
- package/build/schemas/index.js +0 -76
- package/build/schemas/marketing/jsonSchemas.js +0 -118
- package/build/scripts/downloadSpecs.js +0 -117
- package/build/scripts/updateApiStatusDoc.js +0 -71
- package/build/utils/effectSchema.js +0 -203
- package/build/utils/effectSchemaAdapter.js +0 -121
- package/build/utils/effectSchemaChainMethods.js +0 -146
- package/build/utils/effectSchemaRefinements.js +0 -104
- package/build/utils/effectSchemaStringMethods.js +0 -63
- package/build/utils/effectSchemaTypes.js +0 -47
- package/docs/auth/production_scopes.json +0 -111
- package/docs/auth/sandbox_scopes.json +0 -142
- /package/build/api/{clientRequestError.js → client/ebayClientRequestError.js} +0 -0
- /package/build/api/{rateLimitTracker.js → client/rateLimitTracker.js} +0 -0
- /package/build/api/{clientTradingError.js → client/tradingApiFailure.js} +0 -0
|
@@ -2,7 +2,7 @@ import { buildEndpointParams, optionalNonNegativeNumberEffect, optionalPositiveN
|
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
3
|
/**
|
|
4
4
|
* Feedback API - Manage buyer and seller feedback
|
|
5
|
-
* Based on:
|
|
5
|
+
* Based on: commerce_feedback_v1_beta_oas3.json
|
|
6
6
|
*/
|
|
7
7
|
export class FeedbackApi {
|
|
8
8
|
client;
|
|
@@ -61,17 +61,17 @@ export class FeedbackApi {
|
|
|
61
61
|
const client = this.client;
|
|
62
62
|
const path = `${this.basePath}/feedback`;
|
|
63
63
|
return Effect.gen(function* () {
|
|
64
|
-
const
|
|
65
|
-
const userId = yield* requireStringEffect(
|
|
66
|
-
const feedbackType = yield* requireStringEffect(
|
|
67
|
-
const feedbackId = yield* optionalStringEffect(
|
|
68
|
-
const filter = yield* optionalStringEffect(
|
|
69
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
70
|
-
const listingId = yield* optionalStringEffect(
|
|
71
|
-
const offset = yield* optionalNonNegativeNumberEffect(
|
|
72
|
-
const orderLineItemId = yield* optionalStringEffect(
|
|
73
|
-
const sort = yield* optionalStringEffect(
|
|
74
|
-
const transactionId = yield* optionalStringEffect(
|
|
64
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
65
|
+
const userId = yield* requireStringEffect(validatedInput.userId, 'userId');
|
|
66
|
+
const feedbackType = yield* requireStringEffect(validatedInput.feedbackType, 'feedbackType');
|
|
67
|
+
const feedbackId = yield* optionalStringEffect(validatedInput.feedbackId, 'feedbackId');
|
|
68
|
+
const filter = yield* optionalStringEffect(validatedInput.filter, 'filter');
|
|
69
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
70
|
+
const listingId = yield* optionalStringEffect(validatedInput.listingId, 'listingId');
|
|
71
|
+
const offset = yield* optionalNonNegativeNumberEffect(validatedInput.offset, 'offset');
|
|
72
|
+
const orderLineItemId = yield* optionalStringEffect(validatedInput.orderLineItemId, 'orderLineItemId');
|
|
73
|
+
const sort = yield* optionalStringEffect(validatedInput.sort, 'sort');
|
|
74
|
+
const transactionId = yield* optionalStringEffect(validatedInput.transactionId, 'transactionId');
|
|
75
75
|
const params = buildEndpointParams({
|
|
76
76
|
userId: { wireName: 'user_id', value: userId },
|
|
77
77
|
feedbackType: { wireName: 'feedback_type', value: feedbackType },
|
|
@@ -109,9 +109,9 @@ export class FeedbackApi {
|
|
|
109
109
|
const client = this.client;
|
|
110
110
|
const path = `${this.basePath}/feedback_rating_summary`;
|
|
111
111
|
return Effect.gen(function* () {
|
|
112
|
-
const
|
|
113
|
-
const userId = yield* requireStringEffect(
|
|
114
|
-
const filter = yield* requireStringEffect(
|
|
112
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
113
|
+
const userId = yield* requireStringEffect(validatedInput.userId, 'userId');
|
|
114
|
+
const filter = yield* requireStringEffect(validatedInput.filter, 'filter');
|
|
115
115
|
const params = buildEndpointParams({
|
|
116
116
|
userId: { wireName: 'user_id', value: userId },
|
|
117
117
|
filter: { wireName: 'filter', value: filter },
|
|
@@ -138,14 +138,14 @@ export class FeedbackApi {
|
|
|
138
138
|
const client = this.client;
|
|
139
139
|
const path = `${this.basePath}/feedback`;
|
|
140
140
|
return Effect.gen(function* () {
|
|
141
|
-
const
|
|
142
|
-
return yield* requestPostEffect(client, path,
|
|
141
|
+
const feedbackRequest = yield* requireObjectEffect(feedbackData, 'feedbackData');
|
|
142
|
+
return yield* requestPostEffect(client, path, feedbackRequest);
|
|
143
143
|
});
|
|
144
144
|
};
|
|
145
145
|
/**
|
|
146
146
|
* Responds to feedback received from another eBay user.
|
|
147
147
|
*
|
|
148
|
-
* @param
|
|
148
|
+
* @param feedbackReply - Generated RespondToFeedbackRequest body.
|
|
149
149
|
* @returns An Effect that succeeds with eBay's generated empty response.
|
|
150
150
|
*
|
|
151
151
|
* @example
|
|
@@ -157,12 +157,12 @@ export class FeedbackApi {
|
|
|
157
157
|
*
|
|
158
158
|
* @see https://developer.ebay.com/api-docs/commerce/feedback/resources/respond_to_feedback/methods/respondToFeedback
|
|
159
159
|
*/
|
|
160
|
-
respondToFeedback = (
|
|
160
|
+
respondToFeedback = (feedbackReply) => {
|
|
161
161
|
const client = this.client;
|
|
162
162
|
const path = `${this.basePath}/respond_to_feedback`;
|
|
163
163
|
return Effect.gen(function* () {
|
|
164
|
-
const
|
|
165
|
-
return yield* requestPostEffect(client, path,
|
|
164
|
+
const replyRequest = yield* requireObjectEffect(feedbackReply, 'feedbackReply');
|
|
165
|
+
return yield* requestPostEffect(client, path, replyRequest);
|
|
166
166
|
});
|
|
167
167
|
};
|
|
168
168
|
}
|
|
@@ -2,7 +2,7 @@ import { buildEndpointParams, optionalNonNegativeNumberEffect, optionalPositiveN
|
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
3
|
/**
|
|
4
4
|
* Message API - Buyer-seller messaging
|
|
5
|
-
* Based on:
|
|
5
|
+
* Based on: commerce_message_v1_oas3.json
|
|
6
6
|
*/
|
|
7
7
|
export class MessageApi {
|
|
8
8
|
client;
|
|
@@ -18,7 +18,7 @@ export class MessageApi {
|
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```ts
|
|
21
|
-
* const
|
|
21
|
+
* const updatedConversations = await Effect.runPromise(
|
|
22
22
|
* messageApi.bulkUpdateConversation({ conversations: [{ conversationId: 'c1' }] }),
|
|
23
23
|
* );
|
|
24
24
|
* ```
|
|
@@ -29,8 +29,8 @@ export class MessageApi {
|
|
|
29
29
|
const client = this.client;
|
|
30
30
|
const path = `${this.basePath}/bulk_update_conversation`;
|
|
31
31
|
return Effect.gen(function* () {
|
|
32
|
-
const
|
|
33
|
-
return yield* requestPostEffect(client, path,
|
|
32
|
+
const bulkUpdateRequest = yield* requireObjectEffect(updateData, 'updateData');
|
|
33
|
+
return yield* requestPostEffect(client, path, bulkUpdateRequest);
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
@@ -52,16 +52,16 @@ export class MessageApi {
|
|
|
52
52
|
const client = this.client;
|
|
53
53
|
const path = `${this.basePath}/conversation`;
|
|
54
54
|
return Effect.gen(function* () {
|
|
55
|
-
const
|
|
56
|
-
const conversationType = yield* requireStringEffect(
|
|
57
|
-
const conversationStatus = yield* optionalStringEffect(
|
|
58
|
-
const endTime = yield* optionalStringEffect(
|
|
59
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
60
|
-
const offset = yield* optionalNonNegativeNumberEffect(
|
|
61
|
-
const otherPartyUsername = yield* optionalStringEffect(
|
|
62
|
-
const referenceId = yield* optionalStringEffect(
|
|
63
|
-
const referenceType = yield* optionalStringEffect(
|
|
64
|
-
const startTime = yield* optionalStringEffect(
|
|
55
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
56
|
+
const conversationType = yield* requireStringEffect(validatedInput.conversationType, 'conversationType');
|
|
57
|
+
const conversationStatus = yield* optionalStringEffect(validatedInput.conversationStatus, 'conversationStatus');
|
|
58
|
+
const endTime = yield* optionalStringEffect(validatedInput.endTime, 'endTime');
|
|
59
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
60
|
+
const offset = yield* optionalNonNegativeNumberEffect(validatedInput.offset, 'offset');
|
|
61
|
+
const otherPartyUsername = yield* optionalStringEffect(validatedInput.otherPartyUsername, 'otherPartyUsername');
|
|
62
|
+
const referenceId = yield* optionalStringEffect(validatedInput.referenceId, 'referenceId');
|
|
63
|
+
const referenceType = yield* optionalStringEffect(validatedInput.referenceType, 'referenceType');
|
|
64
|
+
const startTime = yield* optionalStringEffect(validatedInput.startTime, 'startTime');
|
|
65
65
|
const params = buildEndpointParams({
|
|
66
66
|
conversationType: { wireName: 'conversation_type', value: conversationType },
|
|
67
67
|
conversationStatus: { wireName: 'conversation_status', value: conversationStatus },
|
|
@@ -95,11 +95,11 @@ export class MessageApi {
|
|
|
95
95
|
const client = this.client;
|
|
96
96
|
const basePath = this.basePath;
|
|
97
97
|
return Effect.gen(function* () {
|
|
98
|
-
const
|
|
99
|
-
const conversationId = yield* requireStringEffect(
|
|
100
|
-
const conversationType = yield* requireStringEffect(
|
|
101
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
102
|
-
const offset = yield* optionalNonNegativeNumberEffect(
|
|
98
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
99
|
+
const conversationId = yield* requireStringEffect(validatedInput.conversationId, 'conversationId');
|
|
100
|
+
const conversationType = yield* requireStringEffect(validatedInput.conversationType, 'conversationType');
|
|
101
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
102
|
+
const offset = yield* optionalNonNegativeNumberEffect(validatedInput.offset, 'offset');
|
|
103
103
|
const params = buildEndpointParams({
|
|
104
104
|
conversationType: { wireName: 'conversation_type', value: conversationType },
|
|
105
105
|
limit: { wireName: 'limit', value: limit },
|
|
@@ -127,8 +127,8 @@ export class MessageApi {
|
|
|
127
127
|
const client = this.client;
|
|
128
128
|
const path = `${this.basePath}/send_message`;
|
|
129
129
|
return Effect.gen(function* () {
|
|
130
|
-
const
|
|
131
|
-
return yield* requestPostEffect(client, path,
|
|
130
|
+
const messageRequest = yield* requireObjectEffect(messageData, 'messageData');
|
|
131
|
+
return yield* requestPostEffect(client, path, messageRequest);
|
|
132
132
|
});
|
|
133
133
|
};
|
|
134
134
|
/**
|
|
@@ -150,8 +150,8 @@ export class MessageApi {
|
|
|
150
150
|
const client = this.client;
|
|
151
151
|
const path = `${this.basePath}/update_conversation`;
|
|
152
152
|
return Effect.gen(function* () {
|
|
153
|
-
const
|
|
154
|
-
return yield* requestPostEffect(client, path,
|
|
153
|
+
const conversationUpdate = yield* requireObjectEffect(updateData, 'updateData');
|
|
154
|
+
return yield* requestPostEffect(client, path, conversationUpdate);
|
|
155
155
|
});
|
|
156
156
|
};
|
|
157
157
|
}
|
|
@@ -2,7 +2,7 @@ import { buildEndpointParams, optionalNonNegativeNumberEffect, optionalPositiveN
|
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
3
|
/**
|
|
4
4
|
* Negotiation API - Buyer-seller negotiations and offers
|
|
5
|
-
* Based on:
|
|
5
|
+
* Based on: sell_negotiation_v1_oas3.json
|
|
6
6
|
*/
|
|
7
7
|
export class NegotiationApi {
|
|
8
8
|
basePath = '/sell/negotiation/v1';
|
|
@@ -29,8 +29,8 @@ export class NegotiationApi {
|
|
|
29
29
|
const apiClient = this.client;
|
|
30
30
|
const path = `${this.basePath}/find_eligible_items`;
|
|
31
31
|
return Effect.gen(function* () {
|
|
32
|
-
const
|
|
33
|
-
const { marketplaceId: inputMarketplaceId, limit: inputLimit, offset: inputOffset } =
|
|
32
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
33
|
+
const { marketplaceId: inputMarketplaceId, limit: inputLimit, offset: inputOffset, } = validatedInput;
|
|
34
34
|
const marketplaceId = yield* optionalStringEffect(inputMarketplaceId, 'marketplaceId');
|
|
35
35
|
const limit = yield* optionalPositiveNumberEffect(inputLimit, 'limit');
|
|
36
36
|
const offset = yield* optionalNonNegativeNumberEffect(inputOffset, 'offset');
|
|
@@ -66,14 +66,14 @@ export class NegotiationApi {
|
|
|
66
66
|
const apiClient = this.client;
|
|
67
67
|
const path = `${this.basePath}/send_offer_to_interested_buyers`;
|
|
68
68
|
return Effect.gen(function* () {
|
|
69
|
-
const
|
|
70
|
-
const { marketplaceId, ...offerData } =
|
|
71
|
-
const
|
|
69
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
70
|
+
const { marketplaceId, ...offerData } = validatedInput;
|
|
71
|
+
const createOffersRequest = yield* requireObjectEffect(offerData, 'offerData');
|
|
72
72
|
const validatedMarketplaceId = yield* optionalStringEffect(marketplaceId, 'marketplaceId');
|
|
73
73
|
const config = validatedMarketplaceId === undefined
|
|
74
74
|
? undefined
|
|
75
75
|
: { headers: { 'X-EBAY-C-MARKETPLACE-ID': validatedMarketplaceId } };
|
|
76
|
-
return yield* requestPostEffect(apiClient, path,
|
|
76
|
+
return yield* requestPostEffect(apiClient, path, createOffersRequest, config);
|
|
77
77
|
});
|
|
78
78
|
};
|
|
79
79
|
}
|
|
@@ -2,7 +2,7 @@ import { buildEndpointParams, optionalPositiveNumberEffect, optionalStringEffect
|
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
3
|
/**
|
|
4
4
|
* Notification API - Event notifications and subscriptions
|
|
5
|
-
* Based on:
|
|
5
|
+
* Based on: commerce_notification_v1_oas3.json
|
|
6
6
|
*/
|
|
7
7
|
export class NotificationApi {
|
|
8
8
|
basePath = '/commerce/notification/v1';
|
|
@@ -27,8 +27,8 @@ export class NotificationApi {
|
|
|
27
27
|
const apiClient = this.client;
|
|
28
28
|
const apiBasePath = this.basePath;
|
|
29
29
|
return Effect.gen(function* () {
|
|
30
|
-
const
|
|
31
|
-
const validatedPublicKeyId = yield* requireStringEffect(
|
|
30
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
31
|
+
const validatedPublicKeyId = yield* requireStringEffect(validatedInput.publicKeyId, 'publicKeyId');
|
|
32
32
|
return yield* requestGetEffect(apiClient, `${apiBasePath}/public_key/${validatedPublicKeyId}`);
|
|
33
33
|
});
|
|
34
34
|
};
|
|
@@ -66,8 +66,8 @@ export class NotificationApi {
|
|
|
66
66
|
const apiClient = this.client;
|
|
67
67
|
const path = `${this.basePath}/config`;
|
|
68
68
|
return Effect.gen(function* () {
|
|
69
|
-
const
|
|
70
|
-
return yield* requestPutEffect(apiClient, path,
|
|
69
|
+
const configUpdate = yield* requireObjectEffect(input, 'input');
|
|
70
|
+
return yield* requestPutEffect(apiClient, path, configUpdate);
|
|
71
71
|
});
|
|
72
72
|
};
|
|
73
73
|
/**
|
|
@@ -87,9 +87,9 @@ export class NotificationApi {
|
|
|
87
87
|
const apiClient = this.client;
|
|
88
88
|
const path = `${this.basePath}/destination`;
|
|
89
89
|
return Effect.gen(function* () {
|
|
90
|
-
const
|
|
91
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
92
|
-
const continuationToken = yield* optionalStringEffect(
|
|
90
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
91
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
92
|
+
const continuationToken = yield* optionalStringEffect(validatedInput.continuationToken, 'continuationToken');
|
|
93
93
|
const params = buildEndpointParams({
|
|
94
94
|
limit: { wireName: 'limit', value: limit },
|
|
95
95
|
continuationToken: { wireName: 'continuation_token', value: continuationToken },
|
|
@@ -116,8 +116,8 @@ export class NotificationApi {
|
|
|
116
116
|
const apiClient = this.client;
|
|
117
117
|
const apiBasePath = this.basePath;
|
|
118
118
|
return Effect.gen(function* () {
|
|
119
|
-
const
|
|
120
|
-
const validatedDestinationId = yield* requireStringEffect(
|
|
119
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
120
|
+
const validatedDestinationId = yield* requireStringEffect(validatedInput.destinationId, 'destinationId');
|
|
121
121
|
return yield* requestGetEffect(apiClient, `${apiBasePath}/destination/${validatedDestinationId}`);
|
|
122
122
|
});
|
|
123
123
|
};
|
|
@@ -138,8 +138,8 @@ export class NotificationApi {
|
|
|
138
138
|
const apiClient = this.client;
|
|
139
139
|
const path = `${this.basePath}/destination`;
|
|
140
140
|
return Effect.gen(function* () {
|
|
141
|
-
const
|
|
142
|
-
return yield* requestPostEffect(apiClient, path,
|
|
141
|
+
const destinationRequest = yield* requireObjectEffect(input, 'input');
|
|
142
|
+
return yield* requestPostEffect(apiClient, path, destinationRequest);
|
|
143
143
|
});
|
|
144
144
|
};
|
|
145
145
|
/**
|
|
@@ -161,11 +161,11 @@ export class NotificationApi {
|
|
|
161
161
|
const apiClient = this.client;
|
|
162
162
|
const apiBasePath = this.basePath;
|
|
163
163
|
return Effect.gen(function* () {
|
|
164
|
-
const
|
|
165
|
-
const { destinationId, ...destination } =
|
|
164
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
165
|
+
const { destinationId, ...destination } = validatedInput;
|
|
166
166
|
const validatedDestinationId = yield* requireStringEffect(destinationId, 'destinationId');
|
|
167
|
-
const
|
|
168
|
-
return yield* requestPutEffect(apiClient, `${apiBasePath}/destination/${validatedDestinationId}`,
|
|
167
|
+
const destinationRequest = yield* requireObjectEffect(destination, 'destination');
|
|
168
|
+
return yield* requestPutEffect(apiClient, `${apiBasePath}/destination/${validatedDestinationId}`, destinationRequest);
|
|
169
169
|
});
|
|
170
170
|
};
|
|
171
171
|
/**
|
|
@@ -185,8 +185,8 @@ export class NotificationApi {
|
|
|
185
185
|
const apiClient = this.client;
|
|
186
186
|
const apiBasePath = this.basePath;
|
|
187
187
|
return Effect.gen(function* () {
|
|
188
|
-
const
|
|
189
|
-
const validatedDestinationId = yield* requireStringEffect(
|
|
188
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
189
|
+
const validatedDestinationId = yield* requireStringEffect(validatedInput.destinationId, 'destinationId');
|
|
190
190
|
return yield* requestDeleteEffect(apiClient, `${apiBasePath}/destination/${validatedDestinationId}`);
|
|
191
191
|
});
|
|
192
192
|
};
|
|
@@ -207,9 +207,9 @@ export class NotificationApi {
|
|
|
207
207
|
const apiClient = this.client;
|
|
208
208
|
const path = `${this.basePath}/subscription`;
|
|
209
209
|
return Effect.gen(function* () {
|
|
210
|
-
const
|
|
211
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
212
|
-
const continuationToken = yield* optionalStringEffect(
|
|
210
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
211
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
212
|
+
const continuationToken = yield* optionalStringEffect(validatedInput.continuationToken, 'continuationToken');
|
|
213
213
|
const params = buildEndpointParams({
|
|
214
214
|
limit: { wireName: 'limit', value: limit },
|
|
215
215
|
continuationToken: { wireName: 'continuation_token', value: continuationToken },
|
|
@@ -234,8 +234,8 @@ export class NotificationApi {
|
|
|
234
234
|
const apiClient = this.client;
|
|
235
235
|
const path = `${this.basePath}/subscription`;
|
|
236
236
|
return Effect.gen(function* () {
|
|
237
|
-
const
|
|
238
|
-
return yield* requestPostEffect(apiClient, path,
|
|
237
|
+
const subscriptionRequest = yield* requireObjectEffect(input, 'input');
|
|
238
|
+
return yield* requestPostEffect(apiClient, path, subscriptionRequest);
|
|
239
239
|
});
|
|
240
240
|
};
|
|
241
241
|
/**
|
|
@@ -257,8 +257,8 @@ export class NotificationApi {
|
|
|
257
257
|
const apiClient = this.client;
|
|
258
258
|
const apiBasePath = this.basePath;
|
|
259
259
|
return Effect.gen(function* () {
|
|
260
|
-
const
|
|
261
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
260
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
261
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
262
262
|
return yield* requestGetEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}`);
|
|
263
263
|
});
|
|
264
264
|
};
|
|
@@ -281,11 +281,11 @@ export class NotificationApi {
|
|
|
281
281
|
const apiClient = this.client;
|
|
282
282
|
const apiBasePath = this.basePath;
|
|
283
283
|
return Effect.gen(function* () {
|
|
284
|
-
const
|
|
285
|
-
const { subscriptionId, ...subscription } =
|
|
284
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
285
|
+
const { subscriptionId, ...subscription } = validatedInput;
|
|
286
286
|
const validatedSubscriptionId = yield* requireStringEffect(subscriptionId, 'subscriptionId');
|
|
287
|
-
const
|
|
288
|
-
return yield* requestPutEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}`,
|
|
287
|
+
const subscriptionUpdate = yield* requireObjectEffect(subscription, 'subscription');
|
|
288
|
+
return yield* requestPutEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}`, subscriptionUpdate);
|
|
289
289
|
});
|
|
290
290
|
};
|
|
291
291
|
/**
|
|
@@ -305,8 +305,8 @@ export class NotificationApi {
|
|
|
305
305
|
const apiClient = this.client;
|
|
306
306
|
const apiBasePath = this.basePath;
|
|
307
307
|
return Effect.gen(function* () {
|
|
308
|
-
const
|
|
309
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
308
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
309
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
310
310
|
return yield* requestDeleteEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}`);
|
|
311
311
|
});
|
|
312
312
|
};
|
|
@@ -327,8 +327,8 @@ export class NotificationApi {
|
|
|
327
327
|
const apiClient = this.client;
|
|
328
328
|
const apiBasePath = this.basePath;
|
|
329
329
|
return Effect.gen(function* () {
|
|
330
|
-
const
|
|
331
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
330
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
331
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
332
332
|
return yield* requestPostEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/disable`);
|
|
333
333
|
});
|
|
334
334
|
};
|
|
@@ -349,8 +349,8 @@ export class NotificationApi {
|
|
|
349
349
|
const apiClient = this.client;
|
|
350
350
|
const apiBasePath = this.basePath;
|
|
351
351
|
return Effect.gen(function* () {
|
|
352
|
-
const
|
|
353
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
352
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
353
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
354
354
|
return yield* requestPostEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/enable`);
|
|
355
355
|
});
|
|
356
356
|
};
|
|
@@ -371,8 +371,8 @@ export class NotificationApi {
|
|
|
371
371
|
const apiClient = this.client;
|
|
372
372
|
const apiBasePath = this.basePath;
|
|
373
373
|
return Effect.gen(function* () {
|
|
374
|
-
const
|
|
375
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
374
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
375
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
376
376
|
return yield* requestPostEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/test`);
|
|
377
377
|
});
|
|
378
378
|
};
|
|
@@ -393,8 +393,8 @@ export class NotificationApi {
|
|
|
393
393
|
const apiClient = this.client;
|
|
394
394
|
const apiBasePath = this.basePath;
|
|
395
395
|
return Effect.gen(function* () {
|
|
396
|
-
const
|
|
397
|
-
const validatedTopicId = yield* requireStringEffect(
|
|
396
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
397
|
+
const validatedTopicId = yield* requireStringEffect(validatedInput.topicId, 'topicId');
|
|
398
398
|
return yield* requestGetEffect(apiClient, `${apiBasePath}/topic/${validatedTopicId}`);
|
|
399
399
|
});
|
|
400
400
|
};
|
|
@@ -415,9 +415,9 @@ export class NotificationApi {
|
|
|
415
415
|
const apiClient = this.client;
|
|
416
416
|
const path = `${this.basePath}/topic`;
|
|
417
417
|
return Effect.gen(function* () {
|
|
418
|
-
const
|
|
419
|
-
const limit = yield* optionalPositiveNumberEffect(
|
|
420
|
-
const continuationToken = yield* optionalStringEffect(
|
|
418
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
419
|
+
const limit = yield* optionalPositiveNumberEffect(validatedInput.limit, 'limit');
|
|
420
|
+
const continuationToken = yield* optionalStringEffect(validatedInput.continuationToken, 'continuationToken');
|
|
421
421
|
const params = buildEndpointParams({
|
|
422
422
|
limit: { wireName: 'limit', value: limit },
|
|
423
423
|
continuationToken: { wireName: 'continuation_token', value: continuationToken },
|
|
@@ -447,11 +447,11 @@ export class NotificationApi {
|
|
|
447
447
|
const apiClient = this.client;
|
|
448
448
|
const apiBasePath = this.basePath;
|
|
449
449
|
return Effect.gen(function* () {
|
|
450
|
-
const
|
|
451
|
-
const { subscriptionId, ...filter } =
|
|
450
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
451
|
+
const { subscriptionId, ...filter } = validatedInput;
|
|
452
452
|
const validatedSubscriptionId = yield* requireStringEffect(subscriptionId, 'subscriptionId');
|
|
453
|
-
const
|
|
454
|
-
return yield* requestPostEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/filter`,
|
|
453
|
+
const filterRequest = yield* requireObjectEffect(filter, 'filter');
|
|
454
|
+
return yield* requestPostEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/filter`, filterRequest);
|
|
455
455
|
});
|
|
456
456
|
};
|
|
457
457
|
/**
|
|
@@ -473,9 +473,9 @@ export class NotificationApi {
|
|
|
473
473
|
const apiClient = this.client;
|
|
474
474
|
const apiBasePath = this.basePath;
|
|
475
475
|
return Effect.gen(function* () {
|
|
476
|
-
const
|
|
477
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
478
|
-
const validatedFilterId = yield* requireStringEffect(
|
|
476
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
477
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
478
|
+
const validatedFilterId = yield* requireStringEffect(validatedInput.filterId, 'filterId');
|
|
479
479
|
return yield* requestGetEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/filter/${validatedFilterId}`);
|
|
480
480
|
});
|
|
481
481
|
};
|
|
@@ -501,9 +501,9 @@ export class NotificationApi {
|
|
|
501
501
|
const apiClient = this.client;
|
|
502
502
|
const apiBasePath = this.basePath;
|
|
503
503
|
return Effect.gen(function* () {
|
|
504
|
-
const
|
|
505
|
-
const validatedSubscriptionId = yield* requireStringEffect(
|
|
506
|
-
const validatedFilterId = yield* requireStringEffect(
|
|
504
|
+
const validatedInput = yield* requireObjectEffect(input, 'input');
|
|
505
|
+
const validatedSubscriptionId = yield* requireStringEffect(validatedInput.subscriptionId, 'subscriptionId');
|
|
506
|
+
const validatedFilterId = yield* requireStringEffect(validatedInput.filterId, 'filterId');
|
|
507
507
|
return yield* requestDeleteEffect(apiClient, `${apiBasePath}/subscription/${validatedSubscriptionId}/filter/${validatedFilterId}`);
|
|
508
508
|
});
|
|
509
509
|
};
|
|
@@ -3,9 +3,9 @@ import { Effect } from 'effect';
|
|
|
3
3
|
/**
|
|
4
4
|
* Developer API - Rate limits, client registration, and signing keys
|
|
5
5
|
* Based on:
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
6
|
+
* - developer_analytics_v1_beta_oas3.json
|
|
7
|
+
* - developer_client_registration_v1_oas3.json
|
|
8
|
+
* - developer_key_management_v1_oas3.json
|
|
9
9
|
*/
|
|
10
10
|
export class DeveloperApi {
|
|
11
11
|
client;
|
|
@@ -2,7 +2,7 @@ import { AccountApi } from '../api/account-management/account.js';
|
|
|
2
2
|
import { AccountV2Api } from '../api/account-management/accountV2.js';
|
|
3
3
|
import { FinancesApi } from '../api/account-management/finances.js';
|
|
4
4
|
import { AnalyticsApi } from '../api/analytics-and-report/analytics.js';
|
|
5
|
-
import { EbayApiClient } from '../api/client.js';
|
|
5
|
+
import { EbayApiClient } from '../api/client/ebayApiClient.js';
|
|
6
6
|
import { FeedbackApi } from '../api/communication/feedback.js';
|
|
7
7
|
import { MessageApi } from '../api/communication/message.js';
|
|
8
8
|
import { NegotiationApi } from '../api/communication/negotiation.js';
|
|
@@ -27,7 +27,7 @@ import { FindingApi } from '../api/other/finding.js';
|
|
|
27
27
|
import { IdentityApi } from '../api/other/identity.js';
|
|
28
28
|
import { TranslationApi } from '../api/other/translation.js';
|
|
29
29
|
import { VeroApi } from '../api/other/vero.js';
|
|
30
|
-
import { TradingApiClient } from '../api/
|
|
30
|
+
import { TradingApiClient } from '../api/client/tradingApiClient.js';
|
|
31
31
|
import { TradingApi } from '../api/trading/trading.js';
|
|
32
32
|
/**
|
|
33
33
|
* Main API facade providing access to all eBay APIs
|
|
@@ -150,7 +150,7 @@ export * from '../api/account-management/account.js';
|
|
|
150
150
|
export * from '../api/account-management/accountV2.js';
|
|
151
151
|
export * from '../api/account-management/finances.js';
|
|
152
152
|
export * from '../api/analytics-and-report/analytics.js';
|
|
153
|
-
export * from '../api/client.js';
|
|
153
|
+
export * from '../api/client/ebayApiClient.js';
|
|
154
154
|
export * from '../api/communication/feedback.js';
|
|
155
155
|
export * from '../api/communication/message.js';
|
|
156
156
|
export * from '../api/communication/negotiation.js';
|
|
@@ -180,4 +180,4 @@ export * from '../api/other/translation.js';
|
|
|
180
180
|
export * from '../api/other/vero.js';
|
|
181
181
|
export * from '../api/developer/developer.js';
|
|
182
182
|
export * from '../api/trading/trading.js';
|
|
183
|
-
export * from '../api/
|
|
183
|
+
export * from '../api/client/tradingApiClient.js';
|
|
@@ -26,8 +26,8 @@ export const createFeedReportTaskMethods = (client) => {
|
|
|
26
26
|
* @see https://developer.ebay.com/api-docs/sell/feed/resources/order_task/methods/createOrderTask
|
|
27
27
|
*/
|
|
28
28
|
const createOrderTask = (input) => decodeEndpointInputEffect(createOrderTaskInputSchema, input).pipe(Effect.flatMap(({ task }) => {
|
|
29
|
-
const
|
|
30
|
-
return postFeedTask(client, '/order_task',
|
|
29
|
+
const orderTaskRequest = task;
|
|
30
|
+
return postFeedTask(client, '/order_task', orderTaskRequest);
|
|
31
31
|
}));
|
|
32
32
|
/**
|
|
33
33
|
* Retrieves one order report task.
|
|
@@ -53,8 +53,8 @@ export const createFeedReportTaskMethods = (client) => {
|
|
|
53
53
|
* @see https://developer.ebay.com/api-docs/sell/feed/resources/inventory_task/methods/createInventoryTask
|
|
54
54
|
*/
|
|
55
55
|
const createInventoryTask = (input) => decodeEndpointInputEffect(createInventoryTaskInputSchema, input).pipe(Effect.flatMap(({ task }) => {
|
|
56
|
-
const
|
|
57
|
-
return postFeedTask(client, '/inventory_task',
|
|
56
|
+
const inventoryTaskRequest = task;
|
|
57
|
+
return postFeedTask(client, '/inventory_task', inventoryTaskRequest);
|
|
58
58
|
}));
|
|
59
59
|
/**
|
|
60
60
|
* Retrieves one active inventory report task.
|
|
@@ -81,9 +81,9 @@ export const createFeedReportTaskMethods = (client) => {
|
|
|
81
81
|
* @see https://developer.ebay.com/api-docs/sell/feed/resources/customer_service_metric_task/methods/createCustomerServiceMetricTask
|
|
82
82
|
*/
|
|
83
83
|
const createCustomerServiceMetricTask = (input) => decodeEndpointInputEffect(createCustomerServiceMetricTaskInputSchema, input).pipe(Effect.flatMap(({ task, acceptLanguage }) => {
|
|
84
|
-
const
|
|
84
|
+
const metricTaskRequest = task;
|
|
85
85
|
const headers = acceptLanguage ? { 'Accept-Language': acceptLanguage } : undefined;
|
|
86
|
-
return postFeedTask(client, '/customer_service_metric_task',
|
|
86
|
+
return postFeedTask(client, '/customer_service_metric_task', metricTaskRequest, headers);
|
|
87
87
|
}));
|
|
88
88
|
/**
|
|
89
89
|
* Retrieves one customer service metric report task.
|
|
@@ -57,29 +57,29 @@ export const exclusiveFeedFilters = (query) => {
|
|
|
57
57
|
*
|
|
58
58
|
* @param client - Shared authenticated HTTP client.
|
|
59
59
|
* @param collection - Collection path below the base path, e.g. `/schedule`.
|
|
60
|
-
* @param
|
|
60
|
+
* @param createRequest - Generated create-request DTO.
|
|
61
61
|
* @param config - Optional per-request headers.
|
|
62
62
|
* @returns An Effect with the decoded ID and Location, or an EbayApiError.
|
|
63
63
|
* @example postFeedResource(client, '/schedule', { feedType: 'LMS_ORDER_REPORT', scheduleTemplateId: 'T-1' })
|
|
64
64
|
*/
|
|
65
|
-
export const postFeedResource = (client, collection,
|
|
65
|
+
export const postFeedResource = (client, collection, createRequest, config) => {
|
|
66
66
|
const path = `${FEED_BASE_PATH}${collection}`;
|
|
67
67
|
return Effect.tryPromise({
|
|
68
|
-
try: () => client.postForResponse(path,
|
|
68
|
+
try: () => client.postForResponse(path, createRequest, config),
|
|
69
69
|
catch: (cause) => new EbayApiError({ method: 'POST', path, cause }), // allow-duplicate
|
|
70
|
-
}).pipe(Effect.flatMap((
|
|
70
|
+
}).pipe(Effect.flatMap((createdResponse) => locatedResourceId(createdResponse.headers.location, path)));
|
|
71
71
|
};
|
|
72
72
|
/**
|
|
73
73
|
* Creates a Feed API task (HTTP 202, no body) and returns the ID from its `Location`.
|
|
74
74
|
*
|
|
75
75
|
* @param client - Shared authenticated HTTP client.
|
|
76
76
|
* @param collection - Task collection path, e.g. `/order_task`.
|
|
77
|
-
* @param
|
|
77
|
+
* @param taskRequest - Generated create-task DTO.
|
|
78
78
|
* @param headers - Optional request headers such as Accept-Language.
|
|
79
79
|
* @returns An Effect with the new task ID and Location, or an EbayApiError.
|
|
80
80
|
* @example postFeedTask(client, '/task', { feedType: 'LMS_ORDER_ACK', schemaVersion: '1235' })
|
|
81
81
|
*/
|
|
82
|
-
export const postFeedTask = (client, collection,
|
|
82
|
+
export const postFeedTask = (client, collection, taskRequest, headers) => postFeedResource(client, collection, taskRequest, headers ? { headers } : undefined).pipe(Effect.map(({ id, location }) => ({ taskId: id, location })));
|
|
83
83
|
/**
|
|
84
84
|
* Downloads a Feed API file (input, result or latest schedule report) as raw bytes.
|
|
85
85
|
*
|
|
@@ -25,8 +25,8 @@ export const createFeedScheduleMethods = (client) => {
|
|
|
25
25
|
* @see https://developer.ebay.com/api-docs/sell/feed/resources/schedule/methods/createSchedule
|
|
26
26
|
*/
|
|
27
27
|
const createSchedule = (input) => decodeEndpointInputEffect(createFeedScheduleInputSchema, input).pipe(Effect.flatMap(({ schedule }) => {
|
|
28
|
-
const
|
|
29
|
-
return postFeedResource(client, '/schedule',
|
|
28
|
+
const createScheduleRequest = schedule;
|
|
29
|
+
return postFeedResource(client, '/schedule', createScheduleRequest);
|
|
30
30
|
}), Effect.map(({ id, location }) => ({ scheduleId: id, location })));
|
|
31
31
|
/**
|
|
32
32
|
* Retrieves one schedule's details and status.
|
|
@@ -47,8 +47,8 @@ export const createFeedScheduleMethods = (client) => {
|
|
|
47
47
|
parameter: 'schedule',
|
|
48
48
|
message: 'Provide at least one schedule field to update',
|
|
49
49
|
})), Effect.flatMap(({ scheduleId, schedule }) => {
|
|
50
|
-
const
|
|
51
|
-
return requestPutEffect(client, feedResourcePath('/schedule', scheduleId),
|
|
50
|
+
const updateScheduleRequest = schedule;
|
|
51
|
+
return requestPutEffect(client, feedResourcePath('/schedule', scheduleId), updateScheduleRequest);
|
|
52
52
|
}));
|
|
53
53
|
/**
|
|
54
54
|
* Deletes a schedule; it stops generating reports.
|
|
@@ -38,7 +38,7 @@ export const createFeedTaskMethods = (client) => {
|
|
|
38
38
|
*/
|
|
39
39
|
const createTask = (input) => Effect.gen(function* () {
|
|
40
40
|
const { task, marketplaceId, acceptLanguage } = yield* decodeEndpointInputEffect(createFeedTaskInputSchema, input);
|
|
41
|
-
const
|
|
41
|
+
const taskRequest = task;
|
|
42
42
|
const headers = {};
|
|
43
43
|
if (marketplaceId) {
|
|
44
44
|
headers['X-EBAY-C-MARKETPLACE-ID'] = marketplaceId;
|
|
@@ -46,7 +46,7 @@ export const createFeedTaskMethods = (client) => {
|
|
|
46
46
|
if (acceptLanguage) {
|
|
47
47
|
headers['Accept-Language'] = acceptLanguage;
|
|
48
48
|
}
|
|
49
|
-
return yield* postFeedTask(client, '/task',
|
|
49
|
+
return yield* postFeedTask(client, '/task', taskRequest, headers);
|
|
50
50
|
});
|
|
51
51
|
/**
|
|
52
52
|
* Retrieves a feed task's status and upload summary.
|