UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

73 lines (58 loc) 1.86 kB
/* @flow */ import { AddMessageActionInput, AddMessageActionResponse, ModulesInject, } from '../../flow_interfaces'; import operationConstants from '../../constants/operations'; import utils from '../../utils'; export function getOperation(): string { return operationConstants.PNAddMessageActionOperation; } export function validateParams( { config }: ModulesInject, incomingParams: AddMessageActionInput ) { let { action, channel, messageTimetoken } = incomingParams; if (!messageTimetoken) return 'Missing message timetoken'; if (!config.subscribeKey) return 'Missing Subscribe Key'; if (!channel) return 'Missing message channel'; if (!action) return 'Missing Action'; if (!action.value) return 'Missing Action.value'; if (!action.type) return 'Missing Action.type'; if (action.type.length > 15) return 'Action.type value exceed maximum length of 15'; } export function usePost() { return true; } export function postURL( { config }: ModulesInject, incomingParams: AddMessageActionInput ): string { let { channel, messageTimetoken } = incomingParams; return `/v1/message-actions/${config.subscribeKey}/channel/${utils.encodeString(channel)}/message/${messageTimetoken}`; } export function getRequestTimeout({ config }: ModulesInject) { return config.getTransactionTimeout(); } export function getRequestHeaders(): Object { return { 'Content-Type': 'application/json' }; } export function isAuthSupported() { return true; } export function prepareParams(): Object { return {}; } export function postPayload( modules: ModulesInject, incomingParams: AddMessageActionInput ): string { return incomingParams.action; } export function handleResponse( modules: ModulesInject, addMessageActionResponse: Object ): AddMessageActionResponse { return { data: addMessageActionResponse.data }; }