diff options
Diffstat (limited to 'example/haberdasherserver.nim')
| -rw-r--r-- | example/haberdasherserver.nim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/example/haberdasherserver.nim b/example/haberdasherserver.nim new file mode 100644 index 0000000..a41c3b8 --- /dev/null +++ b/example/haberdasherserver.nim @@ -0,0 +1,26 @@ +import asynchttpserver +import asyncdispatch +import random + +import nimtwirp/errors + +import service_pb +import service_twirp + +type + HaberdasherService = object + +proc MakeHat(x: HaberdasherService, size: twirp_example_haberdasher_Size): twirp_example_haberdasher_Hat = + if size.inches <= 0: + raise newTwirpError(TwirpInvalidArgument, "I can't make a hat that small!") + + result = newtwirp_example_haberdasher_Hat() + result.inches = size.inches + result.color = rand(["white", "black", "brown", "red", "blue"]) + result.name = rand(["bowler", "baseball cap", "top hat", "derby"]) + +var + server = newAsyncHttpServer() + service: HaberdasherService + +waitFor server.serve(Port(8080), HaberdasherServer(service, "/")) |
