Class: Whop_sdk::Files::Client
- Inherits:
-
Object
- Object
- Whop_sdk::Files::Client
- Defined in:
- lib/whop_sdk/files/client.rb
Instance Method Summary collapse
-
#complete(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Assembles the parts of a multipart upload after every part has been PUT to its presigned URL.
-
#create(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Creates a file and returns a presigned destination to upload its bytes to.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Whop_sdk::Files::Types::ListFilesResponse
Returns the files with the given IDs, newest first — fetch a batch in one request instead of retrieving each file individually.
-
#retrieve(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Retrieves a file you uploaded — poll it after uploading the bytes to see
upload_statusbecomeready.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/whop_sdk/files/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#complete(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Assembles the parts of a multipart upload after every part has been PUT to its presigned URL. Pass the
multipart_upload_id from Create File and each part's ETag response header. For a step-by-step walkthrough of
multipart uploads, see the direct file uploads guide.
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/whop_sdk/files/client.rb', line 180 def complete(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request_data = Whop_sdk::Files::Types::CompleteFilesRequest.new(params).to_h non_body_param_names = %w[id] body = request_data.except(*non_body_param_names) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "files/#{URI.encode_uri_component(params[:id].to_s)}/complete", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::File.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#create(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Creates a file and returns a presigned destination to upload its bytes to. PUT the bytes to upload_url
(single-part), or to each of multipart_upload_urls and then call Complete File Multipart Upload. Once the
bytes land the file becomes ready, and its ID can be attached wherever a file is accepted — account legal
documents, dispute evidence documents. For a step-by-step walkthrough of single-part and multipart uploads, see
the direct file uploads guide.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/whop_sdk/files/client.rb', line 95 def create(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "files", body: Whop_sdk::Files::Types::CreateFilesRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::File.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ Whop_sdk::Files::Types::ListFilesResponse
Returns the files with the given IDs, newest first — fetch a batch in one request instead of retrieving each
file individually. Only files you created are returned; IDs that do not exist, or that another credential
created, are omitted. A request for up to 100 IDs answers in a single page by default; a larger batch pages at
up to 100 files per response — follow page_info with the same file_ids to walk the rest.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/whop_sdk/files/client.rb', line 37 def list(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["file_ids"] = params[:file_ids] if params.key?(:file_ids) query_params["order"] = params[:order] if params.key?(:order) query_params["direction"] = params[:direction] if params.key?(:direction) query_params["first"] = params[:first] if params.key?(:first) query_params["after"] = params[:after] if params.key?(:after) query_params["last"] = params[:last] if params.key?(:last) query_params["before"] = params[:before] if params.key?(:before) Whop_sdk::Internal::CursorItemIterator.new( cursor_field: :end_cursor, item_field: :data, initial_cursor: query_params["after"] ) do |next_cursor| query_params["after"] = next_cursor request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "files", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = Whop_sdk::Files::Types::ListFilesResponse.load(response.body) [parsed_response, response] else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |
#retrieve(request_options: {}, **params) ⇒ Whop_sdk::Types::File
Retrieves a file you uploaded — poll it after uploading the bytes to see upload_status become ready. Only
the creator can retrieve a file this way; a file attached to another resource is read through that resource.
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/whop_sdk/files/client.rb', line 134 def retrieve(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "files/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::File.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |