forked from Lightbug-HQ/lightbug_http
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlightbug.🔥
37 lines (33 loc) · 1.19 KB
/
lightbug.🔥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from lightbug_http import *
from lightbug_http.middleware.helpers import Success
from sys import is_defined
from lightbug_http import *
@value
struct HelloWorld(HTTPHandler):
fn handle(self, context: Context) -> HTTPResponse:
var name = context.params.find("username")
if name:
return Success("Hello!")
else:
return Success("Hello, World!")
fn main() raises:
if not is_defined["TEST"]():
var router = RouterMiddleware()
router.add("GET", "/hello", HelloWorld())
var middleware = MiddlewareChain()
middleware.add(CompressionMiddleware())
middleware.add(ErrorMiddleware())
middleware.add(LoggerMiddleware())
middleware.add(CorsMiddleware(allows_origin = "*"))
middleware.add(BasicAuthMiddleware("admin", "password"))
middleware.add(StaticMiddleware("static"))
middleware.add(router)
middleware.add(NotFoundMiddleware())
var server = SysServer()
server.listen_and_serve("0.0.0.0:8080", middleware)
else:
try:
run_tests()
print("Test suite passed")
except e:
print("Test suite failed: " + e.__str__())