Skip to content

urfu-2016/javascript-task-9

Folders and files

NameName
Last commit message
Last commit date

Latest commit

68830ab · Dec 6, 2016

History

4 Commits
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016
Dec 6, 2016
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016
Dec 5, 2016

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