@@ -77,32 +77,30 @@ def resources(**options):
77
77
uri = ["resources" , resource_type ]
78
78
if upload_type :
79
79
uri .append (upload_type )
80
- params = only ( options , "next_cursor" , "max_results" , "prefix" , "tags" ,
81
- "context" , "moderations " , "direction" , " start_at", "metadata" )
80
+ params = __list_resources_params ( ** options )
81
+ params . update ( only ( options , "prefix " , "start_at" ) )
82
82
return call_api ("get" , uri , params , ** options )
83
83
84
84
85
85
def resources_by_tag (tag , ** options ):
86
86
resource_type = options .pop ("resource_type" , "image" )
87
87
uri = ["resources" , resource_type , "tags" , tag ]
88
- params = only (options , "next_cursor" , "max_results" , "tags" ,
89
- "context" , "moderations" , "direction" , "metadata" )
88
+ params = __list_resources_params (** options )
90
89
return call_api ("get" , uri , params , ** options )
91
90
92
91
93
92
def resources_by_moderation (kind , status , ** options ):
94
93
resource_type = options .pop ("resource_type" , "image" )
95
94
uri = ["resources" , resource_type , "moderations" , kind , status ]
96
- params = only (options , "next_cursor" , "max_results" , "tags" ,
97
- "context" , "moderations" , "direction" , "metadata" )
95
+ params = __list_resources_params (** options )
98
96
return call_api ("get" , uri , params , ** options )
99
97
100
98
101
99
def resources_by_ids (public_ids , ** options ):
102
100
resource_type = options .pop ("resource_type" , "image" )
103
101
upload_type = options .pop ("type" , "upload" )
104
102
uri = ["resources" , resource_type , upload_type ]
105
- params = dict (only ( options , "tags" , "moderations" , "context" ), public_ids = public_ids )
103
+ params = dict (__resources_params ( ** options ), public_ids = public_ids )
106
104
return call_api ("get" , uri , params , ** options )
107
105
108
106
@@ -118,7 +116,7 @@ def resources_by_asset_folder(asset_folder, **options):
118
116
:rtype: Response
119
117
"""
120
118
uri = ["resources" , "by_asset_folder" ]
121
- params = only ( options , "max_results" , "tags" , "moderations" , "context" , "next_cursor" )
119
+ params = __list_resources_params ( ** options )
122
120
params ["asset_folder" ] = asset_folder
123
121
return call_api ("get" , uri , params , ** options )
124
122
@@ -138,7 +136,7 @@ def resources_by_asset_ids(asset_ids, **options):
138
136
:rtype: Response
139
137
"""
140
138
uri = ["resources" , 'by_asset_ids' ]
141
- params = dict (only ( options , "tags" , "moderations" , "context" ), asset_ids = asset_ids )
139
+ params = dict (__resources_params ( ** options ), asset_ids = asset_ids )
142
140
return call_api ("get" , uri , params , ** options )
143
141
144
142
@@ -160,14 +158,42 @@ def resources_by_context(key, value=None, **options):
160
158
"""
161
159
resource_type = options .pop ("resource_type" , "image" )
162
160
uri = ["resources" , resource_type , "context" ]
163
- params = only (options , "next_cursor" , "max_results" , "tags" ,
164
- "context" , "moderations" , "direction" , "metadata" )
161
+ params = __list_resources_params (** options )
165
162
params ["key" ] = key
166
163
if value is not None :
167
164
params ["value" ] = value
168
165
return call_api ("get" , uri , params , ** options )
169
166
170
167
168
+ def __resources_params (** options ):
169
+ """
170
+ Prepares optional parameters for resources_* API calls.
171
+
172
+ :param options: Additional options
173
+ :return: Optional parameters
174
+
175
+ :internal
176
+ """
177
+ params = only (options , "tags" , "context" , "metadata" , "moderations" )
178
+ params ["fields" ] = options .get ("fields" ) and utils .encode_list (utils .build_array (options ["fields" ]))
179
+ return params
180
+
181
+
182
+ def __list_resources_params (** options ):
183
+ """
184
+ Prepares optional parameters for resources_* API calls.
185
+
186
+ :param options: Additional options
187
+ :return: Optional parameters
188
+
189
+ :internal
190
+ """
191
+ resources_params = __resources_params (** options )
192
+ resources_params .update (only (options , "next_cursor" , "max_results" , "direction" ))
193
+
194
+ return resources_params
195
+
196
+
171
197
def visual_search (image_url = None , image_asset_id = None , text = None , image_file = None , ** options ):
172
198
"""
173
199
Find images based on their visual content.
0 commit comments