Ratankumar10/code-execution-engine
0
1const express = require("express");2const router = express.Router();3const { validateExecution } = require("../middleware/validate.middleware");4const { rateLimiter } = require("../middleware/rateLimit.middleware");5const executorService = require("../services/executor.service");6const queueService = require("../services/queue.service");7const logger = require("../utils/logger.util");8 9// ─── POST /api/execute ───────────────────────10// Run code with stdin → get stdout, stderr, time, memory, verdict11router.post(12 "/execute",13 rateLimiter,14 validateExecution,15 async (req, res, next) => {16 try {17 const { language, code, input, timeLimit, memoryLimit } = req.body;18 19 logger.info(20 `📥 Execute request: lang=${language}, codeSize=${code.length}B, timeLimit=${timeLimit}s, memLimit=${memoryLimit}MB`,21 );22 23 const result = await queueService.enqueue(() =>24 executorService.execute({25 language,26 code,27 input,28 timeLimit,29 memoryLimit,30 }),31 );32 33 logger.info(34 `📤 Result: verdict=${result.verdict}, time=${result.executionTime}ms, memory=${result.memoryUsed}KB`,35 );36 37 res.json({38 success: true,39 data: result,40 });41 } catch (err) {42 next(err);43 }44 },45);46 47module.exports = router;48 