UNPKG

wildberries-api

Version:

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

491 lines 16.6 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 { adv = { v1SaveAdCreate: (data, params = {}) => this.request({ path: `/adv/v1/save-ad`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v2SeacatSaveAdCreate: (data, params = {}) => this.request({ path: `/adv/v2/seacat/save-ad`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v0DeleteList: (query, params = {}) => this.request({ path: `/adv/v0/delete`, method: "GET", query: query, secure: true, ...params, }), v0RenameCreate: (data, params = {}) => this.request({ path: `/adv/v0/rename`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1PromotionCountList: (params = {}) => this.request({ path: `/adv/v1/promotion/count`, method: "GET", secure: true, format: "json", ...params, }), v1PromotionAdvertsCreate: (data, query, params = {}) => this.request({ path: `/adv/v1/promotion/adverts`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v0CpmCreate: (data, params = {}) => this.request({ path: `/adv/v0/cpm`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1AdvertStopCreate: (data, params = {}) => this.request({ path: `/adv/v1/advert/stop`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1AdvertPauseCreate: (data, params = {}) => this.request({ path: `/adv/v1/advert/pause`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1AdvertStartCreate: (data, params = {}) => this.request({ path: `/adv/v1/advert/start`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1ItemCpmChangeCreate: (data, params = {}) => this.request({ path: `/adv/v1/item/cpm/change`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), v1CountList: (params = {}) => this.request({ path: `/adv/v1/count`, method: "GET", secure: true, format: "json", ...params, }), v1AdvertsList: (query, params = {}) => this.request({ path: `/adv/v1/adverts`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1AdvertList: (query, params = {}) => this.request({ path: `/adv/v1/advert`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1StatsCreate: (data, params = {}) => this.request({ path: `/adv/v1/stats`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v0StartList: (query, params = {}) => this.request({ path: `/adv/v0/start`, method: "GET", query: query, secure: true, ...params, }), v0PauseList: (query, params = {}) => this.request({ path: `/adv/v0/pause`, method: "GET", query: query, secure: true, ...params, }), v0StopList: (query, params = {}) => this.request({ path: `/adv/v0/stop`, method: "GET", query: query, secure: true, ...params, }), v1BalanceList: (params = {}) => this.request({ path: `/adv/v1/balance`, method: "GET", secure: true, format: "json", ...params, }), v1BudgetList: (query, params = {}) => this.request({ path: `/adv/v1/budget`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1BudgetDepositCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/budget/deposit`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v1UpdList: (query, params = {}) => this.request({ path: `/adv/v1/upd`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1PaymentsList: (query, params = {}) => this.request({ path: `/adv/v1/payments`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1SupplierSubjectsList: (params = {}) => this.request({ path: `/adv/v1/supplier/subjects`, method: "GET", secure: true, format: "json", ...params, }), v2SupplierNmsCreate: (data, params = {}) => this.request({ path: `/adv/v2/supplier/nms`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v2FullstatsCreate: (data, params = {}) => this.request({ path: `/adv/v2/fullstats`, method: "POST", body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v1AutoStatList: (query, params = {}) => this.request({ path: `/adv/v1/auto/stat`, method: "GET", query: query, secure: true, format: "json", ...params, }), v2AutoStatWordsList: (query, params = {}) => this.request({ path: `/adv/v2/auto/stat-words`, method: "GET", query: query, secure: true, format: "json", ...params, }), v2AutoDailyWordsList: (query, params = {}) => this.request({ path: `/adv/v2/auto/daily-words`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1StatWordsList: (query, params = {}) => this.request({ path: `/adv/v1/stat/words`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1SeacatStatList: (query, params = {}) => this.request({ path: `/adv/v1/seacat/stat`, method: "GET", query: query, secure: true, format: "json", ...params, }), v0StatsKeywordsList: (query, params = {}) => this.request({ path: `/adv/v0/stats/keywords`, method: "GET", query: query, secure: true, format: "json", ...params, }), v0ActiveList: (query, params = {}) => this.request({ path: `/adv/v0/active`, method: "GET", query: query, secure: true, ...params, }), v1SearchSetPlusList: (query, params = {}) => this.request({ path: `/adv/v1/search/set-plus`, method: "GET", query: query, secure: true, ...params, }), v1SearchSetPlusCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/search/set-plus`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, format: "json", ...params, }), v1SearchSetPhraseCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/search/set-phrase`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), v1SearchSetStrongCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/search/set-strong`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), v1SearchSetExcludedCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/search/set-excluded`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), v1AutoGetnmtoaddList: (query, params = {}) => this.request({ path: `/adv/v1/auto/getnmtoadd`, method: "GET", query: query, secure: true, format: "json", ...params, }), v1AutoUpdatenmCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/auto/updatenm`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), v1AutoActiveCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/auto/active`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), v1AutoSetExcludedCreate: (query, data, params = {}) => this.request({ path: `/adv/v1/auto/set-excluded`, method: "POST", query: query, body: data, secure: true, type: ContentType.Json, ...params, }), }; } exports.Api = Api; //# sourceMappingURL=promotion.js.map