Finished routing, simple website now works yay

This commit is contained in:
Hannah-Dagemark 2024-04-18 16:01:30 +02:00
commit 7a112697ec
11 changed files with 148 additions and 15 deletions

57
lib/tcp_server.rb Normal file
View file

@ -0,0 +1,57 @@
require 'socket'
require_relative 'request'
require_relative 'route'
class HTTPServer
def initialize(port)
@port = port
end
def start
server = TCPServer.new(@port)
puts "Listening on #{@port}"
router = Router.new
router.add_route("GET",/\/grillkorv\/\d/) do |id, senap|
puts "woot #{senap}"
end
router.add_route("GET","/favicon.ico")
while session = server.accept
data = ""
while line = session.gets and line !~ /^\s*$/
data += line
end
puts "RECEIVED REQUEST"
puts "-" * 40
puts data
puts "-" * 40
request = Request.new(data)
pp request
routeReturn = router.match_route(request)
if routeReturn == 200
html = "<h1>Hello, World!</h1>"
status = 200
elsif routeReturn == 404
html = "<h1>Not found!</h1>"
status = 404
end
#Sen kolla om resursen (filen finns)
# Nedanstående bör göras i er Response-klass
session.print "HTTP/1.1 #{status}\r\n"
session.print "Content-Type: text/html\r\n"
session.print "\r\n"
session.print html
session.close
end
end
end