Skip to content

Commit 480e421

Browse files
committed
Support banned offers in tg bot (#49)
1 parent 37d2353 commit 480e421

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

bot/src/main/scala/com/github/mmvpm/bot/manager/ofs/OfsManagerImpl.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class OfsManagerImpl[F[_]: Monad](ofsClient: OfsClient[F], sessionStorage: Stora
130130
private def getMyOffers(session: Session): EitherT[F, OfsError, List[Offer]] =
131131
ofsClient
132132
.getMyOffers(session)
133-
.map(_.offers.filter(_.status.isActive))
133+
.map(_.offers.filter(_.status.visibleToOwner))
134134
.handleDefaultErrors
135135

136136
private def createOffer(session: Session, description: OfferDescription): EitherT[F, OfsError, OfsOffer] =

bot/src/main/scala/com/github/mmvpm/bot/state/State.scala

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.github.mmvpm.bot.state
22

33
import com.github.mmvpm.bot.model.{Button, Draft, Tag, TgPhoto}
44
import com.github.mmvpm.bot.util.PriceUtils.priceText
5-
import com.github.mmvpm.model.{Offer, OfferID}
5+
import com.github.mmvpm.model.{Offer, OfferID, OfferStatus}
66

77
import scala.util.matching.Regex
88

@@ -298,7 +298,11 @@ object State {
298298
.take(StepSizeCropped)
299299
.zipWithIndex
300300
.map { case (offer, idx) =>
301-
s"${idx + 1}. ${offer.description.name} (${priceText(offer.description.price)})"
301+
val statusText = offer.status match {
302+
case OfferStatus.Banned => " [ЗАБАНЕНО]"
303+
case _ => ""
304+
}
305+
s"${idx + 1}. ${offer.description.name} (${priceText(offer.description.price)}) $statusText"
302306
}
303307
.mkString("\n\n")
304308
}

common/src/main/scala/com/github/mmvpm/model/OfferStatus.scala

+6
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@ object OfferStatus extends Enumeration {
99
val Deleted = Value("Deleted")
1010

1111
implicit class RichStatus(status: OfferStatus) {
12+
1213
def isActive: Boolean = status match {
1314
case Active | OnModeration => true
1415
case Banned | Deleted => false
1516
}
17+
18+
def visibleToOwner: Boolean = status match {
19+
case Deleted => false
20+
case _ => true
21+
}
1622
}
1723
}

0 commit comments

Comments
 (0)