File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -490,6 +490,37 @@ def writable_enum(&blk)
490490 JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491491
492492 class << self
493+ # @api private
494+ #
495+ # @param query [Hash{Symbol=>Object}]
496+ #
497+ # @return [Hash{Symbol=>Object}]
498+ def encode_query_params ( query )
499+ out = { }
500+ query . each { write_query_param_element! ( out , _1 , _2 ) }
501+ out
502+ end
503+
504+ # @api private
505+ #
506+ # @param collection [Hash{Symbol=>Object}]
507+ # @param key [String]
508+ # @param element [Object]
509+ #
510+ # @return [nil]
511+ private def write_query_param_element! ( collection , key , element )
512+ case element
513+ in Hash
514+ element . each do |name , value |
515+ write_query_param_element! ( collection , "#{ key } [#{ name } ]" , value )
516+ end
517+ in Array
518+ collection [ key ] = element . map ( &:to_s ) . join ( "," )
519+ else
520+ collection [ key ] = element . to_s
521+ end
522+ end
523+
493524 # @api private
494525 #
495526 # @param y [Enumerator::Yielder]
Original file line number Diff line number Diff line change @@ -25,10 +25,11 @@ class Usage
2525 # @see Imagekitio::Models::Accounts::UsageGetParams
2626 def get ( params )
2727 parsed , options = Imagekitio ::Accounts ::UsageGetParams . dump_request ( params )
28+ query = Imagekitio ::Internal ::Util . encode_query_params ( parsed )
2829 @client . request (
2930 method : :get ,
3031 path : "v1/accounts/usage" ,
31- query : parsed . transform_keys ( end_date : "endDate" , start_date : "startDate" ) ,
32+ query : query . transform_keys ( end_date : "endDate" , start_date : "startDate" ) ,
3233 model : Imagekitio ::Models ::Accounts ::UsageGetResponse ,
3334 options : options
3435 )
Original file line number Diff line number Diff line change @@ -34,10 +34,11 @@ class Assets
3434 # @see Imagekitio::Models::AssetListParams
3535 def list ( params = { } )
3636 parsed , options = Imagekitio ::AssetListParams . dump_request ( params )
37+ query = Imagekitio ::Internal ::Util . encode_query_params ( parsed )
3738 @client . request (
3839 method : :get ,
3940 path : "v1/files" ,
40- query : parsed . transform_keys ( file_type : "fileType" , search_query : "searchQuery" ) ,
41+ query : query . transform_keys ( file_type : "fileType" , search_query : "searchQuery" ) ,
4142 model : Imagekitio ::Internal ::Type ::ArrayOf [ union : Imagekitio ::Models ::AssetListResponseItem ] ,
4243 options : options
4344 )
Original file line number Diff line number Diff line change @@ -89,10 +89,11 @@ def update(id, params = {})
8989 # @see Imagekitio::Models::CustomMetadataFieldListParams
9090 def list ( params = { } )
9191 parsed , options = Imagekitio ::CustomMetadataFieldListParams . dump_request ( params )
92+ query = Imagekitio ::Internal ::Util . encode_query_params ( parsed )
9293 @client . request (
9394 method : :get ,
9495 path : "v1/customMetadataFields" ,
95- query : parsed . transform_keys ( folder_path : "folderPath" , include_deleted : "includeDeleted" ) ,
96+ query : query . transform_keys ( folder_path : "folderPath" , include_deleted : "includeDeleted" ) ,
9697 model : Imagekitio ::Internal ::Type ::ArrayOf [ Imagekitio ::CustomMetadataField ] ,
9798 options : options
9899 )
Original file line number Diff line number Diff line change @@ -48,10 +48,11 @@ def get(file_id, params = {})
4848 # @see Imagekitio::Models::Files::MetadataGetFromURLParams
4949 def get_from_url ( params )
5050 parsed , options = Imagekitio ::Files ::MetadataGetFromURLParams . dump_request ( params )
51+ query = Imagekitio ::Internal ::Util . encode_query_params ( parsed )
5152 @client . request (
5253 method : :get ,
5354 path : "v1/metadata" ,
54- query : parsed ,
55+ query : query ,
5556 model : Imagekitio ::Metadata ,
5657 options : options
5758 )
Original file line number Diff line number Diff line change @@ -301,6 +301,26 @@ module Imagekitio
301301 T . let ( %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} , Regexp )
302302
303303 class << self
304+ # @api private
305+ sig do
306+ params ( query : Imagekitio ::Internal ::AnyHash ) . returns (
307+ Imagekitio ::Internal ::AnyHash
308+ )
309+ end
310+ def encode_query_params ( query )
311+ end
312+
313+ # @api private
314+ sig do
315+ params (
316+ collection : Imagekitio ::Internal ::AnyHash ,
317+ key : String ,
318+ element : T . anything
319+ ) . void
320+ end
321+ private def write_query_param_element! ( collection , key , element )
322+ end
323+
304324 # @api private
305325 sig do
306326 params (
Original file line number Diff line number Diff line change @@ -106,6 +106,16 @@ module Imagekitio
106106 JSON_CONTENT: Regexp
107107 JSONL_CONTENT: Regexp
108108
109+ def encode_query_params : (
110+ ::Hash[Symbol, top ] query
111+ ) -> ::Hash[Symbol, top ]
112+
113+ private def write_query_param_element! : (
114+ ::Hash[Symbol, top ] collection,
115+ String key,
116+ top element
117+ ) -> nil
118+
109119 def self?.write_multipart_content : (
110120 Enumerator::Yielder y,
111121 val: top ,
You can’t perform that action at this time.
0 commit comments