Sha256: 5c1e7127f62c92b3a74444602a01dbd3d9bb1f9b4c7ca6fe3a6ba710494e72d5

Contents?: true

Size: 1.81 KB

Versions: 4

Compression:

Stored size: 1.81 KB

Contents

# frozen_string_literal: true
# typed: true


module WorkOS
  # Parent class for WorkOS related errors
  class WorkOSError < StandardError
    extend T::Sig

    attr_reader :http_status
    attr_reader :request_id

    sig do
      params(
        message: T.nilable(String),
        error: T.nilable(String),
        error_description: T.nilable(String),
        http_status: T.nilable(Integer),
        request_id: T.nilable(String),
      ).void
    end
    def initialize(message: nil, error: nil, error_description: nil, http_status: nil, request_id: nil)
      @message = message
      @error = error
      @error_description = error_description
      @http_status = http_status
      @request_id = request_id
    end

    sig { returns(String) }
    def to_s
      status_string = @http_status.nil? ? '' : "Status #{@http_status}, "
      id_string = @request_id.nil? ? '' : " - request ID: #{@request_id}"
      if @error && @error_description
        error_string = "error: #{@error}, error_description: #{@error_description}"
        "#{status_string}#{error_string}#{id_string}"
      elsif @error
        "#{status_string}#{@error}#{id_string}"
      else
        "#{status_string}#{@message}#{id_string}"
      end
    end
  end

  # APIError is a generic error that may be raised in cases where none of the
  # other named errors cover the problem. It could also be raised in the case
  # that a new error has been introduced in the API, but this version of the
  # Ruby SDK doesn't know how to handle it.
  class APIError < WorkOSError; end

  # AuthenticationError is raised when invalid credentials are used to connect
  # to WorkOS's servers.
  class AuthenticationError < WorkOSError; end

  # InvalidRequestError is raised when a request is initiated with invalid
  # parameters.
  class InvalidRequestError < WorkOSError; end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
workos-1.5.1 lib/workos/errors.rb
workos-1.5.0 lib/workos/errors.rb
workos-1.4.0 lib/workos/errors.rb
workos-1.3.0 lib/workos/errors.rb