lib/smartsheet/general_request.rb in smartsheet-1.0.0 vs lib/smartsheet/general_request.rb in smartsheet-1.1.0

- old
+ new

@@ -1,75 +1,75 @@ -require 'smartsheet/api/file_spec' - -module Smartsheet - module GeneralRequest - # Create a custom request using a provided method and URL path - # @example Make a GET request to 'https://api.smartsheet.com/2.0/sheets/list' - # client.request(method: :get, url_path: 'sheets/list') - def request(method:, url_path:, body: nil, params: {}, header_overrides: {}) - spec = body.nil? ? {} : {body_type: :json} - endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], **spec) - request_spec = Smartsheet::API::RequestSpec.new( - header_overrides: header_overrides, - body: body, - params: params - ) - client.make_request(endpoint_spec, request_spec) - end - - # Create a custom request using a provided method, URL path, and file details - # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file - # client.request_with_file( - # method: :get, - # url_path: 'sheets/1/attachments', - # file: File.open('my-file.docx'), - # file_length: 1000, - # filename: 'my-uploaded-file.docx', - # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - # ) - def request_with_file( - method:, - url_path:, - file:, - file_length:, - filename:, - content_type: '', - params: {}, - header_overrides: {} - ) - endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file) - request_spec = Smartsheet::API::RequestSpec.new( - header_overrides: header_overrides, - params: params, - file_spec: Smartsheet::API::ObjectFileSpec.new(file, filename, file_length, content_type) - ) - client.make_request(endpoint_spec, request_spec) - end - - # Create a custom request using a provided method, URL path, and filepath details - # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file - # client.request_with_file_from_path( - # method: :get, - # url_path: 'sheets/1/attachments', - # path: './my-file.docx', - # filename: 'my-uploaded-file.docx', - # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - # ) - def request_with_file_from_path( - method:, - url_path:, - path:, - filename: nil, - content_type: '', - params: {}, - header_overrides: {} - ) - endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file) - request_spec = Smartsheet::API::RequestSpec.new( - header_overrides: header_overrides, - params: params, - file_spec: Smartsheet::API::PathFileSpec.new(path, filename, content_type) - ) - client.make_request(endpoint_spec, request_spec) - end - end +require 'smartsheet/api/file_spec' + +module Smartsheet + module GeneralRequest + # Create a custom request using a provided method and URL path + # @example Make a GET request to 'https://api.smartsheet.com/2.0/sheets/list' + # client.request(method: :get, url_path: 'sheets/list') + def request(method:, url_path:, body: nil, params: {}, header_overrides: {}) + spec = body.nil? ? {} : {body_type: :json} + endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], **spec) + request_spec = Smartsheet::API::RequestSpec.new( + header_overrides: header_overrides, + body: body, + params: params + ) + client.make_request(endpoint_spec, request_spec) + end + + # Create a custom request using a provided method, URL path, and file details + # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file + # client.request_with_file( + # method: :get, + # url_path: 'sheets/1/attachments', + # file: File.open('my-file.docx'), + # file_length: 1000, + # filename: 'my-uploaded-file.docx', + # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' + # ) + def request_with_file( + method:, + url_path:, + file:, + file_length:, + filename:, + content_type: '', + params: {}, + header_overrides: {} + ) + endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file) + request_spec = Smartsheet::API::RequestSpec.new( + header_overrides: header_overrides, + params: params, + file_spec: Smartsheet::API::ObjectFileSpec.new(file, filename, file_length, content_type) + ) + client.make_request(endpoint_spec, request_spec) + end + + # Create a custom request using a provided method, URL path, and filepath details + # @example Make a POST request to 'https://api.smartsheet.com/2.0/sheets/1/attachments' with a file + # client.request_with_file_from_path( + # method: :get, + # url_path: 'sheets/1/attachments', + # path: './my-file.docx', + # filename: 'my-uploaded-file.docx', + # content_type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' + # ) + def request_with_file_from_path( + method:, + url_path:, + path:, + filename: nil, + content_type: '', + params: {}, + header_overrides: {} + ) + endpoint_spec = Smartsheet::API::EndpointSpec.new(method, [url_path], body_type: :file) + request_spec = Smartsheet::API::RequestSpec.new( + header_overrides: header_overrides, + params: params, + file_spec: Smartsheet::API::PathFileSpec.new(path, filename, content_type) + ) + client.make_request(endpoint_spec, request_spec) + end + end end \ No newline at end of file