| 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, | |
| }; | |