Exception: AtlasRb::ForbiddenError

Inherits:
Error
  • Object
show all
Defined in:
lib/atlas_rb/errors.rb

Overview

Note:

Scoped to the re-parent / linked-member write paths — 403s on other endpoints still surface as raw responses for the caller's own rescue layer, unchanged.

Raised when Atlas refuses a re-parent or linked-member write with an HTTP 403, whose envelope is { "error", "action", "subject" }. Lets callers distinguish "you may not do this" from a structural rejection (ReparentError / LinkedMemberError) or a not-found.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, code: nil, action: nil, subject: nil) ⇒ ForbiddenError

Returns a new instance of ForbiddenError.

Parameters:

  • message (String)

    human-readable authorization-failure description.

  • code (String, nil) (defaults to: nil)

    the envelope's error value.

  • action (String, nil) (defaults to: nil)

    the forbidden action.

  • subject (String, nil) (defaults to: nil)

    the subject the action was forbidden on.



126
127
128
129
130
131
# File 'lib/atlas_rb/errors.rb', line 126

def initialize(message, code: nil, action: nil, subject: nil)
  super(message)
  @code = code
  @action = action
  @subject = subject
end

Instance Attribute Details

#actionString? (readonly)

Returns the action that was forbidden (e.g. "reparent").

Returns:

  • (String, nil)

    the action that was forbidden (e.g. "reparent").



117
118
119
# File 'lib/atlas_rb/errors.rb', line 117

def action
  @action
end

#codeString? (readonly)

Returns the envelope's error value.

Returns:

  • (String, nil)

    the envelope's error value.



114
115
116
# File 'lib/atlas_rb/errors.rb', line 114

def code
  @code
end

#subjectString? (readonly)

Returns the subject (resource) the action was forbidden on.

Returns:

  • (String, nil)

    the subject (resource) the action was forbidden on.



120
121
122
# File 'lib/atlas_rb/errors.rb', line 120

def subject
  @subject
end