Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e2b29f5

Browse files
Status Code Finder Module
1 parent 5c17e19 commit e2b29f5

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# frozen_string_literal: true
2+
module Api
3+
module ResponseBuilder
4+
# Class which helps in building status code of api response
5+
class StatusCode < ::Api::ResponseBuilder::Base
6+
attr_accessor :status_code,
7+
:resource
8+
9+
def initialize(resource, config = {})
10+
super(resource, config)
11+
@resource = resource
12+
@status_code = :ok
13+
set_status_code
14+
end
15+
16+
private
17+
18+
def set_status_code
19+
return unless resource_has_errors? || api_exception? || other_exception?
20+
if resource_has_errors?
21+
@status_code = :unprocessable_entity
22+
elsif api_exception?
23+
# resource is an instance of ApiException class
24+
@status_code = @resource.status_code
25+
else
26+
# other exception which is probably internal server error
27+
@status_code = :internal_server_error
28+
end
29+
end
30+
end
31+
end
32+
end

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /