class Nextcloud::Ruby::Api
Public Class Methods
new(method, path, payload = nil)
click to toggle source
# File lib/nextcloud/ruby/api.rb, line 4 def initialize(method, path, payload = nil) @method = method @payload = payload @path = Addressable::URI .join(Nextcloud::Ruby.configuration.dav_url.to_s, path) @uri = Nextcloud::Ruby.configuration.dav_url @username = Nextcloud::Ruby.configuration.username @password = Nextcloud::Ruby.configuration.password init_request end
request(method, path, payload = nil)
click to toggle source
# File lib/nextcloud/ruby/api.rb, line 15 def self.request(method, path, payload = nil) new(method, path, payload).request end
Public Instance Methods
request()
click to toggle source
# File lib/nextcloud/ruby/api.rb, line 19 def request response = Net::HTTP.start(@uri.host, @uri.port, use_ssl: @uri.scheme == 'https') do |http| http.request(@request) end Response.new(response.body, response.code.to_i) end
Private Instance Methods
init_request()
click to toggle source
# File lib/nextcloud/ruby/api.rb, line 29 def init_request @request = net_http_class.new(@path) @request.body = @payload if @payload @request.basic_auth @username, @password end
net_http_class()
click to toggle source
# File lib/nextcloud/ruby/api.rb, line 35 def net_http_class Kernel.const_get("Net::HTTP::#{@method.capitalize}") end