diff --git a/server.conf b/server.conf index 993964c..a9199b5 100644 --- a/server.conf +++ b/server.conf @@ -21,6 +21,11 @@ } }, "database" : { + "type" : "redis", + "redis" : { + "address" : "127.0.0.1", + "port" : "6379" + } }, "admin" : { diff --git a/source/server/accounts.d b/source/server/accounts/base.d similarity index 94% rename from source/server/accounts.d rename to source/server/accounts/base.d index dd805ed..a44e06d 100644 --- a/source/server/accounts.d +++ b/source/server/accounts/base.d @@ -1,4 +1,4 @@ -module server.accounts; +module server.accounts.base; /** * This represents the accounts management system of diff --git a/source/server/redis.d b/source/server/accounts/redis.d similarity index 89% rename from source/server/redis.d rename to source/server/accounts/redis.d index 885e67e..8c94da1 100644 --- a/source/server/redis.d +++ b/source/server/accounts/redis.d @@ -1,13 +1,13 @@ -module server.redis; +module server.accounts.redis; import vibe.vibe; -import server.accounts : BesterDataStore; +import server.accounts.base : BesterDataStore; /** * This represents a Redis datastore for the Bester * server's account management system. */ -public final class RedisDatastore : BesterDataStore +public final class RedisDataStore : BesterDataStore { /** @@ -30,6 +30,13 @@ public final class RedisDatastore : BesterDataStore { redisClient = new RedisClient(address, port); redisDatabase = redisClient.getDatabase(0); + // createAccount("deavmi", "poes"); + } + + override public bool userExists(string username) + { + /* TODO: Implement me */ + return true; } override public bool authenticate(string username, string password) diff --git a/source/server/server.d b/source/server/server.d index 4aeebc2..f812ee2 100644 --- a/source/server/server.d +++ b/source/server/server.d @@ -11,8 +11,8 @@ import handlers.handler : MessageHandler; import listeners.listener : BesterListener; import connection.connection : BesterConnection; import server.informer.informer : BesterInformer; -import server.accounts : BesterDataStore; - +import server.accounts.base : BesterDataStore; +import server.accounts.redis : RedisDataStore; /** * Represents an instance of a Bester server. @@ -116,7 +116,21 @@ public final class BesterServer /* TODO: Add comment, implement me */ private void setupDatabase(JSONValue databaseBlock) { - + /* Get the type */ + string dbType = databaseBlock["type"].str(); + + if(cmp(dbType, "redis") == 0) + { + /* get the redis block */ + JSONValue redisBlock = databaseBlock["redis"]; + + /* Get information */ + string address = redisBlock["address"].str(); + ushort port = to!(ushort)(redisBlock["port"].str()); + + /* Create the redis datastore */ + dataStore = new RedisDataStore(address, port); + } } /**