Код Middle Нативные модули обновлено

Проверка аргументов перед вызовом натива

Условие

Перед вызовом нативного SDK оплаты JS-обёртка проверяет запрос. Напишите validatePayment(req), возвращающую массив кодов ошибок (пустой, если всё верно), в таком порядке проверок:

  • amount должен быть целым числом больше 0 (копейки), иначе "AMOUNT";
  • currency одна из "RUB", "USD", "EUR", иначе "CURRENCY";
  • description строка длиной от 1 до 128 символов после обрезки пробелов, иначе "DESCRIPTION";
  • если есть email, он должен содержать ровно один @ и точку после него, иначе "EMAIL".

Примеры

validatePayment({"amount":19900,"currency":"RUB","description":"Подписка"}) // []
validatePayment({"amount":0,"currency":"RUB","description":"x"}) // ["AMOUNT"]
validatePayment({"amount":99.5,"currency":"RUB","description":"x"}) // ["AMOUNT"]

Как подойти

Подсказки: 2
  1. Number.isInteger отсекает дробные числа и не-числа.
  2. Для описания сначала проверьте тип, потом обрежьте пробелы.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.