mirror of
https://github.com/strapi/strapi.git
synced 2025-07-07 17:12:33 +00:00
69 lines
1.6 KiB
JavaScript
69 lines
1.6 KiB
JavaScript
![]() |
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Email.js controller
|
||
|
*
|
||
|
* @description: A set of functions called "actions" of the `email` plugin.
|
||
|
*/
|
||
|
|
||
|
const _ = require('lodash');
|
||
|
|
||
|
module.exports = {
|
||
|
send: async (ctx) => {
|
||
|
// Retrieve provider configuration.
|
||
|
const config = await strapi.store({
|
||
|
environment: strapi.config.environment,
|
||
|
type: 'plugin',
|
||
|
name: 'email'
|
||
|
}).get({ key: 'provider' });
|
||
|
|
||
|
// Verify if the file email is enable.
|
||
|
if (config.enabled === false) {
|
||
|
strapi.log.error('Email is disabled');
|
||
|
return ctx.badRequest(null, ctx.request.admin ? [{ messages: [{ id: 'Email.status.disabled' }] }] : 'Emailis disabled');
|
||
|
}
|
||
|
|
||
|
// Something is wrong
|
||
|
if (ctx.status === 400) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
let options = ctx.request.body;
|
||
|
|
||
|
await strapi.plugins.email.services.send(options, config);
|
||
|
|
||
|
// Send 200 `ok`
|
||
|
ctx.send({});
|
||
|
},
|
||
|
|
||
|
getEnvironments: async (ctx) => {
|
||
|
const environments = _.map(_.keys(strapi.config.environments), environment => {
|
||
|
return {
|
||
|
name: environment,
|
||
|
active: (strapi.config.environment === environment)
|
||
|
};
|
||
|
});
|
||
|
|
||
|
ctx.send({ environments });
|
||
|
},
|
||
|
|
||
|
getSettings: async (ctx) => {
|
||
|
let config = await strapi.plugins.email.services.email.getProviderConfig(ctx.params.environment);
|
||
|
|
||
|
ctx.send({
|
||
|
providers: strapi.plugins.email.config.providers,
|
||
|
config
|
||
|
});
|
||
|
},
|
||
|
|
||
|
updateSettings: async (ctx) => {
|
||
|
await strapi.store({
|
||
|
environment: ctx.params.environment,
|
||
|
type: 'plugin',
|
||
|
name: 'email'
|
||
|
}).set({key: 'provider', value: ctx.request.body});
|
||
|
|
||
|
ctx.send({ok: true});
|
||
|
},
|
||
|
};
|