Does the ESME REST API also include resending. I don't remember any commits involving the REST API?
D. ---------- Forwarded message ---------- From: <[email protected]> Date: Sat, Jul 18, 2009 at 3:29 PM Subject: svn commit: r795363 - in /incubator/esme/trunk/server/src/main/scala/org/apache/esme: lib/MsgParser.scala model/Action.scala To: [email protected] Author: vdichev Date: Sat Jul 18 13:29:14 2009 New Revision: 795363 URL: http://svn.apache.org/viewvc?rev=795363&view=rev Log: ESME-79 Action filters for resent messages Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Action.scala Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala?rev=795363&r1=795362&r2=795363&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala (original) +++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/lib/MsgParser.scala Sat Jul 18 13:29:14 2009 @@ -47,13 +47,13 @@ lazy val url: Parser[URL] = httpUrl ^^ {url => URL(UrlStore.make(url))} - lazy val atNameStr: Parser[String] = alpha ~ rep(alpha | digit | '_') ^^ { + lazy val userNameStr: Parser[String] = alpha ~ rep(alpha | digit | '_') ^^ { case first ~ more => first + more.mkString } - lazy val poolNameStr = atNameStr + lazy val poolNameStr = userNameStr - lazy val atName: Parser[MsgInfo] = '@' ~> atNameStr ~ rep('.' ~> atNameStr) ^^ { + lazy val atName: Parser[MsgInfo] = '@' ~> userNameStr ~ rep('.' ~> userNameStr) ^^ { case name ~ domainlist => val nickName: String = name val wholeName: String = (name :: domainlist).mkString(".") @@ -71,6 +71,14 @@ } } + lazy val resenderName: Parser[MsgInfo] = acceptCI("resent:") ~> userNameStr ^^ { + case name => + User.find(By(User.nickname, name)) match { + case Full(u) => ResenderName(u) + case _ => MsgText("resent:"+name) + } + } + // def ip_schemepart = (accept("//") ~> login) ~> opt( '/' ~> urlpath) lazy val login: Parser[String] = userPass ^^ { @@ -245,6 +253,7 @@ lazy val testFactor: Parser[TestAction] = (notTest | testAt | testRegex | testString | testTag | testPool | + testResent | testParen | testPercent | testDates | testLogin | testFollowed | testUnfollowed | @@ -328,6 +337,14 @@ (poolName ^^ { case PoolName(pool) => PoolAction(pool.id) }) + + lazy val testResent: Parser[TestAction] = + (whiteSpace ~ acceptCI("resent:") ~> rep1(digit) <~ whiteSpace ^^ {case id => ResentAction(id.mkString.toLong)}) | + (resenderName ^^ { + case ResenderName(user) => ResentAction(user.id) + }) | + (whiteSpace ~ acceptCI("resent") ~ whiteSpace ^^^ ResentAction) + lazy val testAt: Parser[AtUserAction] = (whiteSpace ~ '@' ~> rep1(digit) <~ whiteSpace ^^ {case dig => AtUserAction(dig.mkString.toLong)}) | @@ -381,6 +398,7 @@ sealed trait MsgInfo case class MsgText(text: String) extends MsgInfo case class AtName(user: User) extends MsgInfo +case class ResenderName(user: User) extends MsgInfo case class HashTag(tag: Tag) extends MsgInfo case class URL(url: UrlStore) extends MsgInfo case class PoolName(pool: AccessPool) extends MsgInfo Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Action.scala URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Action.scala?rev=795363&r1=795362&r2=795363&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Action.scala (original) +++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/model/Action.scala Sat Jul 18 13:29:14 2009 @@ -95,6 +95,15 @@ case PoolAction(poolId) => (m, u, c, r) => m.pool.is == poolId + + case ResentAction(userId) => + (m, u, c, r) => r match { + case ResendReason(`userId`) => true + case _ => false + } + + case ResentAction => + (m, u, c, r) => r.isInstanceOf[ResendReason] case SentToMeAction => SentToMe @@ -301,6 +310,14 @@ def toStr = "pool:" + poolId } +case object ResentAction extends TestAction { + def toStr = "resent" +} + +case class ResentAction(userId: Long) extends TestAction { + def toStr = "resent:" + userId +} + case class RegexAction(re: String) extends TestAction { def toStr = "/"+fix+"/"
