lib/chgk_rating/client.rb in chgk_rating-1.0.0.rc1 vs lib/chgk_rating/client.rb in chgk_rating-1.0.0

- old
+ new

@@ -1,173 +1,173 @@ -module ChgkRating - class Client - # Returns a single Team - # - # @raise [ChgkRating::Error::NotFound] Error raised when the Team cannot be found. - # @return [ChgkRating::Models::Team] The requested Team. - # @param id [String or Integer] Team's id - # @param lazy [Boolean] Should the Team be lazily loaded? Default is `false`. - def team(id, lazy = false) - ChgkRating::Models::Team.new id, lazy: lazy - end - - # Returns a single Player - # - # @raise [ChgkRating::Error::NotFound] Error raised when the Player cannot be found. - # @return [ChgkRating::Models::Player] The requested Player. - # @param id [String or Integer] Player's id - # @param lazy [Boolean] Should the Player be lazily loaded? Default is `false`. - def player(id, lazy = false) - ChgkRating::Models::Player.new id, lazy: lazy - end - - # Returns a single Recap for a given Team - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. - # @return [ChgkRating::Models::Recap] The requested Recap. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load recaps for. - # @param season_id [String or Integer] Season to load recap for. - def recap(team_or_id, season_id) - team(team_or_id, true).recap(season_id) - end - - # Returns a single Tournament - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament cannot be found. - # @return [ChgkRating::Models::Tournament] The requested Tournament. - # @param id [String or Integer] Tournament's id - # @param lazy [Boolean] Should the Tournament be lazily loaded? Default is `false`. - def tournament(id, lazy = false) - ChgkRating::Models::Tournament.new id, lazy: lazy - end - - # Returns a single TournamentTeam - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. - # @return [ChgkRating::Models::TournamentTeam] The requested TournamentTeam. - # @param tournament_or_id [String, Integer or Tournament] Tournament to load team for. - # @param team_or_id [String, Integer or Team] Team to search for. - def team_at_tournament(tournament_or_id, team_or_id) - tournament(tournament_or_id, true).team(team_or_id) - end - - # Returns Rating for a given Team in a given release - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested release or Team cannot be found. - # @return [ChgkRating::Models::Rating] The requested Rating. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load rating for. - # @param release_id [String or Integer] Release to load rating for. - def rating(team_or_id, release_id) - team(team_or_id, true).rating(release_id) - end - - # Search - - # Returns a Players collection based on the search criteria. - # - # @return [ChgkRating::Collection::Players::Search] Found Players. - # @option params [String] :name Player's name - # @option params [String] :surname Player's surname - # @option params [String] :patronymic Player's patronymic - # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. - def search_players(params) - ChgkRating::Collections::Players.search request: params - end - - # Returns a Teams collection based on the search criteria. - # - # @return [ChgkRating::Collection::Teams::Search] Found Teams. - # @option params [String] :name Team's name - # @option params [String] :town Team's town of origin - # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. - def search_teams(params) - ChgkRating::Collections::Teams.search request: params - end - - # Collections - - # Returns an array-like Teams collection that contains Team models - # - # @return [ChgkRating::Collection::Teams] The collection of Teams. - # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. - # @option params [Boolean] :lazy Should the Teams models be marked as lazily loaded? - # Note that the models will still contain all the information returned by the API. - # @option params [Enumerable] :collection An array or collection of Teams that will be used to build a new - # collection. If this option is provided, API request will not be sent. - def teams(params = {}) - ChgkRating::Collections::Teams.new params - end - - # Returns an array-like Players collection that contains Player models - # - # @return [ChgkRating::Collection::Players] The collection of Players. - # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. - # @option params [Boolean] :lazy Should the Player models be marked as lazily loaded? - # Note that the models will still contain all the information returned by the API. - # @option params [Enumerable] :collection An array or collection of Players that will be used to build a new - # collection. If this option is provided, API request will not be sent. - def players(params = {}) - ChgkRating::Collections::Players.new params - end - - # Returns an hash-like Recaps collection for a given team, grouped by seasons. Seasons act - # as keys, whereas Recap models - as values. - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. - # @return [ChgkRating::Collection::Recaps] The collection of recaps. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load recaps for. - def recaps(team_or_id) - team(team_or_id, true).recaps - end - - # Returns a collection of Tournaments based on the given criteria - # - # @raise [ChgkRating::Error::NotFound] Error raised when nothing can be found based on the given criteria. - # @return [ChgkRating::Collection::Tournaments] The collection of tournaments. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load tournaments for. - # @param season_id [String or Integer] Season to load tournaments for - # @option params [String or Integer] :page The requested page. Default is 1 - def tournaments(team_or_id: nil, season_id: nil, params: {}) - ChgkRating::Collections::Tournaments.new params.merge(team: team_or_id, season_id: season_id) - end - - # Returns an array-like Ratings collection for a given team. - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. - # @return [ChgkRating::Collection::Ratings] The collection of ratings. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load ratings for. - def ratings(team_or_id) - team(team_or_id, true).ratings - end - - # Returns an array-like TournamentTeams collection specifying which teams participated in a given tournament - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament cannot be found. - # @return [ChgkRating::Collection::Ratings] The collection of teams. - # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load teams for. - def teams_at_tournament(tournament_or_id) - tournament(tournament_or_id, true).team_list - end - - # Returns an array-like TournamentTeamResults collection with results for a given team in a given - # tournament - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. - # @return [ChgkRating::Collection::TournamentTeamResults] The collection of results. - # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load results for. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load results for. - def team_results_at_tournament(tournament_or_id, team_or_id) - team_at_tournament(tournament_or_id, team_or_id).results - end - - # Returns an array-like TournamentPlayers collection containing roster for a - # given team at a given tournament. - # - # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. - # @return [ChgkRating::Collection::TournamentPlayers] The collection of results. - # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load players for. - # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load players for. - def team_players_at_tournament(tournament_or_id, team_or_id) - team_at_tournament(tournament_or_id, team_or_id).players - end - end +module ChgkRating + class Client + # Returns a single Team + # + # @raise [ChgkRating::Error::NotFound] Error raised when the Team cannot be found. + # @return [ChgkRating::Models::Team] The requested Team. + # @param id [String or Integer] Team's id + # @param lazy [Boolean] Should the Team be lazily loaded? Default is `false`. + def team(id, lazy = false) + ChgkRating::Models::Team.new id, lazy: lazy + end + + # Returns a single Player + # + # @raise [ChgkRating::Error::NotFound] Error raised when the Player cannot be found. + # @return [ChgkRating::Models::Player] The requested Player. + # @param id [String or Integer] Player's id + # @param lazy [Boolean] Should the Player be lazily loaded? Default is `false`. + def player(id, lazy = false) + ChgkRating::Models::Player.new id, lazy: lazy + end + + # Returns a single Recap for a given Team + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. + # @return [ChgkRating::Models::Recap] The requested Recap. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load recaps for. + # @param season_id [String or Integer] Season to load recap for. + def recap(team_or_id, season_id) + team(team_or_id, true).recap(season_id) + end + + # Returns a single Tournament + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament cannot be found. + # @return [ChgkRating::Models::Tournament] The requested Tournament. + # @param id [String or Integer] Tournament's id + # @param lazy [Boolean] Should the Tournament be lazily loaded? Default is `false`. + def tournament(id, lazy = false) + ChgkRating::Models::Tournament.new id, lazy: lazy + end + + # Returns a single TournamentTeam + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. + # @return [ChgkRating::Models::TournamentTeam] The requested TournamentTeam. + # @param tournament_or_id [String, Integer or Tournament] Tournament to load team for. + # @param team_or_id [String, Integer or Team] Team to search for. + def team_at_tournament(tournament_or_id, team_or_id) + tournament(tournament_or_id, true).team(team_or_id) + end + + # Returns Rating for a given Team in a given release + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested release or Team cannot be found. + # @return [ChgkRating::Models::Rating] The requested Rating. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load rating for. + # @param release_id [String or Integer] Release to load rating for. + def rating(team_or_id, release_id) + team(team_or_id, true).rating(release_id) + end + + # Search + + # Returns a Players collection based on the search criteria. + # + # @return [ChgkRating::Collection::Players::Search] Found Players. + # @option params [String] :name Player's name + # @option params [String] :surname Player's surname + # @option params [String] :patronymic Player's patronymic + # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. + def search_players(params) + ChgkRating::Collections::Players.search request: params + end + + # Returns a Teams collection based on the search criteria. + # + # @return [ChgkRating::Collection::Teams::Search] Found Teams. + # @option params [String] :name Team's name + # @option params [String] :town Team's town of origin + # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. + def search_teams(params) + ChgkRating::Collections::Teams.search request: params + end + + # Collections + + # Returns an array-like Teams collection that contains Team models + # + # @return [ChgkRating::Collection::Teams] The collection of Teams. + # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. + # @option params [Boolean] :lazy Should the Teams models be marked as lazily loaded? + # Note that the models will still contain all the information returned by the API. + # @option params [Enumerable] :collection An array or collection of Teams that will be used to build a new + # collection. If this option is provided, API request will not be sent. + def teams(params = {}) + ChgkRating::Collections::Teams.new params + end + + # Returns an array-like Players collection that contains Player models + # + # @return [ChgkRating::Collection::Players] The collection of Players. + # @option params [String or Integer] :page The requested page. Default is 1, and there are 1000 results per page. + # @option params [Boolean] :lazy Should the Player models be marked as lazily loaded? + # Note that the models will still contain all the information returned by the API. + # @option params [Enumerable] :collection An array or collection of Players that will be used to build a new + # collection. If this option is provided, API request will not be sent. + def players(params = {}) + ChgkRating::Collections::Players.new params + end + + # Returns an hash-like Recaps collection for a given team, grouped by seasons. Seasons act + # as keys, whereas Recap models - as values. + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. + # @return [ChgkRating::Collection::Recaps] The collection of recaps. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load recaps for. + def recaps(team_or_id) + team(team_or_id, true).recaps + end + + # Returns a collection of Tournaments based on the given criteria + # + # @raise [ChgkRating::Error::NotFound] Error raised when nothing can be found based on the given criteria. + # @return [ChgkRating::Collection::Tournaments] The collection of tournaments. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load tournaments for. + # @param season_id [String or Integer] Season to load tournaments for + # @option params [String or Integer] :page The requested page. Default is 1 + def tournaments(team_or_id: nil, season_id: nil, params: {}) + ChgkRating::Collections::Tournaments.new params.merge(team: team_or_id, season_id: season_id) + end + + # Returns an array-like Ratings collection for a given team. + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Team cannot be found. + # @return [ChgkRating::Collection::Ratings] The collection of ratings. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load ratings for. + def ratings(team_or_id) + team(team_or_id, true).ratings + end + + # Returns an array-like TournamentTeams collection specifying which teams participated in a given tournament + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament cannot be found. + # @return [ChgkRating::Collection::Ratings] The collection of teams. + # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load teams for. + def teams_at_tournament(tournament_or_id) + tournament(tournament_or_id, true).team_list + end + + # Returns an array-like TournamentTeamResults collection with results for a given team in a given + # tournament + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. + # @return [ChgkRating::Collection::TournamentTeamResults] The collection of results. + # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load results for. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load results for. + def team_results_at_tournament(tournament_or_id, team_or_id) + team_at_tournament(tournament_or_id, team_or_id).results + end + + # Returns an array-like TournamentPlayers collection containing roster for a + # given team at a given tournament. + # + # @raise [ChgkRating::Error::NotFound] Error raised when the requested Tournament or Team cannot be found. + # @return [ChgkRating::Collection::TournamentPlayers] The collection of results. + # @param tournament_or_id [String, Integer or ChgkRating::Models::Tournament] Tournament to load players for. + # @param team_or_id [String, Integer or ChgkRating::Models::Team] Team to load players for. + def team_players_at_tournament(tournament_or_id, team_or_id) + team_at_tournament(tournament_or_id, team_or_id).players + end + end end \ No newline at end of file