From 7ab6355f1764e1374eaf848c066b055d2bce0c74 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 16 Sep 2025 03:27:19 -0700 Subject: [PATCH] Add error classes for drag-drop validation - InvalidPositionError for out-of-bounds positions - PositionOccupiedError for occupied slot conflicts --- app/errors/api/v1/invalid_position_error.rb | 15 +++++++++++++++ app/errors/api/v1/position_occupied_error.rb | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 app/errors/api/v1/invalid_position_error.rb create mode 100644 app/errors/api/v1/position_occupied_error.rb diff --git a/app/errors/api/v1/invalid_position_error.rb b/app/errors/api/v1/invalid_position_error.rb new file mode 100644 index 0000000..c2b3001 --- /dev/null +++ b/app/errors/api/v1/invalid_position_error.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Api + module V1 + class InvalidPositionError < GranblueError + def code + 'invalid_position' + end + + def message + @data || 'Invalid position specified' + end + end + end +end \ No newline at end of file diff --git a/app/errors/api/v1/position_occupied_error.rb b/app/errors/api/v1/position_occupied_error.rb new file mode 100644 index 0000000..edb14ab --- /dev/null +++ b/app/errors/api/v1/position_occupied_error.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Api + module V1 + class PositionOccupiedError < GranblueError + def code + 'position_occupied' + end + + def message + @data || 'Position is already occupied' + end + end + end +end \ No newline at end of file