File: mock-server.lua

package info (click to toggle)
luarocks 2.4.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 1,056 kB
  • ctags: 607
  • sloc: sh: 523; makefile: 181; ansic: 5
file content (80 lines) | stat: -rw-r--r-- 2,067 bytes parent folder | download | duplicates (3)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env lua

--- A simple LuaRocks mock-server for testing.
local restserver = require("restserver")
local server = restserver:new():port(8080)

server:add_resource("api/tool_version", {
   {
      method = "GET",
      path = "/",
      produces = "application/json",
      handler = function(query)
         local json = { version = query.current }
         return restserver.response():status(200):entity(json)
      end
   }
})

server:add_resource("api/1/{id:[0-9]+}/status", {
   {
      method = "GET",
      path = "/",
      produces = "application/json",
      handler = function(query)
         local json = { user_id = "123", created_at = "29.1.1993" }
         return restserver.response():status(200):entity(json)
      end
   }
})

server:add_resource("/api/1/{id:[0-9]+}/check_rockspec", {
   {
      method = "GET",
      path = "/",
      produces = "application/json",
      handler = function(query)
         local json = {}
         return restserver.response():status(200):entity(json)
      end
   }
})

server:add_resource("/api/1/{id:[0-9]+}/upload", {
   {
      method = "POST",
      path = "/",
      produces = "application/json",
      handler = function(query)
         local json = {module = "luasocket", version = {id = "1.0"}, module_url = "http://localhost/luasocket", manifests = "root", is_new = "is_new"}
         return restserver.response():status(200):entity(json)
      end
   }
})

server:add_resource("/api/1/{id:[0-9]+}/upload_rock/{id:[0-9]+}", {
   {
      method = "POST",
      path = "/",
      produces = "application/json",
      handler = function(query)
         local json = {"rock","module_url"}
         return restserver.response():status(200):entity(json)
      end
   }
})

-- SHUTDOWN this mock-server
server:add_resource("/shutdown", {
   {
      method = "GET",
      path = "/",
      handler = function(query)
         os.exit()
         return restserver.response():status(200):entity()
      end
   }
})

-- This loads the restserver.xavante plugin
server:enable("restserver.xavante"):start()