summaryrefslogtreecommitdiff
path: root/resources/probentermine.lua
diff options
context:
space:
mode:
authorHorus2016-03-03 18:19:53 +0100
committerHorus2016-03-03 18:19:53 +0100
commitdd78bf4d1684f9d12db807dc4e1f05721777f484 (patch)
treec8b737ab262a76ab519a525e0ff3c0030ffdf8c1 /resources/probentermine.lua
parent1e6a26da090dd3ed4bc470e04e94260def18fa9b (diff)
downloadgospeladlershof.de-dd78bf4d1684f9d12db807dc4e1f05721777f484.tar.gz
Fügt die nginx.conf und den crontab hinzu.
Diffstat (limited to 'resources/probentermine.lua')
-rw-r--r--resources/probentermine.lua97
1 files changed, 97 insertions, 0 deletions
diff --git a/resources/probentermine.lua b/resources/probentermine.lua
new file mode 100644
index 0000000..9f33a65
--- /dev/null
+++ b/resources/probentermine.lua
@@ -0,0 +1,97 @@
+function print_response(konzert, proben, status_code)
+ ngx.status = status_code
+ local cjson = require "cjson"
+ konzert, err = cjson.encode(konzert)
+ proben, err = cjson.encode(proben)
+ if not konzert and not proben then
+ status_code = 500
+ konzert = err
+ proben = err
+ end
+
+ local now = ngx.localtime()
+
+ if status_code > 399 then
+ -- nginx error
+ ngx.print("{\"success\": false, \"error\": \"" .. konzert .. "\", \"build\": \"" .. now .. "\"}")
+ else
+ -- success
+ ngx.print("{\"success\": true , \"konzert\": " .. konzert .. ", \"proben\": " .. proben .. ", \"build\":\"" .. now .. "\"}")
+ end
+
+ ngx.exit(status_code)
+end
+
+function success_msg(msg)
+ print_response(msg, 200)
+end
+
+function connect()
+ local mysql = require "resty.mysql"
+ local db, err = mysql:new()
+ if not db then
+ print_response("failed to instantiate mysql: " .. err, 500)
+ end
+ db:set_timeout(1000) -- 1 sec
+
+ local ok, err, errno, sqlstate = db:connect{
+ -- put your config here
+ host = "",
+ port = 3306,
+ database = "",
+ user = "",
+ password = "",
+ max_packet_size = 1024*1024
+ }
+
+ if not ok then
+ print_response("failed to connect: " .. err .. ": " .. errno .. " " .. sqlstate, nil, 500 )
+ end
+
+ local res, err, errcode, sqlstate = db:query("SET names utf8;")
+ if err or not res then
+ print_response("failed to set names: " .. err , nil, 500 )
+ end
+
+ return db
+end
+
+function probentermine(db)
+ local sql = 'select termin, uhrzeit from proben where date(STR_TO_DATE(termin, "%d.%m.%Y")) > (SELECT CURDATE() );'
+ res, err, errno, sqlstate = db:query(sql)
+ if not res or err then
+ return nil, err
+ end
+
+ return res, nil
+end
+
+function konzerttermin(db)
+ local sql = 'select termin,uhrzeit,beschreibung,anfahrt from konzert order by id desc limit 1;';
+ res, err, errno, sqlstate = db:query(sql)
+ if not res or err then
+ return nil, err
+ end
+
+ return res, nil
+end
+
+function close(db)
+ local ok, err = db:close()
+ if not ok then
+ return err
+ end
+
+ return nil
+end
+
+local cjson = require "cjson"
+
+local db = connect()
+
+local konzert = konzerttermin(db)
+local termine = probentermine(db)
+
+close(db)
+
+print_response(konzert, termine, 200)