const checkChannelAvailability = require('./checkChannelAvailability.js'); const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js'); const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); /* route to check whether site has published to a channel */ function addAtSymbolIfNecessary (name) { if (name.substring(0, 1) !== '@') { return `@${name}`; } return name; } const channelAvailability = ({ ip, originalUrl, params: { name } }, res) => { const gaStartTime = Date.now(); name = addAtSymbolIfNecessary(name); checkChannelAvailability(name) .then(isAvailable => { let responseObject = { success: true, data : isAvailable, }; if (isAvailable) { responseObject['message'] = `${name} is available`; } else { responseObject['message'] = `${name} is already in use`; } res.status(200).json(responseObject); sendGATimingEvent('end-to-end', 'channel name availability', name, gaStartTime, Date.now()); }) .catch(error => { handleErrorResponse(originalUrl, ip, error, res); }); }; module.exports = channelAvailability;