Class: Believe::Resources::TeamMembers
- Inherits:
-
Object
- Object
- Believe::Resources::TeamMembers
- Defined in:
- lib/believe/resources/team_members.rb
Overview
Team members with union types (oneOf) - Players, Coaches, Medical Staff, Equipment Managers
Instance Method Summary collapse
-
#create(member:, request_options: {}) ⇒ ::Believe::Models::Player, ...
Add a new team member to a team.
-
#delete(member_id, request_options: {}) ⇒ nil
Remove a team member from the roster.
-
#initialize(client:) ⇒ TeamMembers
constructor
private
A new instance of TeamMembers.
-
#list(limit: nil, member_type: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Player, ::Believe::Models::Coach, ::Believe::Models::MedicalStaff, ::Believe::Models::EquipmentManager>
Get a paginated list of all team members.
-
#list_coaches(limit: nil, skip: nil, specialty: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Coach>
Get only coaches (filtered subset of team members).
-
#list_players(limit: nil, position: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Player>
Get only players (filtered subset of team members).
-
#list_staff(limit: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::MedicalStaff, ::Believe::Models::EquipmentManager>
Get all staff members (medical staff and equipment managers).
-
#retrieve(member_id, request_options: {}) ⇒ ::Believe::Models::Player, ...
Retrieve detailed information about a specific team member.
-
#update(member_id, updates:, request_options: {}) ⇒ ::Believe::Models::Player, ...
Update specific fields of an existing team member.
Constructor Details
#initialize(client:) ⇒ TeamMembers
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of TeamMembers.
262 263 264 |
# File 'lib/believe/resources/team_members.rb', line 262 def initialize(client:) @client = client end |
Instance Method Details
#create(member:, request_options: {}) ⇒ ::Believe::Models::Player, ...
Add a new team member to a team.
The request body is a **union type (oneOf)** - you must include the ‘member_type` discriminator field:
-
‘“member_type”: “player”` - Creates a player (requires position, jersey_number, etc.)
-
‘“member_type”: “coach”` - Creates a coach (requires specialty, etc.)
-
‘“member_type”: “medical_staff”` - Creates medical staff (requires medical specialty, etc.)
-
‘“member_type”: “equipment_manager”` - Creates equipment manager (requires responsibilities, etc.)
The ‘character_id` field references an existing character from `/characters/id`.
**Example for creating a player:**
“‘json
"member_type": "player",
"character_id": "sam-obisanya",
"team_id": "afc-richmond",
"years_with_team": 2,
"position": "midfielder",
"jersey_number": 24,
"goals_scored": 12,
"assists": 15
“‘
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/believe/resources/team_members.rb', line 48 def create(params) parsed, = ::Believe::TeamMemberCreateParams.dump_request(params) @client.request( method: :post, path: "team-members", body: parsed[:member], model: ::Believe::Models::TeamMemberCreateResponse, options: ) end |
#delete(member_id, request_options: {}) ⇒ nil
Remove a team member from the roster.
159 160 161 162 163 164 165 166 |
# File 'lib/believe/resources/team_members.rb', line 159 def delete(member_id, params = {}) @client.request( method: :delete, path: ["team-members/%1$s", member_id], model: NilClass, options: params[:request_options] ) end |
#list(limit: nil, member_type: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Player, ::Believe::Models::Coach, ::Believe::Models::MedicalStaff, ::Believe::Models::EquipmentManager>
Get a paginated list of all team members.
This endpoint demonstrates **union types (oneOf)** in the response. Each team member can be one of: Player, Coach, MedicalStaff, or EquipmentManager. The ‘member_type` field acts as a discriminator to determine the shape of each object.
136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/believe/resources/team_members.rb', line 136 def list(params = {}) parsed, = ::Believe::TeamMemberListParams.dump_request(params) query = ::Believe::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "team-members", query: query, page: ::Believe::Internal::SkipLimitPage, model: ::Believe::Models::TeamMemberListResponse, options: ) end |
#list_coaches(limit: nil, skip: nil, specialty: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Coach>
Get only coaches (filtered subset of team members).
185 186 187 188 189 190 191 192 193 194 195 196 |
# File 'lib/believe/resources/team_members.rb', line 185 def list_coaches(params = {}) parsed, = ::Believe::TeamMemberListCoachesParams.dump_request(params) query = ::Believe::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "team-members/coaches/", query: query, page: ::Believe::Internal::SkipLimitPage, model: ::Believe::Coach, options: ) end |
#list_players(limit: nil, position: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::Player>
Get only players (filtered subset of team members).
215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/believe/resources/team_members.rb', line 215 def list_players(params = {}) parsed, = ::Believe::TeamMemberListPlayersParams.dump_request(params) query = ::Believe::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "team-members/players/", query: query, page: ::Believe::Internal::SkipLimitPage, model: ::Believe::Player, options: ) end |
#list_staff(limit: nil, skip: nil, team_id: nil, request_options: {}) ⇒ ::Believe::Internal::SkipLimitPage<::Believe::Models::MedicalStaff, ::Believe::Models::EquipmentManager>
Get all staff members (medical staff and equipment managers).
This demonstrates a **narrower union type** - the response is oneOf MedicalStaff or EquipmentManager.
246 247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/believe/resources/team_members.rb', line 246 def list_staff(params = {}) parsed, = ::Believe::TeamMemberListStaffParams.dump_request(params) query = ::Believe::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "team-members/staff/", query: query, page: ::Believe::Internal::SkipLimitPage, model: ::Believe::Models::TeamMemberListStaffResponse, options: ) end |
#retrieve(member_id, request_options: {}) ⇒ ::Believe::Models::Player, ...
Retrieve detailed information about a specific team member.
The response is a **union type (oneOf)** - the actual shape depends on the member’s type:
-
player: Includes position, jersey_number, goals_scored, assists, is_captain
-
coach: Includes specialty, certifications, win_rate
-
medical_staff: Includes specialty, qualifications, license_number
-
equipment_manager: Includes responsibilities, is_head_kitman
Use ‘character_id` to fetch full character details from `/characters/character_id`.
81 82 83 84 85 86 87 88 |
# File 'lib/believe/resources/team_members.rb', line 81 def retrieve(member_id, params = {}) @client.request( method: :get, path: ["team-members/%1$s", member_id], model: ::Believe::Models::TeamMemberRetrieveResponse, options: params[:request_options] ) end |
#update(member_id, updates:, request_options: {}) ⇒ ::Believe::Models::Player, ...
Update specific fields of an existing team member. Fields vary by member type.
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/believe/resources/team_members.rb', line 103 def update(member_id, params) parsed, = ::Believe::TeamMemberUpdateParams.dump_request(params) @client.request( method: :patch, path: ["team-members/%1$s", member_id], body: parsed[:updates], model: ::Believe::Models::TeamMemberUpdateResponse, options: ) end |