diff --git a/src/lib/api/CommercetoolsApi.ts b/src/lib/api/CommercetoolsApi.ts index 49ee0c38a..cba164083 100644 --- a/src/lib/api/CommercetoolsApi.ts +++ b/src/lib/api/CommercetoolsApi.ts @@ -11,6 +11,7 @@ import { RecurringOrderDraft, RecurringOrderPagedQueryResponse, RecurringOrderUpdateAction, + StateUpdate, } from '../index.js' import { CommercetoolsError } from '../error/index.js' import { REGION_URLS } from '../auth/constants.js' @@ -2735,6 +2736,36 @@ export class CommercetoolsApi { }) } + /** + * Update a state by id + * https://docs.commercetools.com/api/projects/states#update-state-by-id + */ + updateStateById(options: CommonRequestOptions & { id: string; data: StateUpdate }): Promise { + ensureNonEmptyString({ value: options.id, name: 'id' }) + + return this.request({ + ...this.extractCommonRequestOptions(options), + path: `/states/${encodeURIComponent(options.id)}`, + method: 'POST', + data: options.data, + }) + } + + /** + * Update a state by key + * https://docs.commercetools.com/api/projects/states#update-state-by-key + */ + updateStateByKey(options: CommonRequestOptions & { key: string; data: StateUpdate }): Promise { + ensureNonEmptyString({ value: options.key, name: 'key' }) + + return this.request({ + ...this.extractCommonRequestOptions(options), + path: `/states/key=${encodeURIComponent(options.key)}`, + method: 'POST', + data: options.data, + }) + } + /** * Delete a state by id * https://docs.commercetools.com/api/projects/states#delete-state-by-id