class Postgrest::Builders::QueryBuilder

Attributes

headers[R]
schema[R]
uri[R]

Public Class Methods

new(url:, headers:, schema:) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 8
def initialize(url:, headers:, schema:)
  @uri = URI(url)
  @headers = headers
  @schema = schema
end

Public Instance Methods

delete(extra_headers: {}) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 40
def delete(extra_headers: {})
  extra_headers[:Prefer] ||= 'return=representation'
  request = HTTP.new(uri: uri, http_method: :delete, headers: headers.merge(extra_headers))

  FilterBuilder.new(request)
end
insert(values) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 22
def insert(values)
  upsert(values, extra_headers: { Prefer: 'return=representation' })
end
select(*columns, extra_headers: {}) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 14
def select(*columns, extra_headers: {})
  columns.compact!
  columns = ['*'] if columns.length.zero?
  request = HTTP.new(uri: uri, query: { select: columns.join(',') }, headers: headers.merge(extra_headers))

  FilterBuilder.new(request)
end
update(values, extra_headers: {}) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 33
def update(values, extra_headers: {})
  extra_headers[:Prefer] ||= 'return=representation'
  request = HTTP.new(uri: uri, body: values, http_method: :patch, headers: headers.merge(extra_headers))

  FilterBuilder.new(request)
end
upsert(values, extra_headers: {}) click to toggle source
# File lib/postgrest/builders/query_builder.rb, line 26
def upsert(values, extra_headers: {})
  extra_headers[:Prefer] ||= 'return=representation,resolution=merge-duplicates'
  request = HTTP.new(uri: uri, body: values, http_method: :post, headers: headers.merge(extra_headers))

  BaseBuilder.new(request)
end