Class: Supabase::Postgrest::QueryRequestBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/supabase/postgrest/request_builder.rb

Overview

Builder returned by select() / insert() / upsert() / update() / delete() — call #execute to fire.

Direct Known Subclasses

FilterRequestBuilder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ QueryRequestBuilder

Returns a new instance of QueryRequestBuilder.



388
389
390
391
# File 'lib/supabase/postgrest/request_builder.rb', line 388

def initialize(request)
  @request = request
  @negate_next = false
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



386
387
388
# File 'lib/supabase/postgrest/request_builder.rb', line 386

def request
  @request
end

Instance Method Details

#executeObject



408
409
410
411
412
413
414
415
# File 'lib/supabase/postgrest/request_builder.rb', line 408

def execute
  response = RequestExec.send_with_retry(@request)
  if (200..299).include?(response.status)
    APIResponse.from_response(response, request_prefer: @request.headers["Prefer"])
  else
    raise RequestExec.parse_error(response)
  end
end

#retry(enabled) ⇒ Object



393
394
395
396
# File 'lib/supabase/postgrest/request_builder.rb', line 393

def retry(enabled)
  @request.retry_enabled = enabled
  self
end

#select(*columns) ⇒ Object



398
399
400
401
402
403
404
405
406
# File 'lib/supabase/postgrest/request_builder.rb', line 398

def select(*columns)
  _, params, _, _ = RequestPrep.pre_select(*columns, count: nil)
  @request.params["select"] = params["select"]
  prefer = @request.headers["Prefer"] || ""
  parts = prefer.split(",").reject { |h| h.start_with?("return=") }
  parts << "return=representation"
  @request.headers["Prefer"] = parts.join(",")
  self
end