diff --git a/core/server/api/canary/members.js b/core/server/api/canary/members.js index 0f9bfc689e..423c68d980 100644 --- a/core/server/api/canary/members.js +++ b/core/server/api/canary/members.js @@ -8,9 +8,27 @@ const membersService = require('../../services/members'); const labsService = require('../../../shared/labs'); const settingsCache = require('../../../shared/settings-cache'); -const i18n = require('../../../shared/i18n'); +const tpl = require('@tryghost/tpl'); const _ = require('lodash'); +const messages = { + memberNotFound: 'Member not found.', + memberAlreadyExists: { + message: 'Member already exists', + context: 'Attempting to {action} member with existing email address.' + }, + stripeNotConnected: { + message: 'Missing Stripe connection.', + context: 'Attempting to import members with Stripe data when there is no Stripe account connected.', + help: 'help' + }, + stripeCustomerNotFound: { + context: 'Missing Stripe customer.', + help: 'Make sure you’re connected to the correct Stripe Account.' + }, + resourceNotFound: '{resource} not found.' +}; + const allowedIncludes = ['email_recipients', 'products']; module.exports = { @@ -70,7 +88,7 @@ module.exports = { if (!member) { throw new errors.NotFoundError({ - message: i18n.t('errors.api.members.memberNotFound') + message: tpl(messages.memberNotFound) }); } @@ -108,9 +126,9 @@ module.exports = { const property = frame.data.members[0].comped ? 'comped' : 'stripe_customer_id'; throw new errors.ValidationError({ - message: i18n.t('errors.api.members.stripeNotConnected.message'), - context: i18n.t('errors.api.members.stripeNotConnected.context'), - help: i18n.t('errors.api.members.stripeNotConnected.help'), + message: tpl(messages.stripeNotConnected.message), + context: tpl(messages.stripeNotConnected.context), + help: tpl(messages.stripeNotConnected.help), property }); } @@ -138,8 +156,8 @@ module.exports = { } catch (error) { if (error.code && error.message.toLowerCase().indexOf('unique') !== -1) { throw new errors.ValidationError({ - message: i18n.t('errors.models.member.memberAlreadyExists.message'), - context: i18n.t('errors.models.member.memberAlreadyExists.context', { + message: tpl(messages.memberAlreadyExists.message), + context: tpl(messages.memberAlreadyExists.context, { action: 'add' }) }); @@ -152,8 +170,8 @@ module.exports = { if (member && isStripeLinkingError) { if (error.message.indexOf('customer') && error.code === 'resource_missing') { error.message = `Member not imported. ${error.message}`; - error.context = i18n.t('errors.api.members.stripeCustomerNotFound.context'); - error.help = i18n.t('errors.api.members.stripeCustomerNotFound.help'); + error.context = tpl(messages.stripeCustomerNotFound.context); + error.help = tpl(messages.stripeCustomerNotFound.help); } await membersService.api.members.destroy({ @@ -208,8 +226,8 @@ module.exports = { } catch (error) { if (error.code && error.message.toLowerCase().indexOf('unique') !== -1) { throw new errors.ValidationError({ - message: i18n.t('errors.models.member.memberAlreadyExists.message'), - context: i18n.t('errors.models.member.memberAlreadyExists.context', { + message: tpl(messages.memberAlreadyExists.message), + context: tpl(messages.memberAlreadyExists.context, { action: 'edit' }) }); @@ -274,7 +292,7 @@ module.exports = { }); if (!model) { throw new errors.NotFoundError({ - message: i18n.t('errors.api.members.memberNotFound') + message: tpl(messages.memberNotFound) }); } @@ -318,7 +336,7 @@ module.exports = { }); if (!model) { throw new errors.NotFoundError({ - message: i18n.t('errors.api.members.memberNotFound') + message: tpl(messages.memberNotFound) }); } @@ -349,7 +367,7 @@ module.exports = { id: frame.options.id }, frame.options)).catch(models.Member.NotFoundError, () => { throw new errors.NotFoundError({ - message: i18n.t('errors.api.resource.resourceNotFound', { + message: tpl(messages.resourceNotFound, { resource: 'Member' }) });