UNPKG

pubnub

Version:

Publish & Subscribe Real-time Messaging with PubNub

44 lines (31 loc) 1.22 kB
/** @flow */ import type { EndpointConfig } from '../endpoint'; import operationConstants from '../../constants/operations'; import type { GenerateUploadUrlParams, GenerateUploadUrlResult } from './types'; import utils from '../../utils'; const endpoint: EndpointConfig<GenerateUploadUrlParams, GenerateUploadUrlResult> = { getOperation: () => operationConstants.PNGenerateUploadUrlOperation, validateParams: (_, params) => { if (!params?.channel) { return 'channel can\'t be empty'; } if (!params?.name) { return 'name can\'t be empty'; } }, usePost: () => true, postURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${utils.encodeString(params.channel)}/generate-upload-url`, postPayload: (_, params) => ({ name: params.name }), getRequestTimeout: ({ config }) => config.getTransactionTimeout(), isAuthSupported: () => true, getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), prepareParams: () => ({}), handleResponse: (_, response): GenerateUploadUrlResult => ({ status: response.status, data: response.data, file_upload_request: response.file_upload_request, }), }; export default endpoint;