Class: Supabase::Postgrest::RPCFilterRequestBuilder

Inherits:
SingleRequestBuilder show all
Includes:
FilterMixin, SelectMixin
Defined in:
lib/supabase/postgrest/request_builder.rb

Overview

Returned by rpc() — filters + select modifiers + result-shape switchers, returning SingleAPIResponse instead of APIResponse because PostgREST returns a single value.

Instance Attribute Summary

Attributes inherited from SingleRequestBuilder

#request

Instance Method Summary collapse

Methods included from SelectMixin

#limit, #offset, #order, #range

Methods included from FilterMixin

#adj, #cd, #contained_by, #contains, #cs, #eq, #filter, #fts, #gt, #gte, #ilike, #ilike_all_of, #ilike_any_of, #in_, #is_, #like, #like_all_of, #like_any_of, #lt, #lte, #match, #max_affected, #neq, #not_, #nxl, #nxr, #or_, #ov, #overlaps, #phfts, #plfts, #range_adjacent, #range_gt, #range_gte, #range_lt, #range_lte, #sl, #sr, #wfts

Methods inherited from SingleRequestBuilder

#execute, #retry

Constructor Details

#initialize(request) ⇒ RPCFilterRequestBuilder

Returns a new instance of RPCFilterRequestBuilder.



559
560
561
562
# File 'lib/supabase/postgrest/request_builder.rb', line 559

def initialize(request)
  super
  @negate_next = false
end

Instance Method Details

#csvObject



583
584
585
586
# File 'lib/supabase/postgrest/request_builder.rb', line 583

def csv
  @request.headers["Accept"] = "text/csv"
  self
end

#maybe_singleObject



578
579
580
581
# File 'lib/supabase/postgrest/request_builder.rb', line 578

def maybe_single
  @request.headers["Accept"] = "application/vnd.pgrst.object+json"
  self
end

#select(*columns) ⇒ Object



564
565
566
567
568
569
570
571
# File 'lib/supabase/postgrest/request_builder.rb', line 564

def select(*columns)
  _, params, _, _ = RequestPrep.pre_select(*columns, count: nil)
  existing = @request.params["select"]
  @request.params["select"] = existing ? "#{existing},#{params['select']}" : params["select"]
  prefer = @request.headers["Prefer"] || ""
  @request.headers["Prefer"] = prefer.empty? ? "return=representation" : "#{prefer},return=representation"
  self
end

#singleObject



573
574
575
576
# File 'lib/supabase/postgrest/request_builder.rb', line 573

def single
  @request.headers["Accept"] = "application/vnd.pgrst.object+json"
  self
end