Coder Social home page Coder Social logo

Comments (13)

k17-sergey avatar k17-sergey commented on September 23, 2024

Сделано в тестовом варианте: несколько таблиц, загружаемых из GitHub’а посредством его API.

В командной строке:
$ php artisan command:testGitHubApi users --save
$ php artisan command:testGitHubApi issues --save
$ php artisan command:testGitHubApi comments --save
$ php artisan command:testGitHubApi issuesEvents –save
Загружаются данные в таблицы соответственно:
• пользователей;
• задач;
• комментарий пользователей к задачам;
• коммитов этих задач.

Запуск команды без опции «--save» выводит полученные данные на экран в сокращенном виде (то, что предполагается сохранять в БД). Например,
$ php artisan command:testGitHubApi issues

Есть еще параметры запуска:
• $ php artisan command:testGitHubApi commits
• $ php artisan command:testGitHubApi events

Список пользователей еще под вопросом (кого туда вносить и по каким запросам к GitHub API).

from fintech-fab.ru.

mikanoz avatar mikanoz commented on September 23, 2024

Комментарии по коду команды: 238f5d4

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

Добавлен маршрут и бланк страницы сайта.
Сделана рабочая команда, загружающая данные с GitHub’а. Но она ничего не загружает и не показывает: в ней нет «движка». Команда:

$ php artisan command: fintech-fabFromGitHub

Чтобы получить данные нужно запустить функцию «getFromGitHubApi($httpRequest)» по нужному адресу и сохранить полученные данные в нужную модель данных, функцией «saveInDB($inData, $classDB)»

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

Сделано в рабочем варианте загрузка данных для одной из таблиц БД:

В командной строке:
$ php artisan fintech-fab:git-hub comments

Загружаются все страницы, выдаваемые API GitHub'бом

from fintech-fab.ru.

mikanoz avatar mikanoz commented on September 23, 2024

Сделал ревью.
(Важное замечание - автоформат кода настрой обязательно. В инструкции на вики есть)

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

Сделана загрузка пользователей

В командной строке:
$ php artisan fintech-fab:git-hub users

Сделаны повторные запросы, дающие, при отсутствии новых данных, статус ответа 304

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

В принципе, основное закончено. Данные загружаются из GitHub’а, и отображаются на интернет странице.
Только вот один пункт не получилось сделать. Предполагалось загружать общие коммиты (главной ветки), но прямым запросом это не сделать (есть общая куча коммитов…).

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

На данный момент есть возможность использовать пароль пользователя GitHub’а (в файле app/config/github.php). Это даст лимит запросов 5000 в течение часа (без авторизации — 60 запросов).

На вкладке «Общее» отображаются события открытия/закрытия задач, но показываются только недавние события (старых не видно).

from fintech-fab.ru.

mikanoz avatar mikanoz commented on September 23, 2024

Задачу согласен назвать готовой :-)

Подведу итоги:

  1. Все работает - отлично.
  2. Без подсказки - учтено время обновления - лишние данные не обрабатываются - молодец.
  3. Постраничный сбор - прекрасно.
  4. При работе команды выводится подробная информация о процессе - 5 баллов.

Есть предложения по улучшению, но это уже больше эстетика, чем реальная необходимость. Это то, что я бы сделал, решая эту задачу. Если будешь согласен - поставлю отдельными задачами:

  1. Еще сильнее почистить команды - чтобы там были только аргументы и "запускатели". Почему так правильно? Например, можно сделать из веб-интерфейса, находясь в конкретной задаче, обновить коммиты по этой задаче. Тогда вынесенный из artisan-команды код пригодится. Вынесение по типу класса GitHubAPI (компонентом).

  2. Реализовать задачу в виде отдельного пакета для composer. Стоит сделать, если просто хочется научиться делать независимые пакеты к Laravel.

  3. Если делать пункт (1), то хотелось бы иметь не одну команду, а несколько. Также, как делают разработчики фреймворка, например queue:

  queue:failed                List all of the failed queue jobs
  queue:failed-table          Create a migration for the failed queue jobs database table
  queue:flush                 Flush all of the failed queue jobs
  1. Переделать/оптимизировать работу контроллера при отображении задач. Получились довольно сложные конструкции, можно сделать проще/легче. Пока без деталей - если интересно - поставлю задачу.

  2. Это обязательно - добавить в справку команды инфу по последовательности запуска команд. А то я запутался. Наловил эксепшенов с ключами. Но позапускав с разными параметрами, в итоге все получилось.

from fintech-fab.ru.

Quazar99 avatar Quazar99 commented on September 23, 2024

где скачать приложение?

from fintech-fab.ru.

mikanoz avatar mikanoz commented on September 23, 2024

Приложения нет :) а задача почти закрыта уже.

from fintech-fab.ru.

Quazar99 avatar Quazar99 commented on September 23, 2024

Не понятно почему нет приложения ((

from fintech-fab.ru.

k17-sergey avatar k17-sergey commented on September 23, 2024

По п.1 сделаны запускатели (public). По п.5 добавлено в справку, что сначала нужно загружать пользователей «users», затем задачи «issues» (однако по логике, сейчас сбоев не должно быть: если задачи не загружены, то связанные с ними данными просто не должны отображаться на странице; а пользователи каждый раз принудительно проверяются).

По п.4 я предполагаю лишь такой способ: сделать несколько представлений (view) и модели для них. И в контроллере получать данные через эти модели. Но всё это и прочее, лучше как отдельные задачи.

from fintech-fab.ru.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.