Skip to content

urfu-2016/javascript-task-9

Repository files navigation

Задача «Просмотрщик задач»

Перед выполнением задания внимательно прочитайте:

Основное задание

Мы очень хотим, чтобы код вы написали сами, а не пользовались внешними библиотеками.

Настоящие разработчики редко пользуются web-интерфейсами и предпочитают командную строку.
Даже погоду и текущую фазу луны смотрят в окне терминала (смотри картинку внизу).

Предлагаем вам последовать за хорошей традицией
и написать небольшой модуль для получения информации о задачах курса.

Для решения задачи вам понадобится Github API.

Для безопасного взаимодействия с ним необходимо получить авторизационный token
и положить его в файл token.txt (исключение в .gitignore мы уже добавили).

Для выполения запросов к API необходимо брать токен из файла,
и ни в коем случае не оставлять его где-либо в коде!

Обязательно оберните чтение токена в try/catch – для тестов он не нужен и может быть пустым.

И так, предлагаем для начала реализовать пару полезных функций.

Функция getList

Принимает на вход категорию задачи: demo, javascript или markup.
А на выходе возвращает список задач этой категории с названием и описанием:

javascript-task-1: Задача «XXL»
javascript-task-2: Задача «Телефонная книга»
javascript-task-3: Задача «0b11 друзей Оушена»
javascript-task-4: Задача «Картофельная вечеринка Билли»
...

Необходимый интерфейс возьмите из следующего раздела документации:

Функция loadOne

Принимает на вход название репозитория. Например, javascript-task-1.
А на выходе возвращает объект с информацией:

{
    name: 'javascript-task-1', // Название репозитория
    description: 'Задача «XXL»', // Описание
    markdown: '# Задача «XXL» ...' // И markdown из README.md
}

Необходимые интерфейсы возьмите из следующих разделов документации:

Условия и ограничения

  • Можно пользоваться только встроенными модулями Node.js
    и своим модулем flow из предыдущей задачи
    (по возможности установите его средствами npm, используя git URL).
  • Можно использовать только рекомендованные в тексте задачи интерфейсы GitHub API.
    Любые другие будут блокироваться в тестах.
  • Выполнение запросов к API обязательно изолируйте в отдельный модуль.
  • А так же обязательно обрабатывайте различные ошибки.
    Например, неудачное сетевое соединение до API.

Примеры с подробными комментариями можно традиционно найти в index.js и в тестах.

Дополнительное задание

Перед выполнением внимательно прочитайте про особенности

Очень круто, если вместе с markdown разметкой текста задачи,
вы будете возвращать и html представление в отдельном поле:

{
    name: 'javascript-task-1',
    description: 'Задача «XXL»',
    markdown: '# Задача «XXL» ...',
    html: '<h1>Задача «XXL»</h1> ...'
}

Интерфейс для этого описан в разделе Render a Markdown document in raw mode

Пример с подробными комментариями можно найти в index.js и в тестах.

About

Задача «Просмотрщик задач»

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published