spee.ch/server/controllers/api/channel/availability/index.js

41 lines
1.1 KiB
JavaScript
Raw Normal View History

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