Mercurial > prosody-modules
comparison mod_storage_mongodb/mod_storage_mongodb.lua @ 507:46f578da4ff0
mod_storage_mongodb: assert the configuration options
| author | James Callahan <james@chatid.com> |
|---|---|
| date | Wed, 14 Dec 2011 12:47:49 +1100 |
| parents | 0e07810550c8 |
| children | 9831506dcfd6 |
comparison
equal
deleted
inserted
replaced
| 506:0e07810550c8 | 507:46f578da4ff0 |
|---|---|
| 1 local next = next; | 1 local next = next; |
| 2 local setmetatable = setmetatable; | 2 local setmetatable = setmetatable; |
| 3 | 3 |
| 4 local log = require "util.logger".init("mongodb"); | 4 local params = assert ( module:get_option("mongodb") , "mongodb configuration not found" ); |
| 5 local params = module:get_option("mongodb"); | |
| 6 | 5 |
| 7 local mongo = require "mongo"; | 6 local mongo = require "mongo"; |
| 8 | 7 |
| 9 local conn = mongo.Connection.New ( true ); | 8 local conn = mongo.Connection.New ( true ); |
| 10 conn:connect ( params.server ); | 9 conn:connect ( params.server ); |
| 15 | 14 |
| 16 function keyval_store:get(username) | 15 function keyval_store:get(username) |
| 17 local host = module.host or "_global"; | 16 local host = module.host or "_global"; |
| 18 local store = self.store; | 17 local store = self.store; |
| 19 | 18 |
| 19 -- The database name can't have a period in it (hence it can't be a host/ip) | |
| 20 local namespace = params.dbname .. "." .. host; | 20 local namespace = params.dbname .. "." .. host; |
| 21 local v = { _id = { store = store ; username = username } }; | 21 local v = { _id = { store = store ; username = username } }; |
| 22 | 22 |
| 23 local cursor , err = conn:query ( namespace , v ); | 23 local cursor , err = conn:query ( namespace , v ); |
| 24 if not cursor then return nil , err end; | 24 if not cursor then return nil , err end; |
| 30 | 30 |
| 31 function keyval_store:set(username, data) | 31 function keyval_store:set(username, data) |
| 32 local host = module.host or "_global"; | 32 local host = module.host or "_global"; |
| 33 local store = self.store; | 33 local store = self.store; |
| 34 | 34 |
| 35 -- The database name can't have a period in it (hence it can't be a host/ip) | |
| 35 local namespace = params.dbname .. "." .. host; | 36 local namespace = params.dbname .. "." .. host; |
| 36 local v = { _id = { store = store ; username = username } }; | 37 local v = { _id = { store = store ; username = username } }; |
| 37 | 38 |
| 38 if next(data) ~= nil then -- set data | 39 if next(data) ~= nil then -- set data |
| 39 v.data = data; | 40 v.data = data; |
