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)