From a9b840452e76202457f1e96c96ae53e1876275cc Mon Sep 17 00:00:00 2001 From: ajnart Date: Fri, 22 Jul 2022 16:19:28 +0200 Subject: [PATCH] :pencil2: Fix async data gathering with Dockerode --- src/pages/api/docker/container/[id].tsx | 40 +++++++++++-------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/pages/api/docker/container/[id].tsx b/src/pages/api/docker/container/[id].tsx index 3373e4142..affa8868b 100644 --- a/src/pages/api/docker/container/[id].tsx +++ b/src/pages/api/docker/container/[id].tsx @@ -21,37 +21,31 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { } // Get the container with the ID const container = docker.getContainer(id); - // Get the container info - container.inspect((err, data) => { - if (err) { - res.status(500).json({ - message: err, - }); - } - }); - try { + const startAction = async () => { switch (action) { case 'remove': - await container.remove(); - break; + return container.remove(); case 'start': - container.start(); - break; + return container.start(); case 'stop': - container.stop(); - break; + return container.stop(); case 'restart': - container.restart(); - break; + return container.restart(); + default: + return Promise; } - } catch (err) { - res.status(500).json({ - message: err, + }; + try { + await startAction(); + return res.status(200).json({ + statusCode: 200, + message: `Container ${id} ${action}ed`, }); + } catch (err) { + return res.status(500).json( + err, + ); } - return res.status(200).json({ - success: true, - }); } export default async (req: NextApiRequest, res: NextApiResponse) => {