From bb2edc1d499e5fe81c786b0057d55f5d13231523 Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Wed, 4 Dec 2024 19:25:23 -0600 Subject: [PATCH] Sketching out web mvc part of std lib. --- dm_lib/std/web/mvc/controller.dm | 51 ++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 dm_lib/std/web/mvc/controller.dm diff --git a/dm_lib/std/web/mvc/controller.dm b/dm_lib/std/web/mvc/controller.dm new file mode 100644 index 0000000..00b7d7f --- /dev/null +++ b/dm_lib/std/web/mvc/controller.dm @@ -0,0 +1,51 @@ +ns std::web::mvc + +use std::web::{HttpRequest, HttpResponse} + +pub int Controller { + fn handle(req: HttpRequest, res: HttpResponse) +} + +pub ann Path { + path: String +} + +pub ann Get { + path: Option +} + +pub ann Post { + path: Option +} + +#decorator +pub impl RestController(fld target: Any) : Controller { + impl fn handle(req, res) { + // Use reflection + } +} + +// Usage + ++RestController +@Path("/greeting") +pub impl GreetingController { + + fld greeting: mut String + + @Get + pub fn getGreeting() = "Hello, World!" + + @Post + pub fn setGreeting(@RequestBody newGreeting: String) { + self.greeting = newGreeting + return self.greeting + } + +} + +fn main() { + let server = + server << GreetingController() + server.listen 8080 +} \ No newline at end of file