Guest User

Untitled

a guest
Jan 1st, 2015
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 1.29 KB | None | 0 0
  1. import asyncdispatch, jester, json, marshal
  2.  
  3. type
  4.     Release = object
  5.         version: string
  6.         uri: string
  7.         downMethod: string
  8.  
  9.     Package = object
  10.         name: string
  11.         versions: seq[Release]
  12.         tags: seq[string]
  13.  
  14.  
  15. proc create_pkg(pkg: Package): Package =
  16.     return pkg
  17.  
  18. routes:
  19.     get "/packages/@name":
  20.         var releases = @[
  21.             Release(version: "foo", uri: "http://github.com/ekarlso/foo", downMethod: "git"),
  22.             Release(version: "0.0.1", uri: "http://github.com/ekarlso/foo/001.tar.gz", downMethod: "http")
  23.         ]
  24.  
  25.         var pkgs = @[
  26.             Package(name: "mysql", tags: @["database", "mysql"], versions: releases),
  27.             Package(name: "rsync", tags: @["foo"], versions: releases)
  28.         ]
  29.  
  30.         var pkg_array = newJArray()
  31.  
  32.         for pkg in pkgs:
  33.             var tags = newJArray()
  34.  
  35.             for t in pkg.tags:
  36.                 tags.add(%t)
  37.  
  38.             pkg_array.add(
  39.                 %{
  40.                     "name": %pkg.name,
  41.                     "tags": tags
  42.                 }
  43.             )
  44.  
  45.         resp($pkg_array, "application/json")
  46.  
  47.     post "/packages":
  48.         var body = parseJson(@"payload")
  49.         var arr = newJArray()
  50.  
  51.         resp($arr, "application/json")
  52.  
  53. runForever()
Advertisement
Add Comment
Please, Sign In to add comment