{"version":3,"file":"settings.mjs","sources":["../../../server/controllers/settings.js"],"sourcesContent":["'use strict';\n\nconst _ = require('lodash');\nconst { ValidationError } = require('@strapi/utils').errors;\nconst { getService } = require('../utils');\nconst { isValidEmailTemplate } = require('./validation/email-template');\n\nmodule.exports = {\n  async getEmailTemplate(ctx) {\n    ctx.send(await strapi.store({ type: 'plugin', name: 'users-permissions', key: 'email' }).get());\n  },\n\n  async updateEmailTemplate(ctx) {\n    if (_.isEmpty(ctx.request.body)) {\n      throw new ValidationError('Request body cannot be empty');\n    }\n\n    const emailTemplates = ctx.request.body['email-templates'];\n\n    for (const key of Object.keys(emailTemplates)) {\n      const template = emailTemplates[key].options.message;\n\n      if (!isValidEmailTemplate(template)) {\n        throw new ValidationError('Invalid template');\n      }\n    }\n\n    await strapi\n      .store({ type: 'plugin', name: 'users-permissions', key: 'email' })\n      .set({ value: emailTemplates });\n\n    ctx.send({ ok: true });\n  },\n\n  async getAdvancedSettings(ctx) {\n    const settings = await strapi\n      .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n      .get();\n\n    const roles = await getService('role').find();\n\n    ctx.send({ settings, roles });\n  },\n\n  async updateAdvancedSettings(ctx) {\n    if (_.isEmpty(ctx.request.body)) {\n      throw new ValidationError('Request body cannot be empty');\n    }\n\n    await strapi\n      .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n      .set({ value: ctx.request.body });\n\n    ctx.send({ ok: true });\n  },\n\n  async getProviders(ctx) {\n    const providers = await strapi\n      .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n      .get();\n\n    for (const provider in providers) {\n      if (provider !== 'email') {\n        providers[provider].redirectUri = strapi\n          .plugin('users-permissions')\n          .service('providers')\n          .buildRedirectUri(provider);\n      }\n    }\n\n    ctx.send(providers);\n  },\n\n  async updateProviders(ctx) {\n    if (_.isEmpty(ctx.request.body)) {\n      throw new ValidationError('Request body cannot be empty');\n    }\n\n    await strapi\n      .store({ type: 'plugin', name: 'users-permissions', key: 'grant' })\n      .set({ value: ctx.request.body.providers });\n\n    ctx.send({ ok: true });\n  },\n};\n"],"names":["_","require$$0","ValidationError","require$$1","errors","getService","require$$2","isValidEmailTemplate","require$$3","settings","getEmailTemplate","ctx","send","strapi","store","type","name","key","get","updateEmailTemplate","isEmpty","request","body","emailTemplates","Object","keys","template","options","message","set","value","ok","getAdvancedSettings","roles","find","updateAdvancedSettings","getProviders","providers","provider","redirectUri","plugin","service","buildRedirectUri","updateProviders"],"mappings":"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"}