scala-news-reader

rss/atom news reader in scala

git clone https://9o.is/git/scala-news-reader.git

BlogWriter.scala

(1561B)


      1 package com.joereader.model
      2 
      3 import net.liftweb.record.field._
      4 import net.liftweb.mongodb.record._
      5 import net.liftweb.mongodb.record.field._
      6 import com.joereader.model.field._
      7 
      8 import org.bson.types.ObjectId
      9 
     10 /**
     11  * BlogWriter is a writer of a blog. Users follow this instead of
     12  * another user because not all blog writers are registered.
     13  */
     14 class BlogWriter private() extends BsonRecord[BlogWriter] {
     15   def meta = BlogWriter
     16 
     17   // name from rss feed
     18   object name extends StringField(this, 255)
     19 
     20   // if email is present, assume he was invited
     21   object email extends StringField(this, 255)
     22   
     23   // youtube introduction video id
     24   object introVid extends StringField(this, 20)
     25 
     26   // hex value of primary color
     27   object color extends StringField(this, 255) {
     28     override def defaultValue = "#5bc1e9"
     29     override def get = if(super.get.isEmpty) defaultValue else super.get
     30   }
     31 
     32   // the user representing this blog writer
     33   object user extends ObjectIdRefField(this, User) with ObjectIdRefFieldExtra[BlogWriter, User]
     34 
     35   object followers extends ObjectIdRefListField(this, User) with ObjectIdRefListFieldExtra[BlogWriter, User]
     36 
     37   object categories extends MongoListField[BlogWriter, String](this) with MongoListFieldExtra[BlogWriter, String]
     38 
     39   // url to image found in rss feed of blog writer
     40   object img extends StringField(this, 255)
     41   
     42   /* 
     43    * Have override so MongoListFieldExtra can use name to 
     44    * compare with other blog writers. 
     45    */
     46   override def toString = name.get
     47 }
     48 
     49 object BlogWriter extends BlogWriter with BsonMetaRecord[BlogWriter]