UNPKG

wildberries-api

Version:

Typescript API для Wildberries, сгенерированное из Swagger. Без внешних зависимостей.

500 lines 17.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Api = exports.HttpClient = exports.ContentType = void 0; var ContentType; (function (ContentType) { ContentType["Json"] = "application/json"; ContentType["FormData"] = "multipart/form-data"; ContentType["UrlEncoded"] = "application/x-www-form-urlencoded"; ContentType["Text"] = "text/plain"; })(ContentType = exports.ContentType || (exports.ContentType = {})); class HttpClient { baseUrl = ""; securityData = null; securityWorker; abortControllers = new Map(); customFetch = (...fetchParams) => fetch(...fetchParams); baseApiParams = { credentials: "same-origin", headers: {}, redirect: "follow", referrerPolicy: "no-referrer", }; constructor(apiConfig = {}) { Object.assign(this, apiConfig); } setSecurityData = (data) => { this.securityData = data; }; encodeQueryParam(key, value) { const encodedKey = encodeURIComponent(key); return `${encodedKey}=${encodeURIComponent(typeof value === "number" ? value : `${value}`)}`; } addQueryParam(query, key) { return this.encodeQueryParam(key, query[key]); } addArrayQueryParam(query, key) { const value = query[key]; return value.map((v) => this.encodeQueryParam(key, v)).join("&"); } toQueryString(rawQuery) { const query = rawQuery || {}; const keys = Object.keys(query).filter((key) => "undefined" !== typeof query[key]); return keys .map((key) => (Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key))) .join("&"); } addQueryParams(rawQuery) { const queryString = this.toQueryString(rawQuery); return queryString ? `?${queryString}` : ""; } contentFormatters = { [ContentType.Json]: (input) => input !== null && (typeof input === "object" || typeof input === "string") ? JSON.stringify(input) : input, [ContentType.Text]: (input) => (input !== null && typeof input !== "string" ? JSON.stringify(input) : input), [ContentType.FormData]: (input) => Object.keys(input || {}).reduce((formData, key) => { const property = input[key]; formData.append(key, property instanceof Blob ? property : typeof property === "object" && property !== null ? JSON.stringify(property) : `${property}`); return formData; }, new FormData()), [ContentType.UrlEncoded]: (input) => this.toQueryString(input), }; mergeRequestParams(params1, params2) { return { ...this.baseApiParams, ...params1, ...(params2 || {}), headers: { ...(this.baseApiParams.headers || {}), ...(params1.headers || {}), ...((params2 && params2.headers) || {}), }, }; } createAbortSignal = (cancelToken) => { if (this.abortControllers.has(cancelToken)) { const abortController = this.abortControllers.get(cancelToken); if (abortController) { return abortController.signal; } return void 0; } const abortController = new AbortController(); this.abortControllers.set(cancelToken, abortController); return abortController.signal; }; abortRequest = (cancelToken) => { const abortController = this.abortControllers.get(cancelToken); if (abortController) { abortController.abort(); this.abortControllers.delete(cancelToken); } }; request = async ({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }) => { const secureParams = ((typeof secure === "boolean" ? secure : this.baseApiParams.secure) && this.securityWorker && (await this.securityWorker(this.securityData))) || {}; const requestParams = this.mergeRequestParams(params, secureParams); const queryString = query && this.toQueryString(query); const payloadFormatter = this.contentFormatters[type || ContentType.Json]; const responseFormat = format || requestParams.format; return this.customFetch(`${baseUrl || this.baseUrl || ""}${path}${queryString ? `?${queryString}` : ""}`, { ...requestParams, headers: { ...(requestParams.headers || {}), ...(type && type !== ContentType.FormData ? { "Content-Type": type } : {}), }, signal: (cancelToken ? this.createAbortSignal(cancelToken) : requestParams.signal) || null, body: typeof body === "undefined" || body === null ? null : payloadFormatter(body), }).then(async (response) => { const r = response.clone(); r.data = null; r.error = null; const data = !responseFormat ? r : await response[responseFormat]() .then((data) => { if (r.ok) { r.data = data; } else { r.error = data; } return r; }) .catch((e) => { r.error = e; return r; }); if (cancelToken) { this.abortControllers.delete(cancelToken); } if (!response.ok) throw data; return data; }); }; } exports.HttpClient = HttpClient; class Api extends HttpClient { api = { v3OrdersNewList: (params = {}) => this.request({ path: `/api/v3/orders/new`, method: "GET", secure: true, format: "json", ...params, }), v3OrdersList: (query, params = {}) => this.request({ path: `/api/v3/orders`, method: "GET", query: query, secure: true, format: "json", ...params, }), v3OrdersStatusCreate: (data, params = {}) => this.request({ path: `/api/v3/orders/status`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3SuppliesOrdersReshipmentList: (params = {}) => this.request({ path: `/api/v3/supplies/orders/reshipment`, method: "GET", secure: true, format: "json", ...params, }), v3OrdersCancelPartialUpdate: (orderId, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/cancel`, method: "PATCH", secure: true, ...params, }), v3OrdersMetaSgtinUpdate: (orderId, data, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta/sgtin`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3OrdersStickersCreate: (query, data, params = {}) => this.request({ path: `/api/v3/orders/stickers`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3OrdersMetaDetail: (orderId, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta`, method: "GET", secure: true, format: "json", ...params, }), v3OrdersMetaDelete: (orderId, query, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta`, method: "DELETE", query: query, secure: true, ...params, }), v3OrdersMetaUinUpdate: (orderId, data, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta/uin`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3OrdersMetaImeiUpdate: (orderId, data, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta/imei`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3OrdersMetaGtinUpdate: (orderId, data, params = {}) => this.request({ path: `/api/v3/orders/${orderId}/meta/gtin`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3FilesOrdersExternalStickersCreate: (data, params = {}) => this.request({ path: `/api/v3/files/orders/external-stickers`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3OrdersStatusHistoryCreate: (data, params = {}) => this.request({ path: `/api/v3/orders/status/history`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3OrdersClientCreate: (data, params = {}) => this.request({ path: `/api/v3/orders/client`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3SuppliesCreate: (data, params = {}) => this.request({ path: `/api/v3/supplies`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3SuppliesList: (query, params = {}) => this.request({ path: `/api/v3/supplies`, method: "GET", query: query, secure: true, format: "json", ...params, }), v3SuppliesOrdersPartialUpdate: (supplyId, orderId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/orders/${orderId}`, method: "PATCH", secure: true, ...params, }), v3SuppliesDetail: (supplyId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}`, method: "GET", secure: true, format: "json", ...params, }), v3SuppliesDelete: (supplyId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}`, method: "DELETE", secure: true, ...params, }), v3SuppliesOrdersDetail: (supplyId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/orders`, method: "GET", secure: true, format: "json", ...params, }), v3SuppliesDeliverPartialUpdate: (supplyId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/deliver`, method: "PATCH", secure: true, ...params, }), v3SuppliesBarcodeDetail: (supplyId, query, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/barcode`, method: "GET", query: query, secure: true, format: "json", ...params, }), v3SuppliesTrbxDetail: (supplyId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx`, method: "GET", secure: true, format: "json", ...params, }), v3SuppliesTrbxCreate: (supplyId, data, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3SuppliesTrbxDelete: (supplyId, data, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx`, method: "DELETE", body: data, secure: true, type: ContentType.Json, ...params, }), v3SuppliesTrbxPartialUpdate: (supplyId, trbxId, data, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx/${trbxId}`, method: "PATCH", body: data, secure: true, type: ContentType.Json, ...params, }), v3SuppliesTrbxOrdersDelete: (supplyId, trbxId, orderId, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx/${trbxId}/orders/${orderId}`, method: "DELETE", secure: true, ...params, }), v3SuppliesTrbxStickersCreate: (supplyId, query, data, params = {}) => this.request({ path: `/api/v3/supplies/${supplyId}/trbx/stickers`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3StocksUpdate: (warehouseId, data, params = {}) => this.request({ path: `/api/v3/stocks/${warehouseId}`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3StocksDelete: (warehouseId, data, params = {}) => this.request({ path: `/api/v3/stocks/${warehouseId}`, method: "DELETE", body: data, secure: true, type: ContentType.Json, ...params, }), v3StocksCreate: (warehouseId, data, params = {}) => this.request({ path: `/api/v3/stocks/${warehouseId}`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3OfficesList: (params = {}) => this.request({ path: `/api/v3/offices`, method: "GET", secure: true, format: "json", ...params, }), v3WarehousesList: (params = {}) => this.request({ path: `/api/v3/warehouses`, method: "GET", secure: true, format: "json", ...params, }), v3WarehousesCreate: (data, params = {}) => this.request({ path: `/api/v3/warehouses`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3WarehousesUpdate: (warehouseId, data, params = {}) => this.request({ path: `/api/v3/warehouses/${warehouseId}`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3WarehousesDelete: (warehouseId, params = {}) => this.request({ path: `/api/v3/warehouses/${warehouseId}`, method: "DELETE", secure: true, ...params, }), v3PassesOfficesList: (params = {}) => this.request({ path: `/api/v3/passes/offices`, method: "GET", secure: true, format: "json", ...params, }), v3PassesList: (params = {}) => this.request({ path: `/api/v3/passes`, method: "GET", secure: true, format: "json", ...params, }), v3PassesCreate: (data, params = {}) => this.request({ path: `/api/v3/passes`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v3PassesUpdate: (passId, data, params = {}) => this.request({ path: `/api/v3/passes/${passId}`, method: "PUT", body: data, secure: true, type: ContentType.Json, ...params, }), v3PassesDelete: (passId, params = {}) => this.request({ path: `/api/v3/passes/${passId}`, method: "DELETE", secure: true, ...params, }), v3OrdersConfirmPartialUpdate: (order, params = {}) => this.request({ path: `/api/v3/orders/${order}/confirm`, method: "PATCH", secure: true, ...params, }), v3OrdersDeliverPartialUpdate: (order, params = {}) => this.request({ path: `/api/v3/orders/${order}/deliver`, method: "PATCH", secure: true, ...params, }), v3OrdersReceivePartialUpdate: (order, data, params = {}) => this.request({ path: `/api/v3/orders/${order}/receive`, method: "PATCH", body: data, secure: true, type: ContentType.Json, ...params, }), v3OrdersRejectPartialUpdate: (order, data, params = {}) => this.request({ path: `/api/v3/orders/${order}/reject`, method: "PATCH", body: data, secure: true, type: ContentType.Json, ...params, }), }; } exports.Api = Api; //# sourceMappingURL=marketplace.js.map