Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Commit 847af6c

Browse files
committed
made channel api not message specific
1 parent cf62265 commit 847af6c

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

src/main/scala/Bot.scala

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class Bot(token: String) extends DiscordBot(token) {
1414
case MessageCreated(id, "greet" :: who) =>
1515
val greeting = ("Hello" :: who).mkString(" ") + "!"
1616
channel ! Message(id, greeting)
17+
sender ! Ack
1718
}
1819
}
1920

src/main/scala/akkord/api/ChannelApi.scala

+11-6
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class ChannelApi(token: String)(implicit mat: ActorMaterializer) extends Discord
1313
import ChannelApi._
1414

1515
override def pipeHttpApiRequest: Receive = {
16-
case Message(channelId, content) => tellChannelRequestBundle(channelId, content)
16+
case msg @ Message(_, content) => tellChannelRequestBundle(msg, MessagePayload(content))
1717
case bundle: ChannelRequestBundle => pipeChannelRequest(bundle)
1818
}
1919

@@ -27,17 +27,17 @@ class ChannelApi(token: String)(implicit mat: ActorMaterializer) extends Discord
2727
.pipeTo(self)
2828
}
2929

30-
private def tellChannelRequestBundle(channelId: String, content: String): Unit = {
31-
val (method, uri) = createMessageEndpoint(channelId)
32-
val channelEntity = MessagePayload(content)
33-
self ! ChannelRequestBundle(channelId, method, uri, channelEntity)
30+
private def tellChannelRequestBundle(msg: Message, payload: ChannelPayload) = {
31+
val (method, uri) = getEndpoint(msg)
32+
self ! ChannelRequestBundle(msg.channelId, method, uri, payload)
3433
}
3534
}
3635

3736
object ChannelApi {
3837
import DiscordApi._
3938

40-
case class Message(channelId: String, content: String)
39+
trait ChannelRequest
40+
case class Message(channelId: String, content: String) extends ChannelRequest
4141

4242
sealed trait ChannelPayload
4343
case class MessagePayload(content: String) extends ChannelPayload
@@ -56,6 +56,11 @@ object ChannelApi {
5656
}
5757
}
5858

59+
private def getEndpoint(req: ChannelRequest) = {
60+
req match {
61+
case Message(id, _) => (HttpMethods.POST, s"$baseUrl/channels/$id/messages")
62+
}
63+
}
5964
private def createMessageEndpoint(channelId: String): (HttpMethod, String) =
6065
(HttpMethods.POST, s"$baseUrl/channels/$channelId/messages")
6166

0 commit comments

Comments
 (0)