Skip to content

Commit

Permalink
--add: logging to wisher service
Browse files Browse the repository at this point in the history
  • Loading branch information
ritiksr25 committed May 24, 2021
1 parent 2d03632 commit 23fc2f0
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 51 deletions.
3 changes: 1 addition & 2 deletions services/emailService.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ let {
EMAIL_SENDER,
WISH_MAIL_SUBJECT
} = require("../config/index");
const { logger, toTitleCase } = require("../utility/helpers");
const { toTitleCase } = require("../utility/helpers");
const { generateMailHtml } = require("../utility/emailTemplate");

const transporter = nodemailer.createTransport({
Expand Down Expand Up @@ -48,7 +48,6 @@ module.exports.sendWishMail = async data => {
try {
await transporter.sendMail(mailOptions);
} catch (err) {
logger("error", "emailService", err);
throw err;
}
};
63 changes: 38 additions & 25 deletions services/wisher.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,51 @@ const {
} = require("../config/index");
const { sendWishMail } = require("./emailService");
const { generateImage } = require("../utility/generateWishImage");
const { toTitleCase } = require("../utility/helpers");
const { toTitleCase, logger } = require("../utility/helpers");

const time = "0 0 * * *"; // everyday 0:0:0
const scheduled = true,
timezone = "Asia/Kolkata";

const tickFunction = async () => {
let res = await axios.get(GET_BIRTHDAYS_PROCESS_API, {
headers: {
"x-access-token": GET_BIRTHDAYS_PROCESS_SECRET
}
});

if (!res || !res.data || res.data.message !== "success") {
console.log("Something went wrong!!");
return;
}

const wishes = res.data.data;
console.log("Running cron task!!");
let promises = [];

wishes.map(async wish => {
let buffer = await generateImage(
toTitleCase(String(wish.name).trim().split(" ")[0]),
wish.image,
wish._id
console.log(`Running cron task for ${new Date().toDateString()}`);
try {
const res = await axios.get(GET_BIRTHDAYS_PROCESS_API, {
headers: {
"x-access-token": GET_BIRTHDAYS_PROCESS_SECRET
}
});
const wishes = res.data.data;
wishes.map(async wish => {
let buffer = await generateImage(
toTitleCase(String(wish.name).trim().split(" ")[0]),
wish.image,
wish._id
);
wish.content = buffer;
await sendWishMail(wish);
console.log(
`Sent wishes to ${wish.name} <${wish.email}> with uid ${wish._id}`
);
logger("info", "wishes", {
id: wish._id,
name: wish.name,
email: wish.email
});
});
} catch (err) {
console.log(err);
logger(
"error",
"error",
{
message: err.message,
status: err.status || 500,
stack: err.stack
},
err
);
wish.content = buffer;
await sendWishMail(wish);
});
await Promise.all(promises);
}
};

cron.schedule(time, tickFunction, { scheduled, timezone });
48 changes: 24 additions & 24 deletions utility/helpers.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
const { OK } = require("./statusCodes");
const log4js = require("log4js");

log4js.configure({
appenders: {
app: {
type: "file",
filename: "logs/app.log",
maxLogSize: 10485760
},
errorFile: {
type: "file",
filename: "logs/errors.log"
},
errors: {
type: "logLevelFilter",
level: "ERROR",
appender: "errorFile"
}
server: { type: "file", filename: "logs/server.log" },
wishes: { type: "file", filename: "logs/wishes.log" },
error: { type: "file", filename: "logs/error.log" }
},
categories: {
default: { appenders: ["app", "errors"], level: "DEBUG" }
server: { appenders: ["server"], level: "DEBUG" },
wishes: { appenders: ["wishes"], level: "DEBUG" },
error: { appenders: ["error"], level: "DEBUG" },
default: { appenders: ["server"], level: "DEBUG" }
}
});
let logger = log4js.getLogger();
logger.level = "debug";

module.exports.logger = (type, funcName, message) => {
logger = log4js.getLogger(`Logs from ${funcName} function`);
module.exports.logger = (type, category, logObject, err) => {
logger = log4js.getLogger(category);
if (type === "error") logger.error(logObject);
else if (type === "fatal") logger.fatal(logObject);
else if (type === "info") logger.info(logObject);
else if (type === "warn") logger.warn(logObject);
else if (type === "debug") logger.debug(logObject);
else if (type === "trace") logger.trace(logObject);
};

if (type === "error") logger.error(message);
else if (type === "fatal") logger.fatal(message);
else if (type === "info") logger.info(message);
else if (type === "warn") logger.warn(message);
else if (type === "debug") logger.debug(message);
else if (type === "trace") logger.trace(message);
module.exports.toTitleCase = str => {
return str
.toLowerCase()
.split(" ")
.map(word => {
return word.charAt(0).toUpperCase() + word.slice(1);
})
.join(" ");
};

0 comments on commit 23fc2f0

Please sign in to comment.