diff --git a/server/src/main/scala/com/lbs/server/conversation/Book.scala b/server/src/main/scala/com/lbs/server/conversation/Book.scala
index 57765f8..7046019 100644
--- a/server/src/main/scala/com/lbs/server/conversation/Book.scala
+++ b/server/src/main/scala/com/lbs/server/conversation/Book.scala
@@ -239,7 +239,7 @@ class Book(val userId: UserId, bot: Bot, apiService: ApiService, dataService: Da
} catch {
case ex: Exception =>
error("Unable to create monitoring", ex)
- bot.sendMessage(userId.source, lang.unableToCreateMonitoring)
+ bot.sendMessage(userId.source, lang.unableToCreateMonitoring(ex.getMessage))
}
end()
}
diff --git a/server/src/main/scala/com/lbs/server/lang/En.scala b/server/src/main/scala/com/lbs/server/lang/En.scala
index e053fdf..31aa864 100644
--- a/server/src/main/scala/com/lbs/server/lang/En.scala
+++ b/server/src/main/scala/com/lbs/server/lang/En.scala
@@ -109,7 +109,7 @@ object En extends Lang {
override def monitoringHasBeenCreated: String = "👍 Monitoring has been created! List of active /monitorings"
- override def unableToCreateMonitoring: String = s"👎 Unable to create monitoring. Please create a /bug"
+ override def unableToCreateMonitoring(reason: String): String = s"👎 Unable to create monitoring. Reason: $reason."
override def chooseTypeOfMonitoring: String = "➡ Please choose type of monitoring you want"
@@ -303,9 +303,9 @@ object En extends Lang {
|${capitalizeFirstLetter(clinic)}: ${term.clinic.name}
|${capitalizeFirstLetter(city)}: ${monitoring.cityName}""".stripMargin
- override def maximumMonitoringsLimitExceeded: String = "Maximum monitorings per user is 5"
+ override def maximumMonitoringsLimitExceeded: String = "Maximum monitorings per user is 10"
- override def monitoringOfTheSameTypeExists: String = "You already have active monitoring for the same service /monitorings"
+ override def monitoringOfTheSameTypeExists: String = "You already have active monitoring for the same service and doctor /monitorings"
override def termIsOutdated: String =
s"""❗️ Looks like the term is already booked by someone else
diff --git a/server/src/main/scala/com/lbs/server/lang/Lang.scala b/server/src/main/scala/com/lbs/server/lang/Lang.scala
index f8e02b1..c3c49a0 100644
--- a/server/src/main/scala/com/lbs/server/lang/Lang.scala
+++ b/server/src/main/scala/com/lbs/server/lang/Lang.scala
@@ -99,7 +99,7 @@ trait Lang {
def monitoringHasBeenCreated: String
- def unableToCreateMonitoring: String
+ def unableToCreateMonitoring(reason: String): String
def chooseTypeOfMonitoring: String
diff --git a/server/src/main/scala/com/lbs/server/lang/Ua.scala b/server/src/main/scala/com/lbs/server/lang/Ua.scala
index 61c07ed..23fe9f2 100644
--- a/server/src/main/scala/com/lbs/server/lang/Ua.scala
+++ b/server/src/main/scala/com/lbs/server/lang/Ua.scala
@@ -109,7 +109,7 @@ object Ua extends Lang {
override def monitoringHasBeenCreated: String = "👍 Моніторинг був створений! Список активних /monitorings"
- override def unableToCreateMonitoring: String = s"👎 Не вдається створити моніторинг. Будь ласка, створіть /bug"
+ override def unableToCreateMonitoring(reason: String): String = s"👎 Не вдається створити моніторинг. Причина: $reason."
override def chooseTypeOfMonitoring: String = "➡ Будь ласка, виберіть тип моніторингу"
@@ -302,9 +302,9 @@ object Ua extends Lang {
|${capitalizeFirstLetter(clinic)}: ${term.clinic.name}
|${capitalizeFirstLetter(city)}: ${monitoring.cityName}""".stripMargin
- override def maximumMonitoringsLimitExceeded: String = "Максимальна кількість моніторінгів 5"
+ override def maximumMonitoringsLimitExceeded: String = "Максимальна кількість моніторінгів 10"
- override def monitoringOfTheSameTypeExists: String = "У вас вже є активний моніторинг на таку ж саму послугу /monitorings"
+ override def monitoringOfTheSameTypeExists: String = "У вас вже є активний моніторинг на таку ж саму послугу i лiкаря /monitorings"
override def termIsOutdated: String =
s"""❗️ Схоже, що термін вже не є доступним
diff --git a/server/src/main/scala/com/lbs/server/repository/DataRepository.scala b/server/src/main/scala/com/lbs/server/repository/DataRepository.scala
index 96f4671..a4d56c6 100644
--- a/server/src/main/scala/com/lbs/server/repository/DataRepository.scala
+++ b/server/src/main/scala/com/lbs/server/repository/DataRepository.scala
@@ -123,15 +123,17 @@ class DataRepository(@Autowired em: EntityManager) {
.getResultList.asScala
}
- def findActiveMonitoring(accountId: Long, cityId: Long, serviceId: Long): Option[Monitoring] = {
+ def findActiveMonitoring(accountId: Long, cityId: Long, serviceId: Long, doctorId: Long): Option[Monitoring] = {
em.createQuery(
"""select monitoring from Monitoring monitoring where monitoring.active = true
| and monitoring.accountId = :accountId
| and monitoring.cityId = :cityId
- | and monitoring.serviceId = :serviceId""".stripMargin, classOf[Monitoring])
+ | and monitoring.serviceId = :serviceId
+ | and monitoring.doctorId = :doctorId""".stripMargin, classOf[Monitoring])
.setParameter("accountId", accountId)
.setParameter("cityId", cityId)
.setParameter("serviceId", serviceId)
+ .setParameter("doctorId", doctorId)
.getResultList.asScala.headOption
}
diff --git a/server/src/main/scala/com/lbs/server/service/DataService.scala b/server/src/main/scala/com/lbs/server/service/DataService.scala
index 07af256..6becf68 100644
--- a/server/src/main/scala/com/lbs/server/service/DataService.scala
+++ b/server/src/main/scala/com/lbs/server/service/DataService.scala
@@ -87,8 +87,8 @@ class DataService {
dataRepository.getActiveMonitorings(accountId)
}
- def findActiveMonitoring(accountId: Long, cityId: Long, serviceId: Long): Option[Monitoring] = {
- dataRepository.findActiveMonitoring(accountId, cityId, serviceId)
+ def findActiveMonitoring(accountId: Long, cityId: Long, serviceId: Long, doctorId: Long): Option[Monitoring] = {
+ dataRepository.findActiveMonitoring(accountId, cityId, serviceId, doctorId)
}
def getActiveMonitoringsSince(since: ZonedDateTime): Seq[Monitoring] = {
diff --git a/server/src/main/scala/com/lbs/server/service/MonitoringService.scala b/server/src/main/scala/com/lbs/server/service/MonitoringService.scala
index 78b2b29..3831f5d 100644
--- a/server/src/main/scala/com/lbs/server/service/MonitoringService.scala
+++ b/server/src/main/scala/com/lbs/server/service/MonitoringService.scala
@@ -204,8 +204,8 @@ class MonitoringService extends Logger {
def createMonitoring(monitoring: Monitoring): Monitoring = {
val userMonitoringsCount = dataService.getActiveMonitoringsCount(monitoring.accountId)
- require(userMonitoringsCount + 1 <= 5, lang(monitoring.userId).maximumMonitoringsLimitExceeded)
- val activeMonitoring = dataService.findActiveMonitoring(monitoring.accountId, monitoring.cityId, monitoring.serviceId)
+ require(userMonitoringsCount + 1 <= 10, lang(monitoring.userId).maximumMonitoringsLimitExceeded)
+ val activeMonitoring = dataService.findActiveMonitoring(monitoring.accountId, monitoring.cityId, monitoring.serviceId, monitoring.doctorId)
require(activeMonitoring.isEmpty, lang(monitoring.userId).monitoringOfTheSameTypeExists)
dataService.saveMonitoring(monitoring)
}