deimos-lang/dm_lib_sketching/std/web/mvc/controller.dm
2024-12-31 12:07:48 -06:00

51 lines
780 B
Plaintext

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<String>
}
pub ann Post {
path: Option<String>
}
#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
}