Send mEssage ConsoleLog
parent
7a07327503
commit
a0048ac85f
@ -0,0 +1,52 @@
|
|||||||
|
import amqp from 'amqplib'
|
||||||
|
import dotenv from 'dotenv'
|
||||||
|
import sgMail from '@sendgrid/mail'
|
||||||
|
|
||||||
|
dotenv.config()
|
||||||
|
const queueNota = process.env.QUEUE_NOTA
|
||||||
|
const senderEmail = process.env.SENDER_EMAIL
|
||||||
|
const apiKey = process.env.SENDGRIP_API_KEY
|
||||||
|
sgMail.setApiKey(apiKey)
|
||||||
|
|
||||||
|
amqp.connect(process.env.AMQP_SERVER).then(async conn => {
|
||||||
|
const ch = await conn.createChannel()
|
||||||
|
const queueNotaExist = ch.assertQueue(queueNota, { durable: true })
|
||||||
|
if (queueNotaExist) {
|
||||||
|
queueNotaExist.then(() => {
|
||||||
|
return ch.consume(queueNota, async (msg) => {
|
||||||
|
var messageBody = JSON.parse(msg.content.toString())
|
||||||
|
console.log(`[*NOTA] Message Received! email : ${messageBody.email}`)
|
||||||
|
sendReceipt({
|
||||||
|
email: messageBody.email,
|
||||||
|
subject: messageBody.subject,
|
||||||
|
content: messageBody.content,
|
||||||
|
})
|
||||||
|
}, { noAck: true })
|
||||||
|
}).then(() => {
|
||||||
|
console.log('* Waiting for messages from queue ' + queueNota)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(console.warn)
|
||||||
|
|
||||||
|
function sendReceipt(message) {
|
||||||
|
const now = new Date()
|
||||||
|
const msg = {
|
||||||
|
to: message.email,
|
||||||
|
from: `Amigo Group Indonesia <${senderEmail}>`,
|
||||||
|
subject: message.subject,
|
||||||
|
html: message.content,
|
||||||
|
}
|
||||||
|
// sgMail
|
||||||
|
// .send(msg)
|
||||||
|
// .then((response) => {
|
||||||
|
// if (response[0].statusCode == 202) {
|
||||||
|
// console.log(`Email sent to ${message.email} at ${now}`)
|
||||||
|
// } else {
|
||||||
|
// console.error(`Failed to send email to ${message.email} at ${now}`)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .catch((error) => {
|
||||||
|
// console.error(error)
|
||||||
|
// })
|
||||||
|
console.log(`Email sent to ${message.email} at ${now}`)
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
import amqp from 'amqplib'
|
||||||
|
import dotenv from 'dotenv'
|
||||||
|
import sgMail from '@sendgrid/mail'
|
||||||
|
|
||||||
|
dotenv.config()
|
||||||
|
const queuePaylater = process.env.QUEUE_PAYLATER
|
||||||
|
const senderEmail = process.env.SENDER_EMAIL
|
||||||
|
const apiKey = process.env.SENDGRIP_API_KEY
|
||||||
|
sgMail.setApiKey(apiKey)
|
||||||
|
|
||||||
|
amqp.connect(process.env.AMQP_SERVER).then(async conn => {
|
||||||
|
const ch = await conn.createChannel()
|
||||||
|
const queuePaylaterExist = ch.assertQueue(queuePaylater, { durable: true });
|
||||||
|
if (queuePaylaterExist) {
|
||||||
|
queuePaylaterExist.then(() => {
|
||||||
|
return ch.consume(queuePaylater, async (msg) => {
|
||||||
|
var messageBody = JSON.parse(msg.content.toString())
|
||||||
|
console.log(`[*PayLater] Message Received! email : ${messageBody.email}`)
|
||||||
|
sendReceipt({
|
||||||
|
email: messageBody.email,
|
||||||
|
subject: messageBody.subject,
|
||||||
|
content: messageBody.content,
|
||||||
|
})
|
||||||
|
}, { noAck: true })
|
||||||
|
}).then(() => {
|
||||||
|
console.log('* Waiting for messages from queue ' + queuePaylater)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).catch(console.warn)
|
||||||
|
|
||||||
|
function sendReceipt(message) {
|
||||||
|
const now = new Date()
|
||||||
|
const msg = {
|
||||||
|
to: message.email,
|
||||||
|
from: `Amigo Group Indonesia <${senderEmail}>`,
|
||||||
|
subject: message.subject,
|
||||||
|
html: message.content,
|
||||||
|
}
|
||||||
|
// sgMail
|
||||||
|
// .send(msg)
|
||||||
|
// .then((response) => {
|
||||||
|
// if (response[0].statusCode == 202) {
|
||||||
|
// console.log(`Email sent to ${message.email} at ${now}`)
|
||||||
|
// } else {
|
||||||
|
// console.error(`Failed to send email to ${message.email} at ${now}`)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .catch((error) => {
|
||||||
|
// console.error(error)
|
||||||
|
// })
|
||||||
|
console.log(`Email sent to ${message.email} at ${now}`)
|
||||||
|
}
|
||||||
@ -1,80 +0,0 @@
|
|||||||
import express from 'express'
|
|
||||||
import cors from 'cors'
|
|
||||||
import bodyParser from 'body-parser'
|
|
||||||
import amqp from 'amqplib'
|
|
||||||
import dotenv from 'dotenv'
|
|
||||||
import sgMail from '@sendgrid/mail'
|
|
||||||
|
|
||||||
dotenv.config()
|
|
||||||
|
|
||||||
const app = express()
|
|
||||||
const queuePaylater = process.env.QUEUE_PAYLATER
|
|
||||||
const queueNota = process.env.QUEUE_NOTA
|
|
||||||
const senderEmail = process.env.SENDER_EMAIL
|
|
||||||
const apiKey = process.env.SENDGRIP_API_KEY
|
|
||||||
sgMail.setApiKey(apiKey)
|
|
||||||
|
|
||||||
app.use(cors())
|
|
||||||
app.use(bodyParser.json())
|
|
||||||
|
|
||||||
app.get('/', (_req, res) => {
|
|
||||||
res.status.send(200).send("Amigo Receipt Sender Service Homepage!")
|
|
||||||
})
|
|
||||||
|
|
||||||
amqp.connect(process.env.AMQP_SERVER).then(async conn => {
|
|
||||||
const ch = await conn.createChannel()
|
|
||||||
const queuePaylaterExist = ch.assertQueue(queuePaylater, { durable: true });
|
|
||||||
const queueNotaExist = ch.assertQueue(queueNota, { durable: true })
|
|
||||||
if (queueNotaExist) {
|
|
||||||
queueNotaExist.then(() => {
|
|
||||||
return ch.consume(queueNota, async (msg) => {
|
|
||||||
var messageBody = JSON.parse(msg.content.toString())
|
|
||||||
console.log(`[*NOTA] Message Received! email : ${messageBody.email}`)
|
|
||||||
sendReceipt({
|
|
||||||
email: messageBody.email,
|
|
||||||
subject: messageBody.subject,
|
|
||||||
content: messageBody.content,
|
|
||||||
})
|
|
||||||
}, { noAck: true })
|
|
||||||
}).then(() => {
|
|
||||||
console.log('* Waiting for messages from queue ' + queueNota)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (queuePaylaterExist) {
|
|
||||||
queuePaylaterExist.then(() => {
|
|
||||||
return ch.consume(queuePaylater, async (msg) => {
|
|
||||||
var messageBody = JSON.parse(msg.content.toString())
|
|
||||||
console.log(`[*PayLater] Message Received! email : ${messageBody.email}`)
|
|
||||||
sendReceipt({
|
|
||||||
email: messageBody.email,
|
|
||||||
subject: messageBody.subject,
|
|
||||||
content: messageBody.content,
|
|
||||||
})
|
|
||||||
}, { noAck: true })
|
|
||||||
}).then(() => {
|
|
||||||
console.log('* Waiting for messages from queue ' + queuePaylater)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(console.warn)
|
|
||||||
|
|
||||||
function sendReceipt(message) {
|
|
||||||
const now = new Date()
|
|
||||||
const msg = {
|
|
||||||
to: message.email,
|
|
||||||
from: senderEmail,
|
|
||||||
subject: message.subject,
|
|
||||||
html: message.content,
|
|
||||||
}
|
|
||||||
sgMail
|
|
||||||
.send(msg)
|
|
||||||
.then((response) => {
|
|
||||||
if (response[0].statusCode == 202) {
|
|
||||||
console.log(`Email sent to ${message.email} at ${now}`)
|
|
||||||
} else {
|
|
||||||
console.error(`Failed to send email to ${message.email} at ${now}`)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
console.error(error)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue