const Slack = require('slack'); const msg = Slack.chat.postMessage; /** * sends a new listing to slack * @param serviceName e.g immoscout * @param newListings an array with newly found listings * @param notificationConfig config of this notification adapter * * @param jobKey name of the current job that is being executed * @returns {Promise | void} */ exports.send = (serviceName, newListings, notificationConfig, jobKey) => { const { token, channel, enabled } = notificationConfig.slack; if (!enabled) { return [Promise.resolve()]; } return newListings.map((payload) => msg({ token, channel, text: `*(${serviceName} - ${jobKey})* - ${payload.title}`, attachments: [ { fallback: payload.title, color: '#36a64f', title: 'Link to Exposé', title_link: payload.link, fields: [ { title: 'Price', value: payload.price, short: false, }, { title: 'Size', value: payload.size, short: false, }, { title: 'Address', value: payload.address, short: false, }, ], footer: 'Powered by Fredy', ts: new Date().getTime() / 1000, }, ], }) ); };