Mercurial > prosody-modules
comparison mod_pubsub_github/mod_pubsub_github.lua @ 3508:a98a3922bc01
mod_pubsub_github: Send sensible status codes
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 31 Mar 2019 16:05:24 +0200 |
parents | d4207ab8ccc1 |
children | 94414cadfcaa |
comparison
equal
deleted
inserted
replaced
3507:5c37d759b1e2 | 3508:a98a3922bc01 |
---|---|
7 local pubsub_service = module:depends("pubsub").service; | 7 local pubsub_service = module:depends("pubsub").service; |
8 local node = module:get_option("github_node", "github"); | 8 local node = module:get_option("github_node", "github"); |
9 local secret = module:get_option("github_secret"); | 9 local secret = module:get_option("github_secret"); |
10 | 10 |
11 function handle_POST(event) | 11 function handle_POST(event) |
12 local request = event.request; | 12 local request, response = event.request, event.response; |
13 if secret and ("sha1=" .. hmac_sha1(secret, request.body, true)) ~= request.headers.x_hub_signature then | 13 if secret and ("sha1=" .. hmac_sha1(secret, request.body, true)) ~= request.headers.x_hub_signature then |
14 return 401; | 14 return 401; |
15 end | 15 end |
16 local data = json.decode(request.body); | 16 local data = json.decode(request.body); |
17 if not data then | 17 if not data then |
18 response.status_code = 400; | |
18 return "Invalid JSON. From you of all people..."; | 19 return "Invalid JSON. From you of all people..."; |
19 end | 20 end |
20 | 21 |
21 for _, commit in ipairs(data.commits) do | 22 for _, commit in ipairs(data.commits) do |
22 local ok, err = pubsub_service:publish(node, true, data.repository.name, | 23 local ok, err = pubsub_service:publish(node, true, data.repository.name, |
32 :up() | 33 :up() |
33 ); | 34 ); |
34 end | 35 end |
35 | 36 |
36 module:log("debug", "Handled POST: \n%s\n", tostring(request.body)); | 37 module:log("debug", "Handled POST: \n%s\n", tostring(request.body)); |
38 response.status_code = 202; | |
37 return "Thank you Github!"; | 39 return "Thank you Github!"; |
38 end | 40 end |
39 | 41 |
40 module:provides("http", { | 42 module:provides("http", { |
41 route = { | 43 route = { |