Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions src/wrapper/AssetsClient.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Assets } from "../api/resources/assets/client/Client";
import { AssetsClient } from "../api/resources/assets/client/Client";
import { Client as Utilities } from "./AssetsUtilitiesClient";
import * as Webflow from "../api/index";
import * as core from "../core";
Expand All @@ -17,8 +17,8 @@ declare module "../api/resources/assets/client/Client" {
}
}

export class Client extends Assets {
constructor(protected readonly _options: Assets.Options) {
export class Client extends AssetsClient {
constructor(_options: AssetsClient.Options) {
super(_options);
}
// IMPORTANT: Need to keep function overload signatures for the list() API for backwards compatibility.
Expand All @@ -33,9 +33,9 @@ export class Client extends Assets {
* Required scope | `assets:read`
*
* @param {string} siteId - Unique identifier for a Site
* @param {Assets.RequestOptions} requestOptions - Request-specific configuration.
* @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
*/
public list(siteId: string, requestOptions?: Assets.RequestOptions): core.HttpResponsePromise<Webflow.Assets>;
public list(siteId: string, requestOptions?: AssetsClient.RequestOptions): core.HttpResponsePromise<Webflow.Assets>;

/**
* List of assets uploaded to a site
Expand All @@ -44,18 +44,18 @@ export class Client extends Assets {
*
* @param {string} siteId - Unique identifier for a Site
* @param {Webflow.AssetsListRequest} request
* @param {Assets.RequestOptions} requestOptions - Request-specific configuration.
* @param {AssetsClient.RequestOptions} requestOptions - Request-specific configuration.
*/
public list(
siteId: string,
request: Webflow.AssetsListRequest,
requestOptions?: Assets.RequestOptions,
requestOptions?: AssetsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.Assets>;

public list(
siteId: string,
requestOrOptions?: Webflow.AssetsListRequest | Assets.RequestOptions,
requestOptions?: Assets.RequestOptions,
requestOrOptions?: Webflow.AssetsListRequest | AssetsClient.RequestOptions,
requestOptions?: AssetsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.Assets> {
// Check if the second parameter is RequestOptions (old API) or AssetsListRequest (new API)
// RequestOptions has properties like timeoutInSeconds, maxRetries, abortSignal, headers
Expand All @@ -64,14 +64,14 @@ export class Client extends Assets {

if (isOldApi) {
// Old 2-parameter API: list(siteId, requestOptions)
return super.list(siteId, {}, requestOrOptions as Assets.RequestOptions);
return super.list(siteId, {}, requestOrOptions as AssetsClient.RequestOptions);
} else {
// New 3-parameter API: list(siteId, request, requestOptions)
return super.list(siteId, requestOrOptions as Webflow.AssetsListRequest, requestOptions);
}
}

private _isRequestOptions(param?: Webflow.AssetsListRequest | Assets.RequestOptions): param is Assets.RequestOptions {
private _isRequestOptions(param?: Webflow.AssetsListRequest | AssetsClient.RequestOptions): param is AssetsClient.RequestOptions {
if (!param) {
return false;
}
Expand Down
8 changes: 4 additions & 4 deletions src/wrapper/AssetsUtilitiesClient.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Webflow from "../api";
import { Assets } from "../api/resources/assets/client/Client";
import { AssetsClient } from "../api/resources/assets/client/Client";
import * as core from "../core";
import * as environments from "../environments";
import crypto from "crypto";
Expand Down Expand Up @@ -42,8 +42,8 @@ interface TestAssetUploadRequest {
}

// Utilities class for Assets to add custom helper methods to assist in managing Webflow Assets
export class Client extends Assets {
constructor(protected readonly _options: AssetsUtilities.Options) {
export class Client extends AssetsClient {
constructor(_options: AssetsUtilities.Options) {
super(_options);
}

Expand All @@ -70,7 +70,7 @@ export class Client extends Assets {
public async createAndUpload(
siteId: string,
request: TestAssetUploadRequest,
requestOptions?: Assets.RequestOptions
requestOptions?: AssetsClient.RequestOptions
): Promise<Webflow.AssetUpload> {
/** 1. Generate the hash */
const {file, fileName, parentFolder} = request;
Expand Down
8 changes: 4 additions & 4 deletions src/wrapper/CollectionsClient.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { Collections } from "../api/resources/collections/client/Client";
import { CollectionsClient } from "../api/resources/collections/client/Client";
import { Client as Items } from "./ItemsClient";

declare module "../api/resources/collections/client/Client" {
export namespace Collections {}
export namespace CollectionsClient {}
}

// Client adapts the base client to permit extra properties in
// the client.Collections.Items.createItem request.
export class Client extends Collections {
constructor(protected readonly _options: Collections.Options) {
export class Client extends CollectionsClient {
constructor(_options: CollectionsClient.Options) {
super(_options);
}

Expand Down
22 changes: 14 additions & 8 deletions src/wrapper/FormsClient.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Forms } from "../api/resources/forms/client/Client";
import { FormsClient } from "../api/resources/forms/client/Client";
import * as core from "../core";
import * as Webflow from "../api";
import * as environments from "../environments";
Expand All @@ -8,13 +8,13 @@ import { mergeHeaders, mergeOnlyDefinedHeaders } from "../core/headers";


declare module "../api/resources/forms/client/Client" {
export namespace Forms {}
export namespace FormsClient {}
}

// Client adapts the base client to persist a deprecated `listSubmissionsBySite` method.
// Overriding to preserve function and prevent breaking changes.
export class Client extends Forms {
constructor(protected readonly _options: Forms.Options) {
export class Client extends FormsClient {
constructor(_options: FormsClient.Options) {
super(_options);
}

Expand All @@ -28,7 +28,7 @@ export class Client extends Forms {
*
* @param {string} siteId - Unique identifier for a Site
* @param {Webflow.FormsListSubmissionsBySiteRequest} request
* @param {Forms.RequestOptions} requestOptions - Request-specific configuration.
* @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Webflow.BadRequestError}
* @throws {@link Webflow.UnauthorizedError}
Expand All @@ -47,15 +47,15 @@ export class Client extends Forms {
public listSubmissionsBySite(
siteId: string,
request: Webflow.sites.FormsListSubmissionsBySiteRequest = {},
requestOptions?: Forms.RequestOptions,
requestOptions?: FormsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.FormSubmissionList> {
return core.HttpResponsePromise.fromPromise(this.__listSubmissionsBySite(siteId, request, requestOptions));
}

private async __listSubmissionsBySite(
siteId: string,
request: Webflow.sites.FormsListSubmissionsBySiteRequest = {},
requestOptions?: Forms.RequestOptions,
requestOptions?: FormsClient.RequestOptions,
): Promise<core.WithRawResponse<Webflow.FormSubmissionList>> {
const { elementId, offset, limit } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
Expand All @@ -71,11 +71,13 @@ export class Client extends Forms {
_queryParams.limit = limit.toString();
}

const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
_authRequest.headers,
this._options?.headers,
mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),
requestOptions?.headers,
);

const _response = await core.fetcher({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
Expand Down Expand Up @@ -179,5 +181,9 @@ export class Client extends Forms {
rawResponse: _response.rawResponse,
});
}
throw new errors.WebflowError({
message: "Unknown error",
rawResponse: _response.rawResponse,
});
}
}
53 changes: 36 additions & 17 deletions src/wrapper/ItemsClient.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Webflow from "../api";
import { Items } from "../api/resources/collections/resources/items/client/Client";
import { ItemsClient } from "../api/resources/collections/resources/items/client/Client";
import * as core from "../core";
import * as environments from "../environments";
import * as errors from "../errors";
Expand All @@ -9,13 +9,13 @@ import * as SchemaOverrides from "./schemas";


declare module "../api/resources/collections/resources/items/client/Client" {
export namespace Items {}
export namespace ItemsClient {}
}

// Temporary wrapper for backwards compatibility keeping the createItemForMultipleLocales method
// a mirror of the createItems API
export class Client extends Items {
constructor(protected readonly _options: Items.Options) {
export class Client extends ItemsClient {
constructor(_options: ItemsClient.Options) {
super(_options);
}

Expand Down Expand Up @@ -69,25 +69,26 @@ export class Client extends Items {
public createItem(
collectionId: string,
request: SchemaOverrides.ItemsCreateItemRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.CollectionItem> {
return core.HttpResponsePromise.fromPromise(this.__createItemOverride(collectionId, request, requestOptions));
}

private async __createItemOverride(
collectionId: string,
request: SchemaOverrides.ItemsCreateItemRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): Promise<core.WithRawResponse<Webflow.CollectionItem>> {
const { skipInvalidFiles, ..._body } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
if (skipInvalidFiles != null) {
_queryParams.skipInvalidFiles = skipInvalidFiles.toString();
}

const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
_authRequest.headers,
this._options?.headers,
mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),
requestOptions?.headers,
);
const _response = await core.fetcher({
Expand Down Expand Up @@ -198,6 +199,10 @@ export class Client extends Items {
rawResponse: _response.rawResponse,
});
}
throw new errors.WebflowError({
message: "Unknown error",
rawResponse: _response.rawResponse,
});
}

/**
Expand Down Expand Up @@ -230,7 +235,7 @@ export class Client extends Items {
collectionId: string,
itemId: string,
request: SchemaOverrides.ItemsUpdateItemRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.CollectionItem> {
return core.HttpResponsePromise.fromPromise(
this.__updateItemOverride(collectionId, itemId, request, requestOptions),
Expand All @@ -241,17 +246,18 @@ export class Client extends Items {
collectionId: string,
itemId: string,
request: SchemaOverrides.ItemsUpdateItemRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): Promise<core.WithRawResponse<Webflow.CollectionItem>> {
const { skipInvalidFiles, ..._body } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
if (skipInvalidFiles != null) {
_queryParams.skipInvalidFiles = skipInvalidFiles.toString();
}

const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
_authRequest.headers,
this._options?.headers,
mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),
requestOptions?.headers,
);
const _response = await core.fetcher({
Expand Down Expand Up @@ -362,6 +368,10 @@ export class Client extends Items {
rawResponse: _response.rawResponse,
});
}
throw new errors.WebflowError({
message: "Unknown error",
rawResponse: _response.rawResponse,
});
}

/**
Expand Down Expand Up @@ -415,7 +425,7 @@ export class Client extends Items {
public createItemLive(
collectionId: string,
request: SchemaOverrides.ItemsCreateItemLiveRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.CollectionItem> {
return core.HttpResponsePromise.fromPromise(
this.__createItemLiveOverride(collectionId, request, requestOptions),
Expand All @@ -425,17 +435,17 @@ export class Client extends Items {
private async __createItemLiveOverride(
collectionId: string,
request: SchemaOverrides.ItemsCreateItemLiveRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): Promise<core.WithRawResponse<Webflow.CollectionItem>> {
const { skipInvalidFiles, ..._body } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
if (skipInvalidFiles != null) {
_queryParams.skipInvalidFiles = skipInvalidFiles.toString();
}

const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
_authRequest.headers,
this._options?.headers,
mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),
requestOptions?.headers,
);
const _response = await core.fetcher({
Expand Down Expand Up @@ -546,6 +556,10 @@ export class Client extends Items {
rawResponse: _response.rawResponse,
});
}
throw new errors.WebflowError({
message: "Unknown error",
rawResponse: _response.rawResponse,
});
}

/**
Expand Down Expand Up @@ -579,7 +593,7 @@ export class Client extends Items {
collectionId: string,
itemId: string,
request: SchemaOverrides.ItemsUpdateItemLiveRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): core.HttpResponsePromise<Webflow.CollectionItem> {
return core.HttpResponsePromise.fromPromise(
this.__updateItemLiveOverride(collectionId, itemId, request, requestOptions),
Expand All @@ -590,17 +604,18 @@ export class Client extends Items {
collectionId: string,
itemId: string,
request: SchemaOverrides.ItemsUpdateItemLiveRequest,
requestOptions?: Items.RequestOptions,
requestOptions?: ItemsClient.RequestOptions,
): Promise<core.WithRawResponse<Webflow.CollectionItem>> {
const { skipInvalidFiles, ..._body } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
if (skipInvalidFiles != null) {
_queryParams.skipInvalidFiles = skipInvalidFiles.toString();
}

const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
_authRequest.headers,
this._options?.headers,
mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }),
requestOptions?.headers,
);
const _response = await core.fetcher({
Expand Down Expand Up @@ -713,5 +728,9 @@ export class Client extends Items {
rawResponse: _response.rawResponse,
});
}
throw new errors.WebflowError({
message: "Unknown error",
rawResponse: _response.rawResponse,
});
}
}
Loading
Loading