Implemented a production-ready TypeScript/Express.js service to receive and log MailGun webhook events (delivered, failed, opened, clicked, etc.). Key features: - Webhook endpoint (POST /webhook) with comprehensive event logging - Full TypeScript type definitions for all MailGun event types - Prometheus metrics integration for monitoring - Health check endpoint (GET /ping) - Comprehensive Jest test suite with 87.76% coverage - Docker containerization with build scripts Removed template/example code: - All SQL/MSSQL dependencies and related code - Example auth router and middleware - PRTG metrics support (simplified to Prometheus only) - Unused middleware (CORS, IP whitelist, request parsing/validation) - Template documentation (kept only MailGun webhook API spec) The service is clean, minimal, and focused solely on receiving and logging MailGun webhook events to the console. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
28 lines
528 B
TypeScript
28 lines
528 B
TypeScript
import { logHealthCheck } from "./lib/logger";
|
|
|
|
import http, { IncomingMessage } from "http";
|
|
|
|
const options = {
|
|
host: "localhost",
|
|
port: "3000",
|
|
timeout: 2000,
|
|
path: '/ping/'
|
|
};
|
|
|
|
const request = http.request(options, (res:IncomingMessage) => {
|
|
|
|
logHealthCheck(`STATUS ${res.statusCode}`);
|
|
|
|
if (res.statusCode == 200) {
|
|
process.exit(0);
|
|
} else {
|
|
process.exit(1);
|
|
}
|
|
});
|
|
|
|
request.on("error", function (err:any) {
|
|
logHealthCheck("ERROR");
|
|
process.exit(1);
|
|
});
|
|
|
|
request.end(); |