@aot-tech/clockify-mcp-server
Version:
MCP Server for Clockify time tracking integration with AI tools
91 lines (90 loc) • 2.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logApiCall = logApiCall;
exports.logRequest = logRequest;
exports.logResponse = logResponse;
exports.logError = logError;
exports.clearLogs = clearLogs;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const ENABLE_LOGGING = false;
const LOG_DIR = path_1.default.join(__dirname, "../../logs");
const API_LOG_FILE = path_1.default.join(LOG_DIR, "api-requests.log");
function ensureLogDirectory() {
try {
if (!fs_1.default.existsSync(LOG_DIR)) {
fs_1.default.mkdirSync(LOG_DIR, { recursive: true });
}
}
catch (error) {
console.error("Failed to create log directory:", error);
}
}
ensureLogDirectory();
function logApiCall(entry) {
if (!ENABLE_LOGGING) {
return;
}
try {
ensureLogDirectory();
const logLine = {
...entry,
timestamp: entry.timestamp || new Date().toISOString(),
};
const formattedLog = JSON.stringify(logLine, null, 2);
const separator = "\n" + "=".repeat(80) + "\n";
fs_1.default.appendFileSync(API_LOG_FILE, `${separator}${formattedLog}${separator}\n`, "utf8");
}
catch (error) {
console.error("Failed to write to log file:", error);
console.log("Log entry:", entry);
}
}
function logRequest(endpoint, method, body) {
logApiCall({
timestamp: new Date().toISOString(),
type: "REQUEST",
endpoint,
method,
body,
});
}
function logResponse(endpoint, response, duration) {
logApiCall({
timestamp: new Date().toISOString(),
type: "RESPONSE",
endpoint,
response,
duration,
});
}
function logError(endpoint, error) {
logApiCall({
timestamp: new Date().toISOString(),
type: "ERROR",
endpoint,
error: {
message: error.message || String(error),
stack: error.stack,
response: error.response?.data,
},
});
}
function clearLogs() {
if (!ENABLE_LOGGING) {
console.log("Logging is disabled, no logs to clear");
return;
}
try {
if (fs_1.default.existsSync(API_LOG_FILE)) {
fs_1.default.writeFileSync(API_LOG_FILE, "", "utf8");
console.log("Log file cleared successfully");
}
}
catch (error) {
console.error("Failed to clear log file:", error);
}
}