Class: Supabase::Postgrest::MaybeSingleRequestBuilder
- Inherits:
-
Object
- Object
- Supabase::Postgrest::MaybeSingleRequestBuilder
- Defined in:
- lib/supabase/postgrest/request_builder.rb
Overview
Returned by select().maybe_single() — yields the row or nil, raises on >1 result.
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(request) ⇒ MaybeSingleRequestBuilder
constructor
A new instance of MaybeSingleRequestBuilder.
- #retry(enabled) ⇒ Object
Constructor Details
#initialize(request) ⇒ MaybeSingleRequestBuilder
Returns a new instance of MaybeSingleRequestBuilder.
451 452 453 |
# File 'lib/supabase/postgrest/request_builder.rb', line 451 def initialize(request) @request = request end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
449 450 451 |
# File 'lib/supabase/postgrest/request_builder.rb', line 449 def request @request end |
Instance Method Details
#execute ⇒ Object
460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 |
# File 'lib/supabase/postgrest/request_builder.rb', line 460 def execute response = RequestExec.send_with_retry(@request) unless (200..299).include?(response.status) raise RequestExec.parse_error(response) end parsed = APIResponse.from_response(response, request_prefer: @request.headers["Prefer"]) return nil if parsed.data.is_a?(Array) && parsed.data.empty? if parsed.data.is_a?(Array) && parsed.data.length == 1 SingleAPIResponse.new(data: parsed.data.first, count: parsed.count) else raise Errors::APIError.new( "message" => "Cannot coerce the result to a single JSON object", "code" => "406", "hint" => "Please check the result set", "details" => "The result contains more than one row." ) end end |
#retry(enabled) ⇒ Object
455 456 457 458 |
# File 'lib/supabase/postgrest/request_builder.rb', line 455 def retry(enabled) @request.retry_enabled = enabled self end |