Обработка даты и времени из GET запросов

Создано: 18-01-2020

Данная статья является моим учебным заданием, которое я выполнил обучаясь на FreeCodeCamp

Задание

Нужно создать JavaScript приложение полного цикла, которое функционально похоже на это: https://curse-arrow.glitch.me/.

Если ввести в поисковую строку браузера, например, ссылку: https://curse-arrow.glitch.me/api/timestamp/2015-12-25, то будет выведено следующее:

{"unix":1451001600000,"utc":"Fri, 25 Dec 2015 00:00:00 GMT"}

а если ввести такую ссылку: https://curse-arrow.glitch.me/api/timestamp/1450137600000, то будет выведено следующее:

{"unix":1450137600000,"utc":"Tue, 15 Dec 2015 00:00:00 GMT"}

Написать код можно на облачном сервисе Glitch. Чтобы данный проект прошел тесты на freecodecamp.org после его завершения нужно скопировать публичный url с Glitch (главной страницы приложения) на эту страницу. Можно написать свой проект на другой платформе, но он должен быть публично виден для тестирования.

Запустите этот проект на Glitch по этой ссылке или клонируйте этот репозиторий с GitHub!

  1. Конечной точкой API является GET [project_url]/api/timestamp/:строка_даты?

  2. Строка даты считается допустимой, если может быть успешно проанализирована с помощью new Date(date_string) (JS). Обратите внимание, что метка времени unix должна быть целым числом (не строкой), задающая миллисекунды. В нашем тесте мы будем использовать строки дат, соответствующие стандарту ISO-8601 (например, "2016-11-20"), поскольку это обеспечит временную метку UTC.

  3. Если строка даты пуста, она должна быть эквивалентна триггеру new Date(), то есть служба использует текущую метку времени.

  4. Если строка даты допустима, api возвращает JSON, имеющий структуру {"unix": <date.getTime()>, "utc" : <date.toUTCString()> } например, {"unix": 1479663089000 ,"utc": "Sun, 20 Nov 2016 17:31:29 GMT"}.

  5. Если строка даты недопустима, api возвращает JSON, имеющий структуру {"unix": null, "utc" : "Invalid Date" }. Это то, что вы получаете от функций манипулирования датой, используемых выше.

Микросервис должен обрабатывать правильную дату и возвращать правильную метку времени unix и правильную строку UTC Микросервис должен обрабатывать правильную дату unix и возвращать правильную метку времени unix Микросервис должен вернуть сообщение об ошибке для недопустимой даты Микросервис должен обрабатывать пустой параметр даты и возвращать текущее время в формате unix и текущее время в формате UTC

Решение

Исходный код моего микросервиса можно просмотреть на GitHub

Протестировать работу моего микросервиса можно здесь: https://injashkin-timestamp-microservice.glitch.me/api/timestamp/