backend|cli: add Twenty::Servlet.server.

This commit is contained in:
0x1eef 2023-12-24 15:19:05 -03:00
parent 8ca73dc1d9
commit fc67398bad
3 changed files with 25 additions and 11 deletions

View file

@ -2,6 +2,8 @@ class Twenty::Servlet < WEBrick::HTTPServlet::AbstractServlet
require_relative "servlet/response" require_relative "servlet/response"
require_relative "servlet/projects" require_relative "servlet/projects"
require_relative "servlet/tasks" require_relative "servlet/tasks"
require_relative "servlet/mixin/server_mixin"
extend ServerMixin
def ok(res, body = {}) def ok(res, body = {})
Response.new(res) Response.new(res)

View file

@ -0,0 +1,22 @@
module Twenty::Servlet::ServerMixin
##
# @return [WEBrick::HTTPServer]
# Returns an instance of WEBrick::HTTPServer.
def server(options = {})
server = WEBrick::HTTPServer.new server_options.merge(options)
server.mount '/servlet/projects', Twenty::Servlet::Projects
server.mount '/servlet/tasks', Twenty::Servlet::Tasks
server
end
##
# @return [Hash<Symbol, String>]
# The default server options given to WEBrick::HTTPServer.new.
def server_options
{
DocumentRoot: Twenty.build,
BindAddress: "127.0.0.1",
Port: 2020
}
end
end

View file

@ -10,18 +10,8 @@ class Twenty::Command::Up < Twenty::Command
private private
def run_command def run_command
server = WEBrick::HTTPServer.new(server_options) server = Twenty::Servlet.server
server.mount '/servlet/projects', Twenty::Servlet::Projects
server.mount '/servlet/tasks', Twenty::Servlet::Tasks
trap(:SIGINT) { server.shutdown } trap(:SIGINT) { server.shutdown }
server.start server.start
end end
def server_options
{
DocumentRoot: Twenty.build,
BindAddress: "127.0.0.1",
Port: 2020
}
end
end end