UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

54 lines (39 loc) 1.36 kB
/** @flow */ import type { EndpointConfig } from '../../endpoint'; import operationConstants from '../../../constants/operations'; import type { UUIDMetadata } from './uuid'; import utils from '../../../utils'; export type SetUUIDMetadataParams = {| uuid?: string, include?: {| customFields: ?boolean, |}, data: $Shape<UUIDMetadata>, |}; export type SetUUIDMetadataResult = {| status: 200, data: UUIDMetadata, |}; const endpoint: EndpointConfig<SetUUIDMetadataParams, SetUUIDMetadataResult> = { getOperation: () => operationConstants.PNSetUUIDMetadataOperation, validateParams: (_, params) => { if (!params?.data) { return 'Data cannot be empty'; } }, usePatch: () => true, patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${utils.encodeString(params.uuid ?? config.getUUID())}`, patchPayload: (_, params) => params.data, getRequestTimeout: ({ config }) => config.getTransactionTimeout(), isAuthSupported: () => true, getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'), prepareParams: ({ config }, params) => ({ uuid: params?.uuid ?? config.getUUID(), include: (params?.include?.customFields ?? true) && 'custom', }), handleResponse: (_, response) => ({ status: response.status, data: response.data, }), }; export default endpoint;