Skip to content

Commit a36d4f2

Browse files
committed
update
1 parent d78fe3a commit a36d4f2

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

‎app/controllers/api/v2/base_api_controller.rb‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ def me
3838
end
3939

4040
def render_error(errors:, status:, details: nil)
41-
@payload = { errors: errors, details: details }
41+
# Ensure errors is always an Array for consistent JSON representation
42+
error_list = errors.is_a?(Array) ? errors : [errors]
43+
44+
@payload = { errors: error_list }
45+
@payload[:details] = details if details.present?
46+
4247
render '/api/v2/error', status: status
4348
end
4449

@@ -82,17 +87,14 @@ def handle_exception(exception)
8287
def handle_internal_server_error(exception)
8388
# log server errors
8489
Rails.logger.error "Exception message: #{exception.message}"
90+
Rails.logger.error exception.backtrace.join("\n") if exception.backtrace.present?
8591

8692
# inform client of server error
87-
message = _('There was a problem in the server.')
88-
@payload = { message: [message] }
89-
render '/api/v2/error', status: :internal_server_error
93+
render_error(errors: _('There was a problem in the server.'), status: :internal_server_error)
9094
end
9195

9296
def handle_client_not_authorized
93-
message = _('The client is not authorized to perform this action.')
94-
@payload = { message: [message] }
95-
render '/api/v2/error', status: :forbidden
97+
render_error(errors: _('The client is not authorized to perform this action.'), status: :forbidden)
9698
end
9799

98100
# retrieve the requested pagination params or use defaults

0 commit comments

Comments
 (0)