blob: 52aa773d99e8a9738157490d0607109d17f772e0 [file] [log] [blame]
local DATASTORE = os.getenv( 'DATASTORE')
local utils = require('lib/utils')
if DATASTORE == nil then
DATASTORE = 'redis'
end
local _M = {}
local DataStore = {}
function DataStore:init()
local o = {}
setmetatable(o, self)
self.__index = self
o.impl = require(utils.concatStrings({'lib/', DATASTORE}))
o.ds = o.impl.init()
return o
end
-- right now just using this for the tests
function DataStore:initWithDriver(ds)
local o = {}
setmetatable(o, self)
self.__index = self
o.impl = require('lib/redis')
o.ds = ds
return o
end
function DataStore:close()
return self.impl.close(self.ds)
end
function DataStore:addAPI(id, apiObj, existingAPI)
return self.impl.addAPI(self.ds, id, apiObj, existingAPI)
end
function DataStore:getAllAPIs()
return self.impl.getAllAPIs(self.ds)
end
function DataStore:getAPI(id)
return self.impl.getAPI(self.ds, id)
end
function DataStore:deleteAPI(id)
return self.impl.deleteAPI(self.ds, id)
end
function DataStore:resourceToApi(resource)
return self.impl.resourceToApi(self.ds, resource)
end
function DataStore:generateResourceObj(ops, apiId, tenantObj, cors)
return self.impl.generateResourceObj(ops, apiId, tenantObj, cors)
end
function DataStore:createResource(key, field, resourceObj)
return self.impl.createResource(self.ds, key, field, resourceObj)
end
function DataStore:addResourceToIndex(index, resourceKey)
return self.impl.addResourceToIndex(self.ds, index, resourceKey)
end
function DataStore:deleteResourceFromIndex(index, resourceKey)
return self.impl.deleteResourceFromIndex(self.ds, index, resourceKey)
end
function DataStore:getResource(key, field)
return self.impl.getResource(self.ds, key, field)
end
function DataStore:getAllResources(tenantId)
return self.impl.getAllResources(self.ds, tenantId)
end
function DataStore:deleteResource(key, field)
return self.impl.deleteResource(self.ds, key, field)
end
function DataStore:addTenant(id, tenantObj)
return self.impl.addTenant(self.ds, id, tenantObj)
end
function DataStore:getAllTenants()
return self.impl.getAllTenants(self.ds)
end
function DataStore:getTenant(id)
return self.impl.getTenant(self.ds, id)
end
function DataStore:deleteTenant(id)
return self.impl.deleteTenant(self.ds, id)
end
function DataStore:createSubscription(key)
return self.impl.createSubscription(self.ds, key)
end
function DataStore:deleteSubscription(key)
return self.impl.deleteSubscription(self.ds, key)
end
function DataStore:healthCheck()
return self.impl.healthCheck(self.ds)
end
function DataStore:addSwagger(id, swagger)
return self.impl.addSwagger(self.ds, id, swagger)
end
function DataStore:getSwagger(id)
return self.impl.getSwagger(self.ds, id)
end
function DataStore:deleteSwagger(id)
return self.impl.deleteSwagger(self.ds, id)
end
function DataStore:getOAuthToken(provider, token)
return self.impl.getOAuthToken(self.ds, provider, token)
end
function DataStore:saveOAuthToken(provider, token, body, ttl)
return self.impl.saveOAuthToken(self.ds, provider, token, body, ttl)
end
function DataStore:exists(key)
return self.impl.exists(self.ds, key)
end
function DataStore:setRateLimit(key, value, interval, expires)
return self.impl.setRateLimit(self.ds, key, value, interval, expires)
end
function DataStore:getRateLimit(key)
return self.impl.getRateLimit(self.ds, key)
end
-- to be removed in the future
function _M.init()
return DataStore:init()
end
function _M.initWithDriver(ds)
return DataStore:initWithDriver(ds)
end
return _M