const { updateUserPluginsService } = require('../services/UserService'); const { updateUserPluginAuth, deleteUserPluginAuth } = require('../services/PluginService'); const getUserController = async (req, res) => { res.status(200).send(req.user); }; const updateUserPluginsController = async (req, res) => { const { user } = req; const { pluginKey, action, auth } = req.body; let authService; try { const userPluginsService = await updateUserPluginsService(user, pluginKey, action); if (userPluginsService instanceof Error) { console.log(userPluginsService); const { status, message } = userPluginsService; res.status(status).send({ message }); } if (auth) { const keys = Object.keys(auth); const values = Object.values(auth); if (action === 'install' && keys.length > 0) { for (let i = 0; i < keys.length; i++) { authService = await updateUserPluginAuth(user.id, keys[i], pluginKey, values[i]); if (authService instanceof Error) { console.log(authService); const { status, message } = authService; res.status(status).send({ message }); } } } if (action === 'uninstall' && keys.length > 0) { for (let i = 0; i < keys.length; i++) { authService = await deleteUserPluginAuth(user.id, keys[i]); if (authService instanceof Error) { console.log(authService); const { status, message } = authService; res.status(status).send({ message }); } } } } res.status(200).send(); } catch (err) { console.log(err); res.status(500).json({ message: err.message }); } }; module.exports = { getUserController, updateUserPluginsController, };