1 package org.make.api.migrations.db
2 
3 import org.make.api.migrations.db.SqlTools.ImprovedResultSet
4 
5 import java.sql.Connection
6 
7 @SuppressWarnings(Array("org.wartremover.warts.TraversableOps"))
8 class V147__Retro_compatibility_old_question_prefix extends Migration {
9 
10   val prefixes: Map[String, String] = Map(
11     "fr" -> "Il faut",
12     "de" -> "Man sollte",
13     "en" -> "We should",
14     "bg" -> "Трябва",
15     "hr" -> "Potrebno je",
16     "da" -> "Vi skal",
17     "es" -> "Es necesario",
18     "et" -> "On vaja",
19     "fi" -> "On toimittava näin:",
20     "el" -> "Πρέπει",
21     "hu" -> "Muszáj",
22     "it" -> "È necessario",
23     "lv" -> "Nepieciešams",
24     "lt" -> "Būtina",
25     "mt" -> "Il faut",
26     "nl" -> "Er moet",
27     "pl" -> "Należy",
28     "pt" -> "É necessário",
29     "ro" -> "Trebuie",
30     "sk" -> "Je potrebné",
31     "sl" -> "Treba je",
32     "sv" -> "Vi måste",
33     "cs" -> "Je třeba",
34     "uk" -> "Необхідно"
35   )
36 
37   private def getQuestionLanguages(implicit connection: Connection) =
38     connection
39       .prepareStatement(s"SELECT question_id, languages FROM question")
40       .executeQuery
41       .toMaps("question_id", "languages")
42 
43   private def updateConsultation(proposalPrefixes: String, questionId: String)(implicit connection: Connection) =
44     connection
45       .prepareStatement(s"""
46            |UPDATE operation_of_question
47            |SET proposal_prefixes = $$$${$proposalPrefixes}$$$$
48            |WHERE question_id = '$questionId'
49           """.stripMargin)
50       .execute()
51 
52   override def migrate(connection: Connection): Unit = {
53     implicit val C: Connection = connection
54     val questionLanguages = getQuestionLanguages
55     questionLanguages.foreach(questionLanguage => {
56       val questionId = questionLanguage("question_id")
57       val languagesString = questionLanguage("languages")
58       val proposalPrefixes =
59         languagesString
60           .slice(1, languagesString.length - 1)
61           .split(',')
62           .map(l => l -> prefixes(l))
63           .toMap
64           .toSeq
65           .map {
66             case (k, v) => s"\"$k\": \"$v\""
67           }
68           .mkString(", ")
69       updateConsultation(proposalPrefixes, questionId)
70     })
71   }
72 }
Line Stmt Id Pos Tree Symbol Tests Code
10 21301 302 - 906 Apply scala.collection.MapFactory.apply org.make.api.databasetest scala.Predef.Map.apply[String, String](scala.Predef.ArrowAssoc[String]("fr").->[String]("Il faut"), scala.Predef.ArrowAssoc[String]("de").->[String]("Man sollte"), scala.Predef.ArrowAssoc[String]("en").->[String]("We should"), scala.Predef.ArrowAssoc[String]("bg").->[String]("Трябва"), scala.Predef.ArrowAssoc[String]("hr").->[String]("Potrebno je"), scala.Predef.ArrowAssoc[String]("da").->[String]("Vi skal"), scala.Predef.ArrowAssoc[String]("es").->[String]("Es necesario"), scala.Predef.ArrowAssoc[String]("et").->[String]("On vaja"), scala.Predef.ArrowAssoc[String]("fi").->[String]("On toimittava näin:"), scala.Predef.ArrowAssoc[String]("el").->[String]("Πρέπει"), scala.Predef.ArrowAssoc[String]("hu").->[String]("Muszáj"), scala.Predef.ArrowAssoc[String]("it").->[String]("È necessario"), scala.Predef.ArrowAssoc[String]("lv").->[String]("Nepieciešams"), scala.Predef.ArrowAssoc[String]("lt").->[String]("Būtina"), scala.Predef.ArrowAssoc[String]("mt").->[String]("Il faut"), scala.Predef.ArrowAssoc[String]("nl").->[String]("Er moet"), scala.Predef.ArrowAssoc[String]("pl").->[String]("Należy"), scala.Predef.ArrowAssoc[String]("pt").->[String]("É necessário"), scala.Predef.ArrowAssoc[String]("ro").->[String]("Trebuie"), scala.Predef.ArrowAssoc[String]("sk").->[String]("Je potrebné"), scala.Predef.ArrowAssoc[String]("sl").->[String]("Treba je"), scala.Predef.ArrowAssoc[String]("sv").->[String]("Vi måste"), scala.Predef.ArrowAssoc[String]("cs").->[String]("Je třeba"), scala.Predef.ArrowAssoc[String]("uk").->[String]("Необхідно"))
11 21448 311 - 328 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("fr").->[String]("Il faut")
12 20497 334 - 354 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("de").->[String]("Man sollte")
13 19519 360 - 379 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("en").->[String]("We should")
14 21567 385 - 401 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("bg").->[String]("Трябва")
15 20579 407 - 428 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("hr").->[String]("Potrebno je")
16 19678 434 - 451 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("da").->[String]("Vi skal")
17 21308 457 - 479 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("es").->[String]("Es necesario")
18 20339 485 - 502 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("et").->[String]("On vaja")
19 19826 508 - 537 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("fi").->[String]("On toimittava näin:")
20 21380 543 - 559 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("el").->[String]("Πρέπει")
21 20466 565 - 581 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("hu").->[String]("Muszáj")
22 19479 587 - 609 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("it").->[String]("È necessario")
23 21570 615 - 637 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("lv").->[String]("Nepieciešams")
24 20705 643 - 659 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("lt").->[String]("Būtina")
25 19625 665 - 682 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("mt").->[String]("Il faut")
26 21238 688 - 705 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("nl").->[String]("Er moet")
27 20292 711 - 727 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("pl").->[String]("Należy")
28 19919 733 - 755 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("pt").->[String]("É necessário")
29 21491 761 - 778 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("ro").->[String]("Trebuie")
30 20421 784 - 805 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("sk").->[String]("Je potrebné")
31 19485 811 - 829 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("sl").->[String]("Treba je")
32 21112 835 - 853 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("sv").->[String]("Vi måste")
33 20711 859 - 877 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("cs").->[String]("Je třeba")
34 19629 883 - 902 Apply scala.Predef.ArrowAssoc.-> org.make.api.databasetest scala.Predef.ArrowAssoc[String]("uk").->[String]("Необхідно")
41 20302 982 - 1126 Apply org.make.api.migrations.db.SqlTools.ImprovedResultSet.toMaps org.make.api.databasetest org.make.api.migrations.db.SqlTools.ImprovedResultSet(connection.prepareStatement(("SELECT question_id, languages FROM question": String)).executeQuery()).toMaps("question_id", "languages")
50 19904 1246 - 1480 Apply java.sql.PreparedStatement.execute connection.prepareStatement(scala.Predef.augmentString(("\n |UPDATE operation_of_question\n |SET proposal_prefixes = $${".+(proposalPrefixes).+("}$$\n |WHERE question_id = \'").+(questionId).+("\'\n "): String)).stripMargin).execute()
54 21496 1611 - 1631 ApplyToImplicitArgs org.make.api.migrations.db.V147__Retro_compatibility_old_question_prefix.getQuestionLanguages org.make.api.databasetest V147__Retro_compatibility_old_question_prefix.this.getQuestionLanguages(C)
55 19745 1636 - 2153 Apply scala.collection.IterableOnceOps.foreach org.make.api.databasetest questionLanguages.foreach[Boolean](((questionLanguage: Map[String,String]) => { val questionId: String = questionLanguage.apply("question_id"); val languagesString: String = questionLanguage.apply("languages"); val proposalPrefixes: String = scala.Predef.wrapRefArray[(String, String)](scala.Predef.refArrayOps[String](scala.Predef.augmentString(scala.Predef.augmentString(languagesString).slice(1, languagesString.length().-(1))).split(',')).map[(String, String)](((l: String) => scala.Predef.ArrowAssoc[String](l).->[String](V147__Retro_compatibility_old_question_prefix.this.prefixes.apply(l))))((ClassTag.apply[(String, String)](classOf[scala.Tuple2]): scala.reflect.ClassTag[(String, String)]))).toMap[String, String](scala.this.<:<.refl[(String, String)]).toSeq.map[String](((x0$1: (String, String)) => x0$1 match { case (_1: String, _2: String): (String, String)((k @ _), (v @ _)) => ("\"".+(k).+("\": \"").+(v).+("\""): String) })).mkString(", "); V147__Retro_compatibility_old_question_prefix.this.updateConsultation(proposalPrefixes, questionId)(C) }))
56 20492 1707 - 1738 Apply scala.collection.MapOps.apply questionLanguage.apply("question_id")
57 19565 1767 - 1796 Apply scala.collection.MapOps.apply questionLanguage.apply("languages")
68 21121 1834 - 2091 Apply scala.collection.IterableOnceOps.mkString scala.Predef.wrapRefArray[(String, String)](scala.Predef.refArrayOps[String](scala.Predef.augmentString(scala.Predef.augmentString(languagesString).slice(1, languagesString.length().-(1))).split(',')).map[(String, String)](((l: String) => scala.Predef.ArrowAssoc[String](l).->[String](V147__Retro_compatibility_old_question_prefix.this.prefixes.apply(l))))((ClassTag.apply[(String, String)](classOf[scala.Tuple2]): scala.reflect.ClassTag[(String, String)]))).toMap[String, String](scala.this.<:<.refl[(String, String)]).toSeq.map[String](((x0$1: (String, String)) => x0$1 match { case (_1: String, _2: String): (String, String)((k @ _), (v @ _)) => ("\"".+(k).+("\": \"").+(v).+("\""): String) })).mkString(", ")
69 20689 2098 - 2146 ApplyToImplicitArgs org.make.api.migrations.db.V147__Retro_compatibility_old_question_prefix.updateConsultation V147__Retro_compatibility_old_question_prefix.this.updateConsultation(proposalPrefixes, questionId)(C)