const axios = require('axios') const config = require('../../config') const commands = require('./commands') const client = axios.create({ baseURL: 'https://api.line.me/v2/bot', headers: { Authorization: `Bearer ${config.line.access}` } }) const pushMessage = async (target, message = '') => { if (typeof target !== 'string' || target.trim().length === 0) return if (typeof message !== 'string' || message.trim().length === 0) return let data = { to: target, messages: [ { type: 'text', text: message } ] } let opts = { method: 'post', url: '/message/push', data } await client(opts) } const textMessage = async (evt) => { let url = '/message/reply' let {replyToken, source, message} = evt if (!source || !('type' in source) || source.type !== 'group') return if (!message || message.type !== 'text') return let {text} = message if (typeof text !== 'string') return text = text.trim() if (text.length === 0) return let result = await commands(text, source) if (result === null) return if (typeof result === 'object' && 'reply' in result) { let opts = { method: 'post', url, data: { replyToken, messages: [ { type: 'text', text: result.reply } ] } } await client(opts) } } module.exports = { textMessage, pushMessage }