lib/aws-record/record/errors.rb (24 lines of code) (raw):

# frozen_string_literal: true module Aws module Record module Errors # RecordErrors relate to the persistence of items. They include both # client errors and certain validation errors. class RecordError < RuntimeError; end # Raised when a required key attribute is missing from an item when # persistence is attempted. class KeyMissing < RecordError; end # Raised when you attempt to load a record from the database, but it does # not exist there. class NotFound < RecordError; end # Raised when a conditional write fails. # Provides access to the original ConditionalCheckFailedException error # which may have item data if the return values option was used. class ConditionalWriteFailed < RecordError def initialize(message, original_error) @original_error = original_error super(message) end # @return [Aws::DynamoDB::Errors::ConditionalCheckFailedException] attr_reader :original_error end # Raised when a validation hook call to +:valid?+ fails. class ValidationError < RecordError; end # Raised when an attribute is defined that has a name collision with an # existing attribute. class NameCollision < RuntimeError; end # Raised when you attempt to create an attribute which has a name that # conflicts with reserved names (generally, defined method names). If you # see this error, you should change the attribute name in the model. If # the database uses this name, you can take advantage of the # +:database_attribute_name+ option in # {Aws::Record::Attributes::ClassMethods#attr #attr} class ReservedName < RuntimeError; end # Raised when you attempt a table migration and your model class is # invalid. class InvalidModel < RuntimeError; end # Raised when you attempt update/delete operations on a table that does # not exist. class TableDoesNotExist < RuntimeError; end class MissingRequiredConfiguration < RuntimeError; end # Raised when you attempt to combine your own condition expression with # the auto-generated condition expression from a "safe put" from saving # a new item in a transactional write operation. The path forward until # this case is supported is to use a plain "put" call, and to include # the key existance check yourself in your condition expression if you # wish to do so. class TransactionalSaveConditionCollision < RuntimeError; end # Raised when you attempt to combine your own update expression with # the update expression auto-generated from updates to an item's # attributes. The path forward until this case is supported is to # perform attribute updates yourself in your update expression if you # wish to do so. class UpdateExpressionCollision < RuntimeError; end end end end