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.



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

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

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



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

def request
  @request
end

Instance Method Details

#executeObject



414
415
416
417
418
419
420
421
# File 'lib/supabase/postgrest/request_builder.rb', line 414

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



399
400
401
402
# File 'lib/supabase/postgrest/request_builder.rb', line 399

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

#select(*columns) ⇒ Object



404
405
406
407
408
409
410
411
412
# File 'lib/supabase/postgrest/request_builder.rb', line 404

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