Lamda múltiplos API Calss
async function generateToken(req) {
// try {
// throw new Error("custom erorr created");
// const { channelName, uID, isPublisher } = req;
// const role = isPublisher ? Agora.RtcRole.PUBLISHER : Agora.RtcRole.SUBSCRIBER;
// const currentTimestamp = Math.floor(Date.now() / 1000);
// const expirationTimestamp = currentTimestamp + config.TOKEN_EXPIRY;
// const token = await Agora.RtcTokenBuilder.buildTokenWithUid(config.APP_ID, config.APP_CERT, channelName, uID, role, expirationTimestamp);
// const data = { token };
// return data
// } catch (err) {
// console.log("error in generate-token catch: ");
// console.log(err);
// const payload = {
// to: "[email protected]",
// from:"[email protected]",
// subject:"Custom Agora API Erorr",
// text: JSON.stringify(req)
// };
// email.sendEmail(payload)
// return helper.getStandardResponse(500, false, "Token error", req);
// }
// const promise = new Promise(function(resolve, reject) {
// console.log("req : ", req)
// throw new Error("returning custom error")
// const { channelName, uID, isPublisher } = req;
// const role = isPublisher ? Agora.RtcRole.PUBLISHER : Agora.RtcRole.SUBSCRIBER;
// const currentTimestamp = Math.floor(Date.now() / 1000);
// const expirationTimestamp = currentTimestamp + config.TOKEN_EXPIRY;
// const token = Agora.RtcTokenBuilder.buildTokenWithUid(config.APP_ID, config.APP_CERT, channelName, uID, role, expirationTimestamp);
// const data = {
// token
// };
// return data;
// });
// promise.then((data) => {
// console.log(data);
// return data;
// // helper.getStandardResponse(200, true, "Token Success", data);
// }).catch(async(error) => {
// console.log('email call');
// console.log('email call erorr', error);
// try {
// let payload = {
// to: "[email protected]",
// from: "[email protected]",
// subject: "custom Agora API Erorr",
// text: JSON.stringify(req)
// };
// let resp = await sendEmail(payload);
// console.log('send email resp:', resp);
// }
// catch (e) {
// console.log("Nested Try catch erorr", e);
// }
// //return error;
// });
try {
throw new Error("returning custom error");
const { channelName, uID, isPublisher } = req;
const role = isPublisher ? Agora.RtcRole.PUBLISHER : Agora.RtcRole.SUBSCRIBER;
const currentTimestamp = Math.floor(Date.now() / 1000);
const expirationTimestamp = currentTimestamp + config.TOKEN_EXPIRY;
const token = await Agora.RtcTokenBuilder.buildTokenWithUid(config.APP_ID, config.APP_CERT, channelName, uID, role, expirationTimestamp);
const data = {
token
};
return data;
} catch (e) {
try {
let payload = {
to: "[email protected]",
from: "[email protected]",
subject: "custom Agora API Erorr",
text: JSON.stringify(req)
};
let resp = await sendEmail(payload);
console.log('send email resp:', resp);
}
catch (e) {
console.log("Nested Try catch erorr", e);
}
}
}
async function sendEmail(payload) {
try {
sgMail.setApiKey(config.SENDGRID_API_KEY)
const msg = {
to: payload.to, // Change to your recipient
from: payload.from, // Change to your verified sender
subject: payload.subject, // 'Sending with SendGrid is Fun',
text: payload.text // 'and easy to do anywhere, even with Node.js'
}
const data = await sgMail.send(msg);
console.log("send grid response data : ", data)
return data;
}
catch (e) {
console.log("2nd nested try catch: ", e)
}
};
Aamir Farooq