import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys'; import { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp'; import { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths'; import { EventDefinition, HttpClient } from '@wix/sdk-types'; import { ListTagsResponse, ListTagsResponseNonNullableFields, Tag, TagCreatedEnvelope, TagDeletedEnvelope, TagNonNullableFields, TagUpdatedEnvelope, UpdateTag, createTag as universalCreateTag, deleteTag as universalDeleteTag, getTag as universalGetTag, listTags as universalListTags, updateTag as universalUpdateTag, } from './os-tags-v1-tag-tags.universal'; export const __metadata = { PACKAGE_NAME: '@wix/tags' }; export function createTag(httpClient: HttpClient): CreateTagSignature { return (tag: Tag) => universalCreateTag( tag, // @ts-ignore { httpClient } ); } interface CreateTagSignature { /** * Creates a tag. * @param - The tag to be created. * @returns The created tag. */ (tag: Tag): Promise; } export function getTag(httpClient: HttpClient): GetTagSignature { return (tagId: string) => universalGetTag( tagId, // @ts-ignore { httpClient } ); } interface GetTagSignature { /** * Retrieves a tag. * @param - The ID of the tag to retrieve. * @returns The requested tag. */ (tagId: string): Promise; } export function updateTag(httpClient: HttpClient): UpdateTagSignature { return (_id: string | null, tag: UpdateTag) => universalUpdateTag( _id, tag, // @ts-ignore { httpClient } ); } interface UpdateTagSignature { /** * Updates a tag. * @param - Tag ID. * @returns The updated tag. */ (_id: string | null, tag: UpdateTag): Promise; } export function deleteTag(httpClient: HttpClient): DeleteTagSignature { return (tagId: string) => universalDeleteTag( tagId, // @ts-ignore { httpClient } ); } interface DeleteTagSignature { /** * Deletes a tag. * @param - ID of the tag to delete. */ (tagId: string): Promise; } export function listTags(httpClient: HttpClient): ListTagsSignature { return (fqdn: string) => universalListTags( fqdn, // @ts-ignore { httpClient } ); } interface ListTagsSignature { /** * Retrieves a list of tags. * @param - The Fully Qualified Domain Name (FQDN) to which the tags are associated. Currently supports only eCommerce Orders: `wix.ecom.v1.order`. */ (fqdn: string): Promise; } export const onTagCreated = EventDefinition( 'wix.os.tags.v1.tag_created', true, (event: TagCreatedEnvelope) => renameKeysFromRESTResponseToSDKResponse( transformPaths(event, [ { transformFn: transformRESTTimestampToSDKTimestamp, paths: [ { path: 'entity.createdDate' }, { path: 'entity.updatedDate' }, { path: 'metadata.eventTime' }, ], }, ]) ) )(); export const onTagDeleted = EventDefinition( 'wix.os.tags.v1.tag_deleted', true, (event: TagDeletedEnvelope) => renameKeysFromRESTResponseToSDKResponse( transformPaths(event, [ { transformFn: transformRESTTimestampToSDKTimestamp, paths: [ { path: 'entity.createdDate' }, { path: 'entity.updatedDate' }, { path: 'metadata.eventTime' }, ], }, ]) ) )(); export const onTagUpdated = EventDefinition( 'wix.os.tags.v1.tag_updated', true, (event: TagUpdatedEnvelope) => renameKeysFromRESTResponseToSDKResponse( transformPaths(event, [ { transformFn: transformRESTTimestampToSDKTimestamp, paths: [ { path: 'entity.createdDate' }, { path: 'entity.updatedDate' }, { path: 'metadata.eventTime' }, ], }, ]) ) )(); export { ActionEvent, BaseEventMetadata, CreateTagForAccountRequest, CreateTagForAccountResponse, CreateTagRequest, CreateTagResponse, CreateTagResponseNonNullableFields, DeleteTagForAccountRequest, DeleteTagForAccountResponse, DeleteTagRequest, DeleteTagResponse, DomainEvent, DomainEventBodyOneOf, EntityCreatedEvent, EntityDeletedEvent, EntityUpdatedEvent, EventMetadata, GetTagForAccountRequest, GetTagForAccountResponse, GetTagRequest, GetTagResponse, GetTagResponseNonNullableFields, IdentificationData, IdentificationDataIdOneOf, ListTagsForAccountRequest, ListTagsForAccountResponse, ListTagsRequest, ListTagsResponse, ListTagsResponseNonNullableFields, MessageEnvelope, RestoreInfo, Tag, TagCreatedEnvelope, TagDeletedEnvelope, TagExposure, TagNonNullableFields, TagUpdatedEnvelope, UpdateTag, UpdateTagForAccountRequest, UpdateTagForAccountResponse, UpdateTagRequest, UpdateTagResponse, UpdateTagResponseNonNullableFields, WebhookIdentityType, } from './os-tags-v1-tag-tags.universal';