const builderService = require("../services/builderService"); const crypto = require("crypto"); const jobs = new Map(); const createJob = async (req, res) => { const { url, name, packageName, iconUrl } = req.body; if (!url || !name || !packageName) { return res.status(400).json({ status: false, message: "missing required parameters" }); } const jobId = crypto.randomBytes(8).toString("hex"); const jobData = { jobId, url, name, packageName, iconUrl, status: "queue", createdAt: new Date().toISOString() }; jobs.set(jobId, jobData); builderService.processApk(jobId, jobData, (result) => { jobs.set(jobId, { ...jobs.get(jobId), ...result }); }); res.json({ status: true, message: "job created successfully", data: { jobId } }); }; const checkJob = (req, res) => { const { jobId } = req.params; const job = jobs.get(jobId); if (!job) { return res.status(404).json({ status: false, message: "job id not found" }); } res.json({ status: true, data: { jobId: job.jobId, status: job.status, progress: job.progress || "0%" } }); }; const infoJob = (req, res) => { const { jobId } = req.params; const job = jobs.get(jobId); if (!job) { return res.status(404).json({ status: false, message: "job id not found" }); } res.json({ status: true, data: job }); }; module.exports = { createJob, checkJob, infoJob };