UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

84 lines (66 loc) 1.86 kB
/* @flow */ import { SingleSpaceInput, SpacesResponse, ModulesInject, } from '../../flow_interfaces'; import operationConstants from '../../constants/operations'; import utils from '../../utils'; export function getOperation(): string { return operationConstants.PNGetSpaceOperation; } export function validateParams(modules: ModulesInject, incomingParams: SingleSpaceInput) { let { spaceId } = incomingParams; if (!spaceId) return 'Missing spaceId'; } export function getURL( modules: ModulesInject, incomingParams: SingleSpaceInput ): string { let { config } = modules; return `/v1/objects/${config.subscribeKey}/spaces/${utils.encodeString(incomingParams.spaceId)}`; } export function getRequestTimeout({ config }: ModulesInject) { return config.getTransactionTimeout(); } export function isAuthSupported() { return true; } export function getAuthToken(modules: ModulesInject, incomingParams: SingleSpaceInput): string { let token = modules.tokenManager.getToken('space', incomingParams.spaceId) || modules.tokenManager.getToken('space'); return token; } export function prepareParams( modules: ModulesInject, incomingParams: SingleSpaceInput ): Object { let { include } = incomingParams; const params = {}; // default to include custom fields in response if (!include) { include = { customFields: true }; } else if (include.customFields === undefined) { include.customFields = true; } if (include) { let includes = []; if (include.customFields) { includes.push('custom'); } let includesString = includes.join(','); if (includesString.length > 0) { params.include = includesString; } } return params; } export function handleResponse( modules: ModulesInject, spacesResponse: Object ): SpacesResponse { return spacesResponse; }