diff options
Diffstat (limited to 'example/haberdasherserver.nim')
| -rw-r--r-- | example/haberdasherserver.nim | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/example/haberdasherserver.nim b/example/haberdasherserver.nim index a41c3b8..ba85e83 100644 --- a/example/haberdasherserver.nim +++ b/example/haberdasherserver.nim @@ -3,14 +3,12 @@ import asyncdispatch import random import nimtwirp/errors +import nimtwirp/response import service_pb import service_twirp -type - HaberdasherService = object - -proc MakeHat(x: HaberdasherService, size: twirp_example_haberdasher_Size): twirp_example_haberdasher_Hat = +proc MakeHatImpl(service: Haberdasher, size: twirp_example_haberdasher_Size): twirp_example_haberdasher_Hat = if size.inches <= 0: raise newTwirpError(TwirpInvalidArgument, "I can't make a hat that small!") @@ -21,6 +19,13 @@ proc MakeHat(x: HaberdasherService, size: twirp_example_haberdasher_Size): twirp var server = newAsyncHttpServer() - service: HaberdasherService + service {.threadvar.}: Haberdasher + +service = newHaberdasher() +service.MakeHatImpl = MakeHatImpl + +proc cb(req: Request) {.async.} = + var resp = HaberdasherHandler(service, req) + await respond(req, resp) -waitFor server.serve(Port(8080), HaberdasherServer(service, "/")) +waitFor server.serve(Port(8080), cb) |
