На эндпойнт /incoming/ приходят POST-запросом данные в следующем формате:
Нужно записывать эти данные в БД; если найден игрок/событие с тем же id, то обновлять эти данные, если нет — то записывать нового игрока/событие.
Задача — вывести данные по каждому игроку (актуальные на данный момент времени) в JSON вида: players/19489.json
{ "id": "19489", "name": "Yuri Lodygin", "age": 25, "height": "6 feet 2 inches", "weight": "235 pounds", "events": { "goal": [ { "id": "200054", "minute": 6 } ], "free_kick": [ ... ], "foul": [ ... ] }, "avg_pos_x": 23.9, "avg_pos_y": 64.7 }
Имя транслитерируется с кириллицы на латиницу, рост пересчитывается в футы, вес — в фунты, события для этого игрока стурктурированы по типу, внутри указана минута, на которой произошло событие. В конце вывода по игроку — среднее положение по координатам по всем событиям с его участием.
Большим плюсом будет, если задача на парсинг XML будет выполняться асинхронно (Sidekiq), и если будет тестовое покрытие (RSpec). Результат выполения задания очень хочется получить в виде git-репозитория.