/src/main/scala/net/addictivesoftware/medicate/objects/Medicine.scala

https://github.com/gertjana/Medicate · Scala · 61 lines · 49 code · 12 blank · 0 comment · 0 complexity · 2e767c9c2f8cd9f36542bff7b34731c7 MD5 · raw file

  1. package net.addictivesoftware.medicate.objects
  2. import com.novus.salat.annotations.raw.Key
  3. import com.novus.salat.dao.SalatDAO
  4. import com.mongodb.casbah.Imports._
  5. import com.novus.salat._
  6. import com.novus.salat.global._
  7. import scala.Some
  8. import net.addictivesoftware.medicate.{MyJsonProtocol, MedicateMongoConnection}
  9. case class MedicineObject (
  10. @Key("id") _id:ObjectId = new ObjectId(),
  11. id:Int,
  12. nr:Int,
  13. name:String,
  14. brand:String,
  15. amount:String
  16. )
  17. object MedicineDAO extends SalatDAO[MedicineObject, ObjectId](collection = MedicateMongoConnection.getMedicineCollection)
  18. object Medicine extends MyJsonProtocol {
  19. def insert(medicine:MedicineObject):Option[ObjectId] = {
  20. MedicineDAO.insert(medicine)
  21. }
  22. def delete(medicine:MedicineObject) = {
  23. MedicineDAO.remove(medicine)
  24. }
  25. def deleteById(id:String) = {
  26. getById(id) match {
  27. case Some(medicine) => { delete(medicine).getN }
  28. case _ => {}
  29. }
  30. }
  31. def update(id: String, medicine:MedicineObject) = {
  32. MedicineDAO.update(MongoDBObject("_id" -> id), grater[MedicineObject].asDBObject(medicine)).getN
  33. }
  34. def getById(id:String):Option[MedicineObject] = {
  35. MedicineDAO.find(MongoDBObject("_id" -> new ObjectId(id)))
  36. .limit(1)
  37. .toList
  38. .headOption
  39. }
  40. def getByNr(nr:Int):Option[MedicineObject] = {
  41. MedicineDAO.find(MongoDBObject("nr" -> nr))
  42. .limit(1)
  43. .toList
  44. .headOption
  45. }
  46. def list():List[MedicineObject] = {
  47. MedicineDAO.find(MongoDBObject()).toList
  48. }
  49. }