@@ -4,20 +4,38 @@ module XIVAPI::Request
4
4
LODESTONE_LIMIT = 50 . freeze
5
5
ALL_CHARACTER_DATA = 'AC,FR,FC,FCM,PVP' . freeze
6
6
7
+ # Search
7
8
def search ( indexes : [ ] , string : '' , string_column : 'Name_en' , string_algo : 'wildcard_plus' ,
8
9
sort_field : nil , sort_order : nil , limit : 100 , filters : [ ] , columns : [ ] )
9
10
params = { indexes : [ *indexes ] . join ( ',' ) , string : string , string_column : string_column , string_algo : string_algo ,
10
11
sort_field : sort_field , sort_order : sort_order , filters : [ *filters ] . join ( ',' ) , columns : [ *columns ] . join ( ',' ) }
11
12
XIVAPI ::Paginator . new ( self , params , 'search' , limit )
12
13
end
13
14
15
+ # Content
16
+ def content ( name : nil , ids : [ ] , limit : 100 , columns : [ ] )
17
+ if name . nil?
18
+ request ( self , 'content' )
19
+ elsif [ *ids ] . size == 1
20
+ request ( "#{ name . capitalize } /#{ [ *ids ] . first } " )
21
+ else
22
+ params = { ids : [ *ids ] . join ( ',' ) , columns : [ *columns ] . join ( ',' ) }
23
+ XIVAPI ::Paginator . new ( self , params , name . capitalize , limit )
24
+ end
25
+ end
26
+
27
+ def servers
28
+ request ( self , 'servers' )
29
+ end
30
+
31
+ # Character
14
32
def character ( id : nil , all_data : false , poll : false , columns : [ ] )
15
33
params = { data : all_data ? ALL_CHARACTER_DATA : nil , columns : [ *columns ] . join ( ',' ) }
16
34
request_cached ( self , "character/#{ id } " , :character , params , poll )
17
35
end
18
36
19
- def character_search ( name : nil , server : nil )
20
- params = { name : name , server : server &.capitalize }
37
+ def character_search ( name : nil , server : nil , columns : [ ] )
38
+ params = { name : name , server : server &.capitalize , columns : [ * columns ] . join ( ',' ) }
21
39
XIVAPI ::Paginator . new ( self , params , 'character/search' , LODESTONE_LIMIT )
22
40
end
23
41
@@ -33,19 +51,4 @@ def character_update(id: nil)
33
51
def character_verified? ( id : nil )
34
52
request ( self , "character/#{ id } /verification" ) . verification_token_pass
35
53
end
36
-
37
- def content ( name : nil , ids : [ ] , limit : 100 , columns : [ ] )
38
- if name . nil?
39
- request ( self , 'content' )
40
- elsif [ *ids ] . size == 1
41
- request ( "#{ name . capitalize } /#{ [ *ids ] . first } " )
42
- else
43
- params = { ids : [ *ids ] . join ( ',' ) , columns : [ *columns ] . join ( ',' ) }
44
- XIVAPI ::Paginator . new ( self , params , name . capitalize , limit )
45
- end
46
- end
47
-
48
- def servers
49
- request ( self , 'servers' )
50
- end
51
54
end
0 commit comments