Skip to content

Instantly share code, notes, and snippets.

@hhsecond
Created January 31, 2024 05:52
Show Gist options
  • Save hhsecond/f868d3e0ad464738b4188302d92f66a8 to your computer and use it in GitHub Desktop.
Save hhsecond/f868d3e0ad464738b4188302d92f66a8 to your computer and use it in GitHub Desktop.
Loops client
import LoopsClient from "loops";
function getLoopsClient(): LoopsClient {
if (!process.env.LOOPS_APIKEY) {
throw new Error("Missing LOOPS_APIKEY environment variable");
}
return new LoopsClient(process.env.LOOPS_APIKEY);
}
interface DataVariables {
[key: string]: string;
}
export async function sendTransactionalEmail(
transactionId: string,
newUserEmail: string,
dataVariables: DataVariables
): Promise<void> {
// return immedietly if not in production
if (process.env.NODE_ENV !== "production") {
return;
}
try {
const loops = getLoopsClient();
const txnEmailResp = await loops.sendTransactionalEmail(
transactionId,
newUserEmail,
dataVariables
);
if (txnEmailResp.success === false) {
console.error("Error sending transactional email:", txnEmailResp);
}
} catch (error) {
console.error("An error occurred in sendTransactionalEmail:", error);
}
}
@hhsecond
Copy link
Author

    at Object.fetch (node:internal/deps/undici/undici:11372:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  cause: _ConnectTimeoutError: Connect Timeout Error
      at onConnectTimeout (node:internal/deps/undici/undici:6616:28)
      at node:internal/deps/undici/undici:6574:50
      at Immediate._onImmediate (node:internal/deps/undici/undici:6605:13)
      at process.processImmediate (node:internal/timers:476:21)
      at process.callbackTrampoline (node:internal/async_hooks:130:17) {
    code: 'UND_ERR_CONNECT_TIMEOUT'
  }
}```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment