@@ -94,22 +94,17 @@ def market_categories
9494 # @param columns [String, Array <String>] One or more columns to limit results to
9595 # @return [OpenStruct] The requested character
9696 def character ( id : nil , all_data : false , poll : false , data : [ ] , columns : [ ] )
97- if all_data
98- data = ALL_CHARACTER_DATA
99- else
100- data = [ *data ] . join ( ',' )
101- end
102-
103- params = { data : data , columns : [ *columns ] . join ( ',' ) }
97+ params = { data : character_data ( all_data , data ) , columns : [ *columns ] . join ( ',' ) }
10498 request_cached ( self , "character/#{ id } " , :character , params , poll )
10599 end
106100
107101 # @param ids [String, Array<Integer>] Character IDs
108102 # @param all_data [true, false] Return the full set of character data
103+ # @param data [String, Array <String>] Additional data to request, see: https://xivapi.com/docs/Character#character
109104 # @param columns [String, Array <String>] One or more columns to limit results to
110105 # @return [Array<OpenStruct>] The requested characters
111- def characters ( ids : nil , all_data : false , columns : [ ] )
112- body = { ids : [ *ids ] . join ( ',' ) , data : all_data ? ALL_CHARACTER_DATA : nil , columns : [ *columns ] . join ( ',' ) }
106+ def characters ( ids : nil , all_data : false , data : [ ] , columns : [ ] )
107+ body = { ids : [ *ids ] . join ( ',' ) , data : character_data ( all_data , data ) , columns : [ *columns ] . join ( ',' ) }
113108 request ( self , 'characters' , { } , body )
114109 end
115110
@@ -201,4 +196,9 @@ def lodestone(category)
201196 def patch_list
202197 request ( self , 'patchlist' )
203198 end
199+
200+ private
201+ def character_data ( all_data , data )
202+ all_data ? ALL_CHARACTER_DATA : [ *data ] . join ( ',' )
203+ end
204204end
0 commit comments