/src/main/g8/src/main/scala/com/$organization$/$packageName$/dao/$resourceName$Dao.scala

https://github.com/ctcarrier/spray-rest-sbt.g8 · Scala · 63 lines · 50 code · 10 blank · 3 comment · 2 complexity · 7e8be0bb4adcedd3fd21b782abd1162c MD5 · raw file

  1. package com.$organization$.$packageName$.dao
  2. import com.mongodb.casbah.Imports._
  3. import akka.dispatch.Future
  4. import java.util.Date
  5. import com.novus.salat._
  6. import com.novus.salat.global._
  7. import com.mongodb.ServerAddress
  8. import com.mongodb.DBObject
  9. import com.mongodb.{ServerAddress, DBObject}
  10. import com.mongodb.casbah.{MongoDB, MongoConnection}
  11. import com.mongodb.casbah.commons.MongoDBObject
  12. import com.$organization$.$packageName$._
  13. import com.$organization$.$packageName$.model._
  14. /**
  15. * @author chris carrier
  16. */
  17. class $resourceName$Dao(mongoCollection: MongoCollection) extends Dao {
  18. def get$resourceName$(key: ObjectId) = {
  19. Future {
  20. val q = MongoDBObject("_id" -> key)
  21. val dbo = mongoCollection.findOne(q)
  22. dbo.map(f => grater[$resourceName$Wrapper].asObject(f))
  23. }
  24. }
  25. def create$resourceName$(modelWrapper: $resourceName$Wrapper) = {
  26. Future {
  27. val dbo = grater[$resourceName$Wrapper].asDBObject(modelWrapper)
  28. mongoCollection += dbo
  29. Some(modelWrapper.copy(_id = dbo.getAs[org.bson.types.ObjectId]("_id")))
  30. }
  31. }
  32. def update$resourceName$(key: ObjectId, model: $resourceName$) = {
  33. Future {
  34. val query = MongoDBObject("_id" -> key)
  35. val update = \$addToSet("content" -> model)
  36. mongoCollection.update(query, update, false, false, WriteConcern.Safe)
  37. val dbo = mongoCollection.findOne(query)
  38. dbo.map(f => grater[$resourceName$Wrapper].asObject(f))
  39. }
  40. }
  41. def search$resourceName$(searchObj: MongoDBObject) = {
  42. Future {
  43. val data = mongoCollection.find(searchObj)
  44. val dataList = data.map(f => grater[$resourceName$Wrapper].asObject(f).content).flatten.toList
  45. if (dataList.isEmpty) {
  46. None
  47. }
  48. else {
  49. Some(dataList)
  50. }
  51. }
  52. }
  53. }