all repos — litestore @ e4f1854c8feff76ddf5e1c241b5867848a498bfa

A minimalist nosql document store.

examples/jester_integration.nim

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
import jester, ../litestore, asyncdispatch, uri, strutils, sequtils, httpcore

proc lsReq(req: jester.Request): LSRequest =
  var params = newSeq[string](0)
  for key, value in pairs(req.params):
    params.add("$1=$2" % @[key, value])
  let query = params.join("&")
  var protocol = "http"
  if req.secure:
    protocol = "https"
  result.reqMethod = req.reqMeth
  result.url = parseUri("$1://$2:$3/$4?$5" % @[protocol, req.host, $req.port, req.path, query])
  result.hostname = req.host
  result.body = req.body

LS.init()

routes:

  # Just a simple, unrelated Jester route
  get "/": 
    resp "Hello, World!"
  
  # Remapping LiteStore routes on Jester
  get "/litestore/@resource/@id?":
    let r = get(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  post "/litestore/@resource/@id?":
    let r = post(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  put "/litestore/@resource/@id?":
    let r = put(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  patch "/litestore/@resource/@id?":
    let r = patch(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  delete "/litestore/@resource/@id?":
    let r = delete(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  head "/litestore/@resource/@id?":
    let r = head(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

  options "/litestore/@resource/@id?":
    let r = options(request.lsReq, LS, @"resource", @"id")
    resp(r.code, r.content, r.headers["content-type"]) 

runForever()