diff --git a/twenty-backend/lib/twenty-backend/servlet.rb b/twenty-backend/lib/twenty-backend/servlet.rb index 45bfb38..2e31a84 100644 --- a/twenty-backend/lib/twenty-backend/servlet.rb +++ b/twenty-backend/lib/twenty-backend/servlet.rb @@ -2,24 +2,10 @@ class Twenty::Servlet < WEBrick::HTTPServlet::AbstractServlet require_relative "servlet/response" require_relative "servlet/projects" require_relative "servlet/tasks" + + # mixins require_relative "servlet/mixin/server_mixin" + require_relative "servlet/mixin/response_mixin" extend ServerMixin - - def ok(res, body = {}) - Response.new(res) - .set_status(200) - .set_body(body) - end - - def not_found(res) - Response.new(res) - .set_status(404) - .set_body({errors: ["The requested path was not found"]}) - end - - def bad_request(res, body = {}) - Response.new(res) - .set_status(400) - .set_body({errors: ["Bad request"]}.merge(body)) - end + include ResponseMixin end diff --git a/twenty-backend/lib/twenty-backend/servlet/mixin/response_mixin.rb b/twenty-backend/lib/twenty-backend/servlet/mixin/response_mixin.rb new file mode 100644 index 0000000..625dafd --- /dev/null +++ b/twenty-backend/lib/twenty-backend/servlet/mixin/response_mixin.rb @@ -0,0 +1,38 @@ +module Twenty::Servlet::ResponseMixin + ## + # Sets a 200 OK response. + # @param [WEBrick::HTTPResponse] res + # An instance of {WEBrick::HTTPResponse WEBrick::HTTPResponse} + # @param [#to_json] body + # The response body. + # @return [void] + def ok(res, body = {}) + Response.new(res) + .set_status(200) + .set_body(body) + end + + ## + # Sets a 400 Bad Request response. + # @param [WEBrick::HTTPResponse] res + # An instance of {WEBrick::HTTPResponse WEBrick::HTTPResponse} + # @param [#to_json] body + # The response body. + # @return [void] + def bad_request(res, body = {}) + Response.new(res) + .set_status(400) + .set_body({errors: ["Bad request"]}.merge(body)) + end + + ## + # Set a 404 Not Found response. + # @param [WEBrick::HTTPResponse] res + # An instance of {WEBrick::HTTPResponse WEBrick::HTTPResponse} + # @return [void] + def not_found(res) + Response.new(res) + .set_status(404) + .set_body({errors: ["The requested path was not found"]}) + end +end