UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

63 lines (53 loc) 1.64 kB
/** * Remove UUID Metadata REST API module. * * @internal */ import { TransportMethod } from '../../../types/transport-request'; import { AbstractRequest } from '../../../components/request'; import RequestOperation from '../../../constants/operations'; import * as AppContext from '../../../types/api/app-context'; import { KeySet } from '../../../types/api'; import { encodeString } from '../../../utils'; // -------------------------------------------------------- // ------------------------ Types ------------------------- // -------------------------------------------------------- // region Types /** * Request configuration parameters. */ type RequestParameters = AppContext.RemoveUUIDMetadataParameters & { /** * PubNub REST API access key set. */ keySet: KeySet; }; // endregion /** * Remove UUID Metadata request. * * @internal */ export class RemoveUUIDMetadataRequest<Response extends AppContext.RemoveUUIDMetadataResponse> extends AbstractRequest< Response, Response > { constructor(private readonly parameters: RequestParameters) { super({ method: TransportMethod.DELETE }); // Remap for backward compatibility. if (this.parameters.userId) this.parameters.uuid = this.parameters.userId; } operation(): RequestOperation { return RequestOperation.PNRemoveUUIDMetadataOperation; } validate(): string | undefined { if (!this.parameters.uuid) return "'uuid' cannot be empty"; } protected get path(): string { const { keySet: { subscribeKey }, uuid, } = this.parameters; return `/v2/objects/${subscribeKey}/uuids/${encodeString(uuid!)}`; } }