Код 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
Number.isIntegerотсекает дробные числа и не-числа.- Для описания сначала проверьте тип, потом обрежьте пробелы.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.