From 84a5315451a3b69afe0f16974b6f1021f63ba89d Mon Sep 17 00:00:00 2001 From: Brice Thomas Date: Fri, 29 May 2015 00:03:38 +0200 Subject: [PATCH] The early stirrings of Redis --- app/services/CatShelter.scala | 4 ++-- app/services/RedisService.scala | 35 +++++++++++++++++++++++++++++++++ build.sbt | 2 ++ test/RedisServiceTest.scala | 12 +++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 app/services/RedisService.scala create mode 100644 test/RedisServiceTest.scala diff --git a/app/services/CatShelter.scala b/app/services/CatShelter.scala index 619dea9..321ac8a 100644 --- a/app/services/CatShelter.scala +++ b/app/services/CatShelter.scala @@ -19,7 +19,7 @@ object CatShelter { * @return An array containing all cats */ def createCats(): Array[Cat] = { - Logger.info("[ImgurService] Creating cats...") + Logger.info("[CatShelter] Creating cats...") // Retrieve images from the album "imgur.album" // Map each image to create a list with Cat instances @@ -27,7 +27,7 @@ object CatShelter { .map(Cat(_)) .toArray - Logger.info("[ImgurService] Cats created!") + Logger.info("[CatShelter] Cats created!") cats } diff --git a/app/services/RedisService.scala b/app/services/RedisService.scala new file mode 100644 index 0000000..7e4c093 --- /dev/null +++ b/app/services/RedisService.scala @@ -0,0 +1,35 @@ +package services + +import scredis.Redis + +/** May contains Redis configuration */ +trait RedisConfig { + +} + +/** Handle cats business logic with the power of Redis */ +object RedisService extends RedisConfig { + // A direct access to redis should **really** not be possible + private val redis = Redis() + + /** Well... if you insist */ + def flushAll: Unit = redis.flushAll() +} + +/** "Keeper of Keys and Grounds of Redis" (aka Rubeus Hagrid) */ +object RedisSchema { + + /** Get the key to retrieve every single cats + * + * @ return The key + */ + def cats: String = "cats" + + /** Get the key to retrieve a single cat + * + * @param id Cat identifier + * + * @return The key + */ + def cat(id: String): String = s"cats:$id" +} diff --git a/build.sbt b/build.sbt index f509f62..74380db 100644 --- a/build.sbt +++ b/build.sbt @@ -11,6 +11,8 @@ lazy val imgur = RootProject(uri("git://github.com/Cowa/Imgur-Scala.git#master") scalaVersion := "2.11.5" libraryDependencies ++= Seq( + "org.scalatestplus" %% "play" % "1.1.0" % "test", + "com.livestream" %% "scredis" % "2.0.6", cache ) diff --git a/test/RedisServiceTest.scala b/test/RedisServiceTest.scala new file mode 100644 index 0000000..71f46d0 --- /dev/null +++ b/test/RedisServiceTest.scala @@ -0,0 +1,12 @@ +package test + +import services.RedisService +import org.scalatestplus.play._ + +class RedisServiceTest extends PlaySpec { + "RedisService" must { + "test stuff to prove it works" in { + 1 mustBe 1 + } + } +}