rating-chgk-info-0.3.6.4: Client for rating.chgk.info API and CSV tables (documentation in Russian)

Copyright(c) Mansur Ziiatdinov 2018-2019
LicenseBSD-3
Maintainerchgk@pm.me
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

RatingChgkInfo.Api

Contents

Description

Функции здесь повторяют те запросы, которые доступны в API сайта рейтинга. Те функции, которые недоступны через API, реализованы в NoApi.

Кроме того, есть вспомогательная функция getAllItems для удобства.

Synopsis

Работа с API

type RatingClient = ClientM Source #

Синоним типа для реэкспорта. Монада, в которой возможно выполнять запросы к REST API сайта рейтинга

runRatingApi Source #

Arguments

:: RatingClient a

Набор команд, работающих с API сайта рейтинга

-> IO (Either ClientError a)

Результат работы, либо ошибка

Запуск клиента API сайта рейтинга

Все запросы внутри RatingClient используют один и тот же менеджер соединений

Информация об игроках

players Source #

Arguments

:: Maybe Int

Номер страницы в результате

-> RatingClient (Items Player)

Список игроков, по 1000 элементов

Список всех игроков

Запрос /players

player Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient [Player]

Информация об игроке, список из единственного элемента

Информация об игроке

API NOTE. Результат должен быть Player, а не список игроков из одного элемента

Запрос /players/:id

О командах игроков

playerTeams Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient [PlayerTeam]

Список команд игрока

Команды, в базовых составах которых играл игрок

Запрос /players/:id/teams

playerLastTeam Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient [PlayerTeam]

Список команд игрока

Команды, в базовый состав которых игрок входит в текущем сезоне

Запрос /players/:id/teams/last

playerTeam Source #

Arguments

:: PlayerId

Идентификатор игрока

-> Int

Идентификатор сезона

-> RatingClient [PlayerTeam]

Список команд игрока

Команды, в базовый состав которых игрок входил в указанном сезоне

Запрос /players/:id/teams/:season

О турнирах игроков

playerTournaments Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient (SeasonMap PlayerSeason)

Турниры игрока по сезонам

Турниры, которые отыграл игрок, по сезонам

Запрос /players/:id/tournaments

playerLastTournament Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient PlayerSeason 

Турниры, которые игрок отыграл в текущем сезоне

Запрос /players/:id/tournaments/last

playerTournament Source #

Arguments

:: PlayerId

Идентификатор игрока

-> Int

Идентификатор сезона

-> RatingClient PlayerSeason 

Турниры, которые игрок отыграл в указанном сезоне

Запрос /players/:id/tournaments/:season

О рейтингах игроков

playerRatings Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient [PlayerRating]

Список рейтингов игрока, порядок не определён

Рейтинги игрока

Запрос /players/:id/rating

playerLastRating Source #

Arguments

:: PlayerId

Идентификатор игрока

-> RatingClient PlayerRating 

Рейтинг игрока в последнем релизе

API NOTE. Работает не всегда: например, для 54345 в декабре 2018 ничего не возвращало (off-by-one error?)

Запрос /players/:id/rating/last

playerRating Source #

Arguments

:: PlayerId

Идентификатор игрока

-> Int

Идентификатор релиза

-> RatingClient PlayerRating 

Рейтинг игрока в указанном релизе

Запрос /players/:id/rating/:release

Информация о командах

teams Source #

Arguments

:: Maybe Int

Номер страницы в результате

-> RatingClient (Items Team)

Команды по 1000 элементов

Список всех команд

Запрос /teams

team Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient [Team]

Команда, список из единственного элемента

Информация о команде

API NOTE: должна быть команда, а не список из команд

Запрос /teams/:id

Базовые составы

teamBaseRecaps Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient (SeasonMap TeamBaseRecap)

Базовые составы по сезонам

Базовые составы команды

Запрос /teams/:id/recaps

teamLastBaseRecap Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient TeamBaseRecap 

Базовый состав команды в последнем сезоне

Запрос /teams/:id/recaps/last

teamBaseRecap Source #

Arguments

:: TeamId

Идентификатор команды

-> Int

Идентификатор сезона

-> RatingClient TeamBaseRecap 

Базовый состав команды в указанном сезоне

Запрос /teams/:id/recaps/:season

Отыгранные турниры

teamTournaments Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient (SeasonMap TeamTournament)

Турниры команды по сезонам

Турниры, отыгранные командой

Запрос /teams/:id/tournaments

teamLastTournament Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient TeamTournament 

Турниры, отыгранные командой в последнем сезоне

Запрос /teams/:id/tournaments/last

teamTournament Source #

Arguments

:: TeamId

Идентификатор команды

-> Int

Идентификатор сезона

-> RatingClient TeamTournament 

Турниры, отыгранные командой в указанном сезоне

Запрос /teams/:id/tournaments/:season

Рейтинги

teamRatings Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient [TeamRating]

Список рейтингов команды, порядок не определён

Рейтинги команды

Запрос /teams/:id/rating

teamRatingA Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient TeamRating 

Последний рейтинг команды по формуле A

API NOTE. Работает не всегда: для 1 ничего не возвращает (off-by-one error?)

Запрос /teams/:id/rating/a

teamRatingB Source #

Arguments

:: TeamId

Идентификатор команды

-> RatingClient TeamRating 

Последний рейтинг команды по формуле B

API NOTE. Работает не всегда: для 1 ничего не возвращает (off-by-one error?)

Запрос /teams/:id/rating/b

teamRating Source #

Arguments

:: TeamId

Идентификатор команды

-> Int

Идентификатор релиза

-> RatingClient TeamRating 

Рейтинг команды в указанном релизе

Запрос /teams/:id/rating/:release

Информация о турнирах

tournaments Source #

Arguments

:: Maybe Int

Номер страницы (page) в результате

-> RatingClient (Items TournamentShort)

Информация о турнирах по 1000 элементов

Список всех турниров

Запрос /tournaments

tournament Source #

Arguments

:: TournamentId

Идентификатор турнира

-> RatingClient [Tournament]

Единственный элемент списка - турнир

Информация о турнире

API NOTE: должен быть турнир, а не список турниров

Запрос /tournaments/:id

Результаты турнира

tournamentResults Source #

Arguments

:: TournamentId

Идентификатор турнира

-> RatingClient [TournamentResult]

Результаты по командам, порядок не определён

Результаты турнира

Запрос /tournaments/:id/list

tournamentResultsTown Source #

Arguments

:: TournamentId

Идентификатор турнира

-> Int

Идентификатор города

-> RatingClient [TournamentResult]

Результаты по командам, порядок не определён

Результаты турнира для команд города

Запрос /tournaments/:id/list/town/:town

tournamentResultsRegion Source #

Arguments

:: TournamentId

Идентификатор турнира

-> Int

Идентификатор региона

-> RatingClient [TournamentResult]

Результаты по командам, порядок не определён

Результаты турнира для команд региона

Запрос /tournaments/:id/list/region/:region

tournamentResultsCountry Source #

Arguments

:: TournamentId

Идентификатор турнира

-> Int

Идентификатор страны

-> RatingClient [TournamentResult]

Результаты по командам, порядок не определён

Результаты турнира для команд страны

Запрос /tournaments/:id/list/country/:country

tournamentTeamResult Source #

Arguments

:: TournamentId

Идентификатор турнира

-> TeamId

Идентификатор команды

-> RatingClient [TourResult]

Список результатов по турам

Результат указанной команды на турнире

Запрос /tournaments/:id/results/:team

Составы на турнире

tournamentRecaps Source #

Arguments

:: TournamentId

Идентификаторр турнира

-> RatingClient [RecapTeam] 

Составы команд на турнире

Запрос /tournaments/:id/recaps

Since: 0.3.6.4

tournamentRecap Source #

Arguments

:: TournamentId

Идентификатор турнира

-> TeamId

Идентификатор команды

-> RatingClient [RecapPlayer]

Список игроков с флагами К/Б/Л

Составы указанной команды на турнире

Запрос /tournaments/:id/recaps/:team

Спорные и апелляции

tournamentControversials Source #

Arguments

:: TournamentId

Идентификатор турнира

-> RatingClient [Controversial]

Спорные

Спорные на турнире

Запрос /tournaments/:id/controversials

Since: 0.3.6.3

tournamentAppeals Source #

Arguments

:: TournamentId

Идентификатор турнира

-> RatingClient [Appeal]

Апелляции

Апелляции на турнире

Запрос /tournaments/:id/appeals

Since: 0.3.6.3

Различные способы поиска

В функции поиска передаётся несколько значений типа 'Maybe a'. Если соответствующее значение установлено, по этому параметру производится поиск. Если установлено несколько значений, они объединяются при помощи логической связки И.

teamSearch Source #

Arguments

:: Maybe Text

Название (name)

-> Maybe Text

Город (town)

-> Maybe Text

Регион (region_name)

-> Maybe Text

Страна (country_name)

-> Bool

Играла в текущем сезоне (active_this_season)

-> Maybe Int

Номер страницы в результате

-> RatingClient (Items Team)

Список команд по 1000 элементов

Поиск по командам

Запрос /teams/search

playerSearch Source #

Arguments

:: Maybe Text

Фамилия

-> Maybe Text

Имя

-> Maybe Text

Отчество

-> Maybe Int

Номер страницы в результате

-> RatingClient (Items Player)

Список игроков по 1000 элементов

Поиск по игрокам

Запрос /players/search

tournamentSearch Source #

Arguments

:: Maybe TournamentType

Тип турнира

-> Maybe Int

Находится ли турнир в архиве (0 - не находится, 1 - находится)

-> Maybe Int

Номер страницы в результате

-> RatingClient (Items TournamentShort) 

Поиск по турнирам

Запрос /tournaments/search

Вспомогательные функции

getAllItems Source #

Arguments

:: (Maybe Int -> RatingClient (Items a))

Запрос с разбиением на страницы

-> RatingClient [a]

Список всех элементов

Получение всех элементов из запроса с разбиением по страницам

В функции предполагается, что сайт рейтинга, как и указано в документации, разбивает ответ на куски по 1000 элементов