diff --git a/src/main/scala/io/scalac/slack/api/ApiActor.scala b/src/main/scala/io/scalac/slack/api/ApiActor.scala index f0edefc..11b630e 100644 --- a/src/main/scala/io/scalac/slack/api/ApiActor.scala +++ b/src/main/scala/io/scalac/slack/api/ApiActor.scala @@ -9,9 +9,6 @@ import spray.json._ import scala.util.{Failure, Success} -/** - * marioosh - */ class ApiActor extends Actor with ActorLogging { import context.dispatcher diff --git a/src/main/scala/io/scalac/slack/api/Message.scala b/src/main/scala/io/scalac/slack/api/Message.scala index 35286d9..cddee27 100644 --- a/src/main/scala/io/scalac/slack/api/Message.scala +++ b/src/main/scala/io/scalac/slack/api/Message.scala @@ -1,8 +1,7 @@ package io.scalac.slack.api /** - * Created on 20.01.15 23:59 - * Messages sends between actors + * Messages sended between actors */ sealed trait Message diff --git a/src/main/scala/io/scalac/slack/api/Unmarshallers.scala b/src/main/scala/io/scalac/slack/api/Unmarshallers.scala index ff50873..4e1dce9 100644 --- a/src/main/scala/io/scalac/slack/api/Unmarshallers.scala +++ b/src/main/scala/io/scalac/slack/api/Unmarshallers.scala @@ -4,9 +4,6 @@ import io.scalac.slack.models._ import org.joda.time.DateTime import spray.json._ -/** - * Created on 28.01.15 23:06 - */ object Unmarshallers extends DefaultJsonProtocol { implicit object DateTimeJsonFormat extends JsonFormat[DateTime] { @@ -52,4 +49,6 @@ object Unmarshallers extends DefaultJsonProtocol { implicit val botInfoFormat = jsonFormat(BotInfo, "id", "name") implicit val rtmStartResponseFormat = jsonFormat(RtmStartResponse, "ok", "url", "users", "channels", "self") implicit val chatPostMessageResponse = jsonFormat(ChatPostMessageResponse, "ok", "channel", "error") + implicit val imFormat = jsonFormat(DirectChannel, "id", "user") + } diff --git a/src/main/scala/io/scalac/slack/models/DirectChannel.scala b/src/main/scala/io/scalac/slack/models/DirectChannel.scala new file mode 100644 index 0000000..6808777 --- /dev/null +++ b/src/main/scala/io/scalac/slack/models/DirectChannel.scala @@ -0,0 +1,7 @@ +package io.scalac.slack.models + +/** + * Direct channel object between bot and user + * Object holds user's ID along with channel's ID + */ +case class DirectChannel(id: String, userId: String) diff --git a/src/test/scala/io/scalac/slack/UnmarshallerTest.scala b/src/test/scala/io/scalac/slack/UnmarshallerTest.scala index 7010f52..b61c53d 100644 --- a/src/test/scala/io/scalac/slack/UnmarshallerTest.scala +++ b/src/test/scala/io/scalac/slack/UnmarshallerTest.scala @@ -1,7 +1,7 @@ package io.scalac.slack import io.scalac.slack.api.{ApiTestResponse, AuthTestResponse, RtmStartResponse} -import io.scalac.slack.models.{Away, Channel, ChannelInfo, SlackUser} +import io.scalac.slack.models._ import org.joda.time.DateTime import org.scalatest.{FunSuite, Matchers} import spray.json._ @@ -699,4 +699,23 @@ class UnmarshallerTest extends FunSuite with Matchers { user.hasFiles should equal(Some(false)) user.presence should equal(Away) } + + test("IM object") { + /*language=JSON*/ + val imString = """{ + | "last_read": "0000000000.000000", + | "is_open": true, + | "id": "D03DQKG1C", + | "unread_count": 0, + | "is_im": true, + | "latest": null, + | "user": "U03DN1GTQ", + | "created": 1421786647 + | }""".stripMargin + + val im = imString.parseJson.convertTo[DirectChannel] + im.id should equal("D03DQKG1C") + im.userId should equal("U03DN1GTQ") + } + }