summaryrefslogtreecommitdiff
path: root/src/rddb.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/rddb.lua')
-rw-r--r--src/rddb.lua78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/rddb.lua b/src/rddb.lua
new file mode 100644
index 0000000..52ecf1b
--- /dev/null
+++ b/src/rddb.lua
@@ -0,0 +1,78 @@
+--
+-- rhnop
+--
+-- Copyright (C) 2011-2015 Christian Pointner <equinox@helsinki.at>
+--
+-- This file is part of rhnop.
+--
+-- rhnop is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- any later version.
+--
+-- rhnop is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with rhnop. If not, see <http://www.gnu.org/licenses/>.
+--
+
+luasql = require "luasql.mysql"
+
+local rddb = {}
+
+function rddb:init(conf)
+ local err
+
+ self.env, err = luasql.mysql()
+ if self.env == nil then
+ return nil, err
+ end
+
+ self.con, err = self.env:connect(conf.rddb_db, conf.rddb_user, conf.rddb_pwd, conf.rddb_host, conf.rddb_port)
+ if self.con == nil then
+ return nil, err
+ end
+
+ local ret, err = self.con:execute("SET CHARACTER SET utf8")
+ if ret == nil then
+ return nil, err
+ end
+
+ return true
+end
+
+function rddb:getCartInfo(cartnum)
+ local cur, err = self.con:execute("select TITLE,ARTIST,ALBUM from CART where NUMBER = " .. self.con:escape(cartnum))
+ if cur == nil then
+ return nil, err
+ end
+
+ if cur:numrows() ~= 1 then
+ return nil, "nothing found in rivendell db"
+ end
+
+ local results = {}
+ results, err = cur:fetch(results, "a")
+ cur:close()
+
+ if results.TITLE == nil then results.TITLE = "" end
+ if results.ARTIST == nil then results.ARTIST = "" end
+ if results.ALBUM == nil then results.ALBUM = "" end
+
+ return results, err
+end
+
+function rddb:close()
+ if self.con then
+ self.con:close()
+ end
+
+ if self.env then
+ self.env:close()
+ end
+end
+
+return rddb