From 49ce35cbcf36cb099a13b2f41032230e0853234f Mon Sep 17 00:00:00 2001 From: Eugene Zadyra Date: Wed, 22 Jan 2020 09:59:36 +0100 Subject: [PATCH] remove "submit bug" support --- .../db/changelog/05-drop-bugs-table.yml | 11 +++ .../main/resources/db/liquibase-changelog.yml | 3 + .../scala/com/lbs/server/BootConfig.scala | 17 +---- .../com/lbs/server/conversation/Bug.scala | 74 ------------------- .../com/lbs/server/conversation/Chat.scala | 15 +--- .../main/scala/com/lbs/server/lang/En.scala | 11 +-- .../main/scala/com/lbs/server/lang/Lang.scala | 3 - .../main/scala/com/lbs/server/lang/Ua.scala | 11 +-- .../server/repository/DataRepository.scala | 10 +-- .../com/lbs/server/repository/model/Bug.scala | 44 ----------- .../com/lbs/server/service/DataService.scala | 9 --- .../repository/DataRepositorySpec.scala | 14 +--- 12 files changed, 22 insertions(+), 200 deletions(-) create mode 100644 server/src/main/resources/db/changelog/05-drop-bugs-table.yml delete mode 100644 server/src/main/scala/com/lbs/server/conversation/Bug.scala delete mode 100644 server/src/main/scala/com/lbs/server/repository/model/Bug.scala diff --git a/server/src/main/resources/db/changelog/05-drop-bugs-table.yml b/server/src/main/resources/db/changelog/05-drop-bugs-table.yml new file mode 100644 index 0000000..e91867a --- /dev/null +++ b/server/src/main/resources/db/changelog/05-drop-bugs-table.yml @@ -0,0 +1,11 @@ +databaseChangeLog: +- changeSet: + id: 05 + author: dyrkin + preConditions: + onFail: MARK_RAN + tableExists: + tableName: bug + changes: + - dropTable: + tableName: bug \ No newline at end of file diff --git a/server/src/main/resources/db/liquibase-changelog.yml b/server/src/main/resources/db/liquibase-changelog.yml index a8fa679..26bbea4 100644 --- a/server/src/main/resources/db/liquibase-changelog.yml +++ b/server/src/main/resources/db/liquibase-changelog.yml @@ -13,4 +13,7 @@ databaseChangeLog: relativeToChangelogFile: true - include: file: changelog/04-add-payerid-column-to-monitoring.yml + relativeToChangelogFile: true +- include: + file: changelog/05-drop-bugs-table.yml relativeToChangelogFile: true \ No newline at end of file diff --git a/server/src/main/scala/com/lbs/server/BootConfig.scala b/server/src/main/scala/com/lbs/server/BootConfig.scala index b35c0f8..e02d9f3 100644 --- a/server/src/main/scala/com/lbs/server/BootConfig.scala +++ b/server/src/main/scala/com/lbs/server/BootConfig.scala @@ -7,16 +7,12 @@ import com.lbs.bot.Bot import com.lbs.bot.telegram.TelegramBot import com.lbs.server.conversation._ import com.lbs.server.lang.Localization -import com.lbs.server.repository.model import com.lbs.server.repository.model.Monitoring import com.lbs.server.service.{ApiService, DataService, MonitoringService} import org.jasypt.util.text.{StrongTextEncryptor, TextEncryptor} import org.springframework.beans.factory.annotation.{Autowired, Value} import org.springframework.context.annotation.{Bean, Configuration} -import scala.io.Source -import scala.util.Try - @Configuration class BootConfig { @Value("${security.secret}") @@ -85,10 +81,6 @@ class BootConfig { def visitsFactory: UserIdTo[Visits] = userId => new Visits(userId, bot, apiService, localization, visitsPagerFactory)(actorSystem) - @Bean - def bugFactory: UserIdTo[Bug] = - userId => new Bug(userId, bot, dataService, bugPagerFactory, localization)(actorSystem) - @Bean def settingsFactory: UserIdTo[Settings] = userId => new Settings(userId, bot, dataService, localization)(actorSystem) @@ -100,7 +92,7 @@ class BootConfig { @Bean def chatFactory: UserIdTo[Chat] = userId => new Chat(userId, dataService, monitoringService, bookFactory, helpFactory, - monitoringsFactory, monitoringsHistoryFactory, historyFactory, visitsFactory, settingsFactory, bugFactory, accountFactory)(actorSystem) + monitoringsFactory, monitoringsHistoryFactory, historyFactory, visitsFactory, settingsFactory, accountFactory)(actorSystem) @Bean def datePickerFactory: UserIdWithOriginatorTo[DatePicker] = (userId, originator) => @@ -129,13 +121,6 @@ class BootConfig { (page: Int, pages: Int) => lang(userId).upcomingVisitsHeader(page, pages), Some("cancel"), localization, originator)(actorSystem) - @Bean - def bugPagerFactory: UserIdWithOriginatorTo[Pager[model.Bug]] = (userId, originator) => - new Pager[model.Bug](userId, bot, - (bug: model.Bug, page: Int, index: Int) => lang(userId).bugEntry(bug, page, index), - (page: Int, pages: Int) => lang(userId).bugsHeader(page, pages), - None, localization, originator)(actorSystem) - @Bean def historyPagerFactory: UserIdWithOriginatorTo[Pager[HistoricVisit]] = (userId, originator) => new Pager[HistoricVisit](userId, bot, diff --git a/server/src/main/scala/com/lbs/server/conversation/Bug.scala b/server/src/main/scala/com/lbs/server/conversation/Bug.scala deleted file mode 100644 index c10569d..0000000 --- a/server/src/main/scala/com/lbs/server/conversation/Bug.scala +++ /dev/null @@ -1,74 +0,0 @@ - -package com.lbs.server.conversation - -import akka.actor.ActorSystem -import com.lbs.bot.model.{Button, Command} -import com.lbs.bot.{Bot, _} -import com.lbs.server.conversation.Bug._ -import com.lbs.server.conversation.Login.UserId -import com.lbs.server.conversation.Pager.SimpleItemsProvider -import com.lbs.server.conversation.base.Conversation -import com.lbs.server.lang.{Localizable, Localization} -import com.lbs.server.repository.model -import com.lbs.server.service.DataService -import com.lbs.server.util.MessageExtractors - -class Bug(val userId: UserId, bot: Bot, dataService: DataService, bugPagerFactory: UserIdWithOriginatorTo[Pager[model.Bug]], - val localization: Localization)(val actorSystem: ActorSystem) extends Conversation[Unit] with Localizable { - - private val bugPager = bugPagerFactory(userId, self) - - entryPoint(askAction) - - def askAction: Step = - ask { _ => - bot.sendMessage(userId.source, lang.bugAction, inlineKeyboard = - createInlineKeyboard(Seq(Button(lang.createNewBug, Tags.SubmitNew), Button(lang.showSubmittedBugs, Tags.ListSubmitted)))) - } onReply { - case Msg(Command(_, _, Some(Tags.SubmitNew)), _) => - goto(askBugDescription) - case Msg(Command(_, _, Some(Tags.ListSubmitted)), _) => - goto(displaySubmittedBugs) - } - - def displaySubmittedBugs: Step = - process { _ => - val bugs = dataService.getBugs(userId.userId) - bugPager.restart() - bugPager ! Right[Throwable, Seq[model.Bug]](bugs).map(new SimpleItemsProvider(_)) - goto(processResponseFromPager) - } - - def processResponseFromPager: Step = - monologue { - case Msg(cmd: Command, _) => - bugPager ! cmd - stay() - case Msg(Pager.NoItemsFound, _) => - bot.sendMessage(userId.source, lang.noSubmittedIssuesFound) - end() - } - - def askBugDescription: Step = - ask { _ => - bot.sendMessage(userId.source, lang.enterIssueDetails) - } onReply { - case Msg(MessageExtractors.TextCommand(details), _) => - val bugId = dataService.submitBug(userId.userId, userId.source.sourceSystem.id, details) - bot.sendMessage(userId.source, lang.bugHasBeenCreated(bugId.getOrElse(-1L))) - end() - } - - beforeDestroy { - bugPager.destroy() - } -} - -object Bug { - - object Tags { - val SubmitNew = "submit" - val ListSubmitted = "list" - } - -} \ No newline at end of file diff --git a/server/src/main/scala/com/lbs/server/conversation/Chat.scala b/server/src/main/scala/com/lbs/server/conversation/Chat.scala index 3992676..fe27921 100644 --- a/server/src/main/scala/com/lbs/server/conversation/Chat.scala +++ b/server/src/main/scala/com/lbs/server/conversation/Chat.scala @@ -14,8 +14,7 @@ import scala.util.matching.Regex class Chat(val userId: UserId, dataService: DataService, monitoringService: MonitoringService, bookingFactory: UserIdTo[Book], helpFactory: UserIdTo[Help], monitoringsFactory: UserIdTo[Monitorings], monitoringsHistoryFactory: UserIdTo[MonitoringsHistory], historyFactory: UserIdTo[History], - visitsFactory: UserIdTo[Visits], settingsFactory: UserIdTo[Settings], - bugFactory: UserIdTo[Bug], accountFactory: UserIdTo[Account])(val actorSystem: ActorSystem) extends Conversation[Unit] with Logger { + visitsFactory: UserIdTo[Visits], settingsFactory: UserIdTo[Settings], accountFactory: UserIdTo[Account])(val actorSystem: ActorSystem) extends Conversation[Unit] with Logger { private val book = bookingFactory(userId) private val help = helpFactory(userId) @@ -24,7 +23,6 @@ class Chat(val userId: UserId, dataService: DataService, monitoringService: Moni private val history = historyFactory(userId) private val visits = visitsFactory(userId) private val settings = settingsFactory(userId) - private val bug = bugFactory(userId) private val account = accountFactory(userId) entryPoint(helpChat) @@ -60,13 +58,6 @@ class Chat(val userId: UserId, dataService: DataService, monitoringService: Moni stay() } - private def bugChat: Step = - dialogue(bug) { - case Msg(TextCommand("/bug"), _) => - bug.restart() - stay() - } - private def monitoringsChat: Step = dialogue(monitorings) { case Msg(TextCommand("/monitorings"), _) => @@ -106,9 +97,6 @@ class Chat(val userId: UserId, dataService: DataService, monitoringService: Moni } private def secondaryState(interactional: Interactional): MessageProcessorFn = { - case Msg(cmd@TextCommand("/bug"), _) => - this ! cmd - goto(bugChat) case Msg(cmd@TextCommand("/help"), _) => self ! cmd goto(helpChat) @@ -155,7 +143,6 @@ class Chat(val userId: UserId, dataService: DataService, monitoringService: Moni history.destroy() visits.destroy() settings.destroy() - bug.destroy() account.destroy() } } 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 0457d30..f6ebbbc 100644 --- a/server/src/main/scala/com/lbs/server/lang/En.scala +++ b/server/src/main/scala/com/lbs/server/lang/En.scala @@ -7,7 +7,7 @@ import java.util.Locale import com.lbs.api.json.model.{AvailableVisitsTermPresentation, HistoricVisit, ReservedVisit, ValuationsResponse} import com.lbs.server.conversation.Book import com.lbs.server.conversation.StaticData.StaticDataConfig -import com.lbs.server.repository.model.{Bug, Monitoring} +import com.lbs.server.repository.model.Monitoring import com.lbs.server.util.DateTimeUtil._ object En extends Lang { @@ -182,7 +182,7 @@ object En extends Lang { |/accounts - manage Luxmed accounts |/login - login again |/settings - settings, e.g. lang - |/bug - submit an issue""".stripMargin + |/help - the help""".stripMargin override def dateFromIs(dateFrom: ZonedDateTime): String = s"📅 Date from is ${formatDate(dateFrom, locale)}" @@ -222,13 +222,6 @@ object En extends Lang { override def upcomingVisitsHeader(page: Int, pages: Int): String = withPages(" Reserved visits", page, pages) - override def bugEntry(bug: Bug, page: Int, index: Int): String = - s"""⏱ ${formatDateTime(bug.submitted, locale)} - |Description: ${bug.details} - |State: ${if (bug.resolved) "✅ Resolved" else "🚫 Unresolved"} - | - |""".stripMargin - override def bugsHeader(page: Int, pages: Int): String = withPages(" Submitted issues", page, pages) 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 92a73a4..17404ee 100644 --- a/server/src/main/scala/com/lbs/server/lang/Lang.scala +++ b/server/src/main/scala/com/lbs/server/lang/Lang.scala @@ -7,7 +7,6 @@ import java.util.Locale import com.lbs.api.json.model.{AvailableVisitsTermPresentation, HistoricVisit, ReservedVisit, ValuationsResponse} import com.lbs.server.conversation.Book.BookingData import com.lbs.server.conversation.StaticData.StaticDataConfig -import com.lbs.server.repository.model import com.lbs.server.repository.model.Monitoring import scala.io.Source @@ -169,8 +168,6 @@ trait Lang { def upcomingVisitsHeader(page: Int, pages: Int): String - def bugEntry(bug: model.Bug, page: Int, index: Int): String - def bugsHeader(page: Int, pages: Int): String def monitoringEntry(monitoring: Monitoring, page: Int, index: Int): 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 edaef67..ce7e115 100644 --- a/server/src/main/scala/com/lbs/server/lang/Ua.scala +++ b/server/src/main/scala/com/lbs/server/lang/Ua.scala @@ -7,7 +7,7 @@ import java.util.Locale import com.lbs.api.json.model.{AvailableVisitsTermPresentation, HistoricVisit, ReservedVisit, ValuationsResponse} import com.lbs.server.conversation.Book import com.lbs.server.conversation.StaticData.StaticDataConfig -import com.lbs.server.repository.model.{Bug, Monitoring} +import com.lbs.server.repository.model.Monitoring import com.lbs.server.util.DateTimeUtil._ object Ua extends Lang { @@ -181,7 +181,7 @@ object Ua extends Lang { |/accounts - управління акаунтами Luxmed |/login - залогінитися знову |/settings - налаштування - |/bug - відправити баг""".stripMargin + |/help - допомога""".stripMargin override def dateFromIs(dateFrom: ZonedDateTime): String = s"📅 Початкова дата ${formatDate(dateFrom, locale)}" @@ -221,13 +221,6 @@ object Ua extends Lang { override def upcomingVisitsHeader(page: Int, pages: Int): String = withPages(" Зарезервовані візити", page, pages) - override def bugEntry(bug: Bug, page: Int, index: Int): String = - s"""⏱ ${formatDateTime(bug.submitted, locale)} - |Опис: ${bug.details} - |Статус: ${if (bug.resolved) "✅ Вирішено" else "🚫 Невирішено"} - | - |""".stripMargin - override def bugsHeader(page: Int, pages: Int): String = withPages(" Створені баги", page, pages) 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 33c2e61..7b722aa 100644 --- a/server/src/main/scala/com/lbs/server/repository/DataRepository.scala +++ b/server/src/main/scala/com/lbs/server/repository/DataRepository.scala @@ -3,7 +3,7 @@ package com.lbs.server.repository import java.time.ZonedDateTime -import com.lbs.server.repository.model.{Bug, CityHistory, ClinicHistory, Credentials, DoctorHistory, JLong, Monitoring, ServiceHistory, Settings, Source, SystemUser} +import com.lbs.server.repository.model.{CityHistory, ClinicHistory, Credentials, DoctorHistory, JLong, Monitoring, ServiceHistory, Settings, Source, SystemUser} import javax.persistence.EntityManager import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Repository @@ -71,14 +71,6 @@ class DataRepository(@Autowired em: EntityManager) { .getResultList.asScala.headOption } - def getBugs(userId: Long): Seq[Bug] = { - em.createQuery( - """select bug from Bug bug where bug.userId = :userId order by bug.submitted desc""".stripMargin, classOf[Bug]) - .setParameter("userId", userId) - .setMaxResults(50) - .getResultList.asScala - } - def getActiveMonitorings: Seq[Monitoring] = { em.createQuery( """select monitoring from Monitoring monitoring where monitoring.active = true""".stripMargin, classOf[Monitoring]) diff --git a/server/src/main/scala/com/lbs/server/repository/model/Bug.scala b/server/src/main/scala/com/lbs/server/repository/model/Bug.scala deleted file mode 100644 index be89aaf..0000000 --- a/server/src/main/scala/com/lbs/server/repository/model/Bug.scala +++ /dev/null @@ -1,44 +0,0 @@ - -package com.lbs.server.repository.model - -import java.time.ZonedDateTime - -import javax.persistence.{Access, AccessType, Column, Entity} - -import scala.beans.BeanProperty - -@Entity -@Access(AccessType.FIELD) -class Bug extends RecordId { - @BeanProperty - @Column(name = "user_id", nullable = false) - var userId: JLong = _ - - @BeanProperty - @Column(name = "source_system_id", nullable = false) - var sourceSystemId: JLong = _ - - @BeanProperty - @Column(nullable = false) - var details: String = _ - - @BeanProperty - @Column(nullable = false) - var resolved: Boolean = false - - @BeanProperty - @Column(nullable = false) - var submitted: ZonedDateTime = ZonedDateTime.now() -} - -object Bug { - def apply(userId: Long, sourceSystemId: Long, details: String, resolved: Boolean = false, submitted: ZonedDateTime = ZonedDateTime.now()): Bug = { - val bug = new Bug - bug.userId = userId - bug.sourceSystemId = sourceSystemId - bug.details = details - bug.resolved = resolved - bug.submitted = submitted - bug - } -} \ No newline at end of file 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 bc2ccce..6494682 100644 --- a/server/src/main/scala/com/lbs/server/service/DataService.scala +++ b/server/src/main/scala/com/lbs/server/service/DataService.scala @@ -39,15 +39,6 @@ class DataService { dataRepository.findCredentials(accountId) } - @Transactional - def submitBug(userId: Long, sourceSystemId: Long, details: String): Option[Long] = { - dataRepository.saveEntity(Bug(userId, sourceSystemId, details)).recordId - } - - def getBugs(chatId: Long): Seq[Bug] = { - dataRepository.getBugs(chatId) - } - @Transactional def saveMonitoring(monitoring: Monitoring): Monitoring = { dataRepository.saveEntity(monitoring) diff --git a/server/src/test/scala/com/lbs/server/repository/DataRepositorySpec.scala b/server/src/test/scala/com/lbs/server/repository/DataRepositorySpec.scala index b404df6..799a0ab 100644 --- a/server/src/test/scala/com/lbs/server/repository/DataRepositorySpec.scala +++ b/server/src/test/scala/com/lbs/server/repository/DataRepositorySpec.scala @@ -2,7 +2,7 @@ package com.lbs.server.repository import java.time.ZonedDateTime -import com.lbs.server.repository.model.{Bug, CityHistory, ClinicHistory, Credentials, DoctorHistory, ServiceHistory} +import com.lbs.server.repository.model.{CityHistory, ClinicHistory, Credentials, DoctorHistory, ServiceHistory} import javax.persistence.EntityManager import org.assertj.core.api.Assertions.assertThat import org.junit.Test @@ -100,16 +100,4 @@ class DataRepositorySpec { val found = dataRepository.getUserCredentials(1L) assertThat(found).isEqualTo(Seq(credentials)) } - - @Test - def whenGetBugs_thenReturnABug(): Unit = { - val bug1 = Bug(1L, 1L, "bug1", resolved = false, ZonedDateTime.now()) - val bug2 = Bug(1L, 2L, "bug2", resolved = false, ZonedDateTime.now()) - em.persist(bug1) - em.persist(bug2) - em.flush() - - val found = dataRepository.getBugs(1L) - assertThat(found).isEqualTo(Seq(bug2, bug1)) - } }