Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit d0bd926

Browse files
committed
Add cheers to the api and to tipeeestream
1 parent ad0a166 commit d0bd926

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/TipeeestreamConnector.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,5 @@ object TipeeestreamConnector {
9494
private[tipeeestream] case class SubscriptionEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9595
private[tipeeestream] case class DonationEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9696
private[tipeeestream] case class FollowEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
97+
private[tipeeestream] case class CheerEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9798
}

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/TipeeestreamListener.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class TipeeestreamListener extends EventManager {
1616
case "subscription" => call(SubscriptionEventJSON(event))
1717
case "donation" => call(DonationEventJSON(event))
1818
case "follow" => call(FollowEventJSON(event))
19+
case "cheer" => call(CheerEventJSON(event))
1920
case _ =>
2021
})
2122
}

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/impl/TipeeestreamEventInputImpl.scala

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import java.util.Currency
66

77
import org.codeoverflow.chatoverflow.WithLogger
88
import org.codeoverflow.chatoverflow.api.io.dto.User
9-
import org.codeoverflow.chatoverflow.api.io.dto.stat.stream.tipeeestream.{TipeeestreamDonation, TipeeestreamFollow, TipeeestreamProvider, TipeeestreamSubscription}
10-
import org.codeoverflow.chatoverflow.api.io.event.stream.tipeeestream.{TipeeestreamDonationEvent, TipeeestreamEvent, TipeeestreamFollowEvent, TipeeestreamSubscriptionEvent}
9+
import org.codeoverflow.chatoverflow.api.io.dto.stat.stream.tipeeestream._
10+
import org.codeoverflow.chatoverflow.api.io.event.stream.tipeeestream._
1111
import org.codeoverflow.chatoverflow.api.io.input.event.TipeeestreamEventInput
1212
import org.codeoverflow.chatoverflow.registry.Impl
1313
import org.codeoverflow.chatoverflow.requirement.impl.EventInputImpl
@@ -24,6 +24,7 @@ class TipeeestreamEventInputImpl extends EventInputImpl[TipeeestreamEvent, Tipee
2424
sourceConnector.get.registerEventHandler(onFollow _)
2525
sourceConnector.get.registerEventHandler(onSubscription _)
2626
sourceConnector.get.registerEventHandler(onDonation _)
27+
sourceConnector.get.registerEventHandler(onCheer _)
2728
true
2829
}
2930

@@ -87,6 +88,26 @@ class TipeeestreamEventInputImpl extends EventInputImpl[TipeeestreamEvent, Tipee
8788
}
8889
}
8990

91+
private def onCheer(eventJson: CheerEventJSON): Unit = {
92+
try {
93+
val event = eventJson.json
94+
val parameter = event.getJSONObject("parameters")
95+
val user = new User(parameter.getString("username"))
96+
val time = OffsetDateTime.parse(event.getString("created_at"), DATE_FORMATTER)
97+
val amount = event.getInt("formattedAmount")
98+
val message = parameter.getString("formattedMessage")
99+
val cheer = new TipeeestreamCheer(user, amount, message, time)
100+
call(new TipeeestreamCheerEvent(cheer))
101+
} catch {
102+
case e: JSONException =>
103+
logger warn "Error while parsing follow json:"
104+
logger warn s"${e.getClass.getName} - ${e.getMessage}"
105+
case e: IllegalArgumentException =>
106+
logger warn "Error while parsing follow json:"
107+
logger warn s"${e.getClass.getName} - ${e.getMessage}"
108+
}
109+
}
110+
90111
override def stop(): Boolean = {
91112
sourceConnector.get.unregisterAllEventListeners
92113
true

0 commit comments

Comments
 (0)