{"version":3,"file":"email.mjs","sources":["../../../server/src/controllers/email.ts"],"sourcesContent":["import { pick } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type Koa from 'koa';\nimport type {} from 'koa-body';\nimport type { EmailConfig, SendOptions } from '../types';\n\nconst { ApplicationError } = errors;\n\n/**\n * Email.js controller\n *\n * @description: A set of functions called \"actions\" of the `email` plugin.\n */\nconst emailController = {\n async send(ctx: Koa.Context) {\n const options = ctx.request.body as SendOptions;\n\n try {\n await strapi.plugin('email').service('email').send(options);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async test(ctx: Koa.Context) {\n const { to } = ctx.request.body as Pick;\n\n if (!to) {\n throw new ApplicationError('No recipient(s) are given');\n }\n\n const email: SendOptions = {\n to,\n subject: `Strapi test mail to: ${to}`,\n text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(\n 'plugin::email.provider'\n )} provider. \\r\\nFor documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`,\n };\n\n try {\n await strapi.plugin('email').service('email').send(email);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send test email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async getSettings(ctx: Koa.Context) {\n const config: EmailConfig = strapi.plugin('email').service('email').getProviderSettings();\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n });\n },\n};\n\nexport default emailController;\n"],"names":["ApplicationError","errors","emailController","send","ctx","options","request","body","strapi","plugin","service","error","Error","statusCode","message","test","to","email","subject","text","config","get","getSettings","getProviderSettings","pick"],"mappings":";;;AAOA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B;;;;AAIC,UACKC,eAAkB,GAAA;AACtB,IAAA,MAAMC,MAAKC,GAAgB,EAAA;AACzB,QAAA,MAAMC,OAAUD,GAAAA,GAAAA,CAAIE,OAAO,CAACC,IAAI;QAEhC,IAAI;YACF,MAAMC,MAAAA,CAAOC,MAAM,CAAC,OAAA,CAAA,CAASC,OAAO,CAAC,OAAA,CAAA,CAASP,IAAI,CAACE,OAAAA,CAAAA;AACrD,SAAA,CAAE,OAAOM,KAAO,EAAA;AACd,YAAA,IAAIA,iBAAiBC,KAAO,EAAA;AAC1B,gBAAA,IAAI,YAAgBD,IAAAA,KAAAA,IAASA,KAAME,CAAAA,UAAU,KAAK,GAAK,EAAA;oBACrD,MAAM,IAAIb,gBAAiBW,CAAAA,KAAAA,CAAMG,OAAO,CAAA;iBACnC,MAAA;oBACL,MAAM,IAAIF,MAAM,CAAC,qBAAqB,EAAED,KAAMG,CAAAA,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1D;AACF;AACF;;QAGAV,GAAID,CAAAA,IAAI,CAAC,EAAC,CAAA;AACZ,KAAA;AAEA,IAAA,MAAMY,MAAKX,GAAgB,EAAA;AACzB,QAAA,MAAM,EAAEY,EAAE,EAAE,GAAGZ,GAAIE,CAAAA,OAAO,CAACC,IAAI;AAE/B,QAAA,IAAI,CAACS,EAAI,EAAA;AACP,YAAA,MAAM,IAAIhB,gBAAiB,CAAA,2BAAA,CAAA;AAC7B;AAEA,QAAA,MAAMiB,KAAqB,GAAA;AACzBD,YAAAA,EAAAA;AACAE,YAAAA,OAAAA,EAAS,CAAC,qBAAqB,EAAEF,EAAAA,CAAG,CAAC;YACrCG,IAAM,EAAA,CAAC,sEAAsE,EAAEX,MAAOY,CAAAA,MAAM,CAACC,GAAG,CAC9F,wBACA,CAAA,CAAA,yIAAyI;AAC7I,SAAA;QAEA,IAAI;YACF,MAAMb,MAAAA,CAAOC,MAAM,CAAC,OAAA,CAAA,CAASC,OAAO,CAAC,OAAA,CAAA,CAASP,IAAI,CAACc,KAAAA,CAAAA;AACrD,SAAA,CAAE,OAAON,KAAO,EAAA;AACd,YAAA,IAAIA,iBAAiBC,KAAO,EAAA;AAC1B,gBAAA,IAAI,YAAgBD,IAAAA,KAAAA,IAASA,KAAME,CAAAA,UAAU,KAAK,GAAK,EAAA;oBACrD,MAAM,IAAIb,gBAAiBW,CAAAA,KAAAA,CAAMG,OAAO,CAAA;iBACnC,MAAA;oBACL,MAAM,IAAIF,MAAM,CAAC,0BAA0B,EAAED,KAAMG,CAAAA,OAAO,CAAC,CAAC,CAAC,CAAA;AAC/D;AACF;AACF;;QAGAV,GAAID,CAAAA,IAAI,CAAC,EAAC,CAAA;AACZ,KAAA;AAEA,IAAA,MAAMmB,aAAYlB,GAAgB,EAAA;QAChC,MAAMgB,MAAAA,GAAsBZ,OAAOC,MAAM,CAAC,SAASC,OAAO,CAAC,SAASa,mBAAmB,EAAA;AAEvFnB,QAAAA,GAAAA,CAAID,IAAI,CAAC;AACPiB,YAAAA,MAAAA,EAAQI,IACN,CAAA;AAAC,gBAAA,UAAA;AAAY,gBAAA,sBAAA;AAAwB,gBAAA,yBAAA;AAA2B,gBAAA;aAAuB,EACvFJ,MAAAA;AAEJ,SAAA,CAAA;AACF;AACF;;;;"}