Spaces:
Runtime error
Runtime error
File size: 1,478 Bytes
89fd6fd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | 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
}; |