diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-21 21:49:50 +0100 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2018-04-21 21:49:50 +0100 |
| commit | 2fc0e16aea9e03b9f957c6781bd77de8127ebd69 (patch) | |
| tree | 339f2004eeebf0737f5f5eaf3b592056097c0e98 /examples/multiservice/client.nim | |
| parent | 4b058c8d8cc83f0e5edf73307530d8ea065d33f1 (diff) | |
| download | nimtwirp-2fc0e16aea9e03b9f957c6781bd77de8127ebd69.tar.gz nimtwirp-2fc0e16aea9e03b9f957c6781bd77de8127ebd69.zip | |
Add another example showcasing multiple services
Diffstat (limited to 'examples/multiservice/client.nim')
| -rw-r--r-- | examples/multiservice/client.nim | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/multiservice/client.nim b/examples/multiservice/client.nim new file mode 100644 index 0000000..9df9b9b --- /dev/null +++ b/examples/multiservice/client.nim @@ -0,0 +1,44 @@ +import os +import strformat +import strutils +import parseopt + +import fooservice_pb +import fooservice_twirp + +import barservice_pb +import barservice_twirp + +var service = "foo" +var value: int + +for kind, key, val in getopt(): + case kind + of cmdArgument: + value = parseInt(key) + of cmdLongOption, cmdShortOption: + case key + of "foo", "bar": service = key + else: + echo("error: unknown option: " & key) + quit(QuitFailure) + of cmdEnd: assert(false) + +if service == "foo": + var req = newFooReq() + req.a = int32(value) + let client = newFooClient("http://localhost:8081") + try: + let resp = MakeFoo(client, req) + echo(&"Response from foo: {resp.b}") + except Exception as exc: + echo(&"oh no: {exc.msg}") +else: + var req = newBarReq() + req.a = int32(value) + let client = newBarClient("http://localhost:8081") + try: + let resp = MakeBar(client, req) + echo(&"Response from bar: {resp.b}") + except Exception as exc: + echo(&"oh no: {exc.msg}") |
