mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
* move translatable string to apiMessages * use apiMessages instead of res.t for groupIdRequired / keepOrRemove * move pageMustBeNumber to apiMessages * change apimessages * move missingKeyParam to apiMessages * move more strings to apiMessages * fix lint * revert lodash imports to fix tests * fix webhook test * fix test * rollback key change of `keepOrRemove` * remove unneeded `req.language` param * extract more messages from i18n * add missing `missingTypeParam` message
51 lines
2.2 KiB
JavaScript
51 lines
2.2 KiB
JavaScript
// A map of messages used by the API that don't need to be translated and
|
|
// so are not placed into /common/locales
|
|
|
|
import _ from 'lodash';
|
|
|
|
// When this file grows, it can be split into multiple ones.
|
|
const messages = {
|
|
taskIdRequired: 'req.params.taskId must contain a task id.',
|
|
keepOrRemove: 'req.query.keep must be either "keep" or "remove".',
|
|
keepOrRemoveAll: 'req.query.keep must be either "keep-all" or "remove-all".',
|
|
invalidAttribute: '"<%= attr %>" is not a valid Stat.',
|
|
|
|
statsObjectRequired: '"stats" update is required',
|
|
queryPageInteger: 'req.query.page must be an integer greater than or equal to 0.',
|
|
|
|
missingTypeParam: '"req.params.type" is required.',
|
|
missingKeyParam: '"req.params.key" is required.',
|
|
itemNotFound: 'Item "<%= key %>" not found.',
|
|
questNotFound: 'Quest "<%= key %>" not found.',
|
|
spellNotFound: 'Skill "<%= spellId %>" not found.',
|
|
missingTypeKeyEquip: '"key" and "type" are required parameters.',
|
|
invalidTypeEquip: '"type" must be one of "equipped", "pet", "mount", "costume"',
|
|
missingPetFoodFeed: '"pet" and "food" are required parameters.',
|
|
missingEggHatchingPotion: '"egg" and "hatchingPotion" are required parameters.',
|
|
|
|
guildsOnlyPaginate: 'Only public guilds support pagination.',
|
|
guildsPaginateBooleanString: 'req.query.paginate must be a boolean string.',
|
|
groupIdRequired: 'req.params.groupId must contain a groupId.',
|
|
groupRemainOrLeaveChallenges: 'req.query.keep must be either "remain-in-challenges" or "leave-challenges"',
|
|
managerIdRequired: 'req.body.managerId must contain a user ID.',
|
|
noSudoAccess: 'You don\'t have sudo access.',
|
|
|
|
eventRequired: '"req.params.event" is required.',
|
|
countRequired: '"req.query.count" is required.',
|
|
|
|
missingPaymentId: 'Missing "req.query.paymentId"',
|
|
missingCustomerId: 'Missing "req.query.customerId"',
|
|
missingPaypalBlock: 'Missing "req.session.paypalBlock"',
|
|
missingSubKey: 'Missing "req.query.sub"',
|
|
};
|
|
|
|
export default function (msgKey, vars = {}) {
|
|
let message = messages[msgKey];
|
|
if (!message) throw new Error(`Error processing the API message "${msgKey}".`);
|
|
|
|
let clonedVars = vars ? _.clone(vars) : {};
|
|
|
|
// TODO cache the result of template() ? More memory usage, faster output
|
|
return _.template(message)(clonedVars);
|
|
}
|