1 /*
2  *  Make.org Core API
3  *  Copyright (C) 2018 Make.org
4  *
5  * This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU Affero General Public License as
7  *  published by the Free Software Foundation, either version 3 of the
8  *  License, or (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU Affero General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Affero General Public License
16  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  *
18  */
19 
20 package org.make.api.personality
21 
22 import cats.data.NonEmptyList
23 import cats.implicits._
24 import org.make.api.extensions.MakeDBExecutionContextComponent
25 import org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole
26 import org.make.api.technical.DatabaseTransactions._
27 import org.make.api.technical.PersistentServiceUtils.sortOrderQuery
28 import org.make.api.technical.{PersistentCompanion, ShortenedNames}
29 import org.make.core.technical.Pagination
30 import org.make.core.personality.{PersonalityRole, PersonalityRoleId}
31 import org.make.core.Order
32 import scalikejdbc._
33 
34 import scala.concurrent.Future
35 
36 trait DefaultPersistentPersonalityRoleServiceComponent extends PersistentPersonalityRoleServiceComponent {
37   this: MakeDBExecutionContextComponent =>
38 
39   override lazy val persistentPersonalityRoleService: DefaultPersistentPersonalityRoleService =
40     new DefaultPersistentPersonalityRoleService
41 
42   class DefaultPersistentPersonalityRoleService extends PersistentPersonalityRoleService with ShortenedNames {
43 
44     private val personalityRoleAlias = PersistentPersonalityRole.alias
45 
46     private val column = PersistentPersonalityRole.column
47 
48     override def persist(personalityRole: PersonalityRole): Future[PersonalityRole] = {
49       implicit val context: EC = writeExecutionContext
50       Future(NamedDB("WRITE").retryableTx { implicit session =>
51         withSQL {
52           insert
53             .into(PersistentPersonalityRole)
54             .namedValues(column.id -> personalityRole.personalityRoleId.value, column.name -> personalityRole.name)
55         }.execute()
56       }).as(personalityRole)
57     }
58 
59     override def modify(personalityRole: PersonalityRole): Future[PersonalityRole] = {
60       implicit val context: EC = writeExecutionContext
61       Future(NamedDB("WRITE").retryableTx { implicit session =>
62         withSQL {
63           update(PersistentPersonalityRole)
64             .set(column.name -> personalityRole.name)
65             .where(sqls.eq(column.id, personalityRole.personalityRoleId.value))
66         }.execute()
67       }).as(personalityRole)
68     }
69 
70     override def getById(personalityRoleId: PersonalityRoleId): Future[Option[PersonalityRole]] = {
71       implicit val context: EC = readExecutionContext
72       Future(NamedDB("READ").retryableTx { implicit session =>
73         withSQL {
74           select
75             .from(PersistentPersonalityRole.as(personalityRoleAlias))
76             .where(sqls.eq(personalityRoleAlias.id, personalityRoleId.value))
77         }.map(PersistentPersonalityRole.apply()).single()
78       }).map(_.map(_.toPersonalityRole))
79     }
80 
81     override def find(
82       offset: Pagination.Offset,
83       end: Option[Pagination.End],
84       sort: Option[String],
85       order: Option[Order],
86       maybeRoleIds: Option[Seq[PersonalityRoleId]],
87       maybeName: Option[String]
88     ): Future[Seq[PersonalityRole]] = {
89       implicit val context: EC = readExecutionContext
90       Future(NamedDB("READ").retryableTx { implicit session =>
91         withSQL {
92           val query: scalikejdbc.PagingSQLBuilder[PersistentPersonalityRole] = select
93             .from(PersistentPersonalityRole.as(personalityRoleAlias))
94             .where(
95               sqls.toAndConditionOpt(
96                 maybeName.map(name       => sqls.eq(personalityRoleAlias.name, name)),
97                 maybeRoleIds.map(roleIds => sqls.in(personalityRoleAlias.id, roleIds.map(_.value)))
98               )
99             )
100           sortOrderQuery(offset, end, sort, order, query)
101         }.map(PersistentPersonalityRole.apply()).list()
102       }).map(_.map(_.toPersonalityRole))
103     }
104 
105     override def count(maybeRoleIds: Option[Seq[PersonalityRoleId]], maybeName: Option[String]): Future[Int] = {
106       implicit val context: EC = readExecutionContext
107       Future(NamedDB("READ").retryableTx { implicit session =>
108         withSQL {
109           select(sqls.count)
110             .from(PersistentPersonalityRole.as(personalityRoleAlias))
111             .where(
112               sqls.toAndConditionOpt(
113                 maybeName.map(name       => sqls.eq(personalityRoleAlias.name, name)),
114                 maybeRoleIds.map(roleIds => sqls.in(personalityRoleAlias.id, roleIds.map(_.value)))
115               )
116             )
117         }.map(_.int(1)).single().getOrElse(0)
118       })
119     }
120 
121     override def delete(personalityRoleId: PersonalityRoleId): Future[Unit] = {
122       implicit val context: EC = readExecutionContext
123       Future(NamedDB("WRITE").retryableTx { implicit session =>
124         withSQL {
125           deleteFrom(PersistentPersonalityRole)
126             .where(sqls.eq(column.id, personalityRoleId.value))
127         }.execute()
128       }).void
129     }
130 
131   }
132 }
133 
134 object DefaultPersistentPersonalityRoleServiceComponent {
135 
136   final case class PersistentPersonalityRole(id: String, name: String) {
137     def toPersonalityRole: PersonalityRole = {
138       PersonalityRole(personalityRoleId = PersonalityRoleId(id), name = name)
139     }
140   }
141 
142   implicit object PersistentPersonalityRole extends PersistentCompanion[PersistentPersonalityRole, PersonalityRole] {
143     override val columnNames: Seq[String] =
144       Seq("id", "name")
145     final val swaggerAllowableValues = "id,name"
146 
147     override val tableName: String = "personality_role"
148 
149     override lazy val alias: SyntaxProvider[PersistentPersonalityRole] = syntax("personality_role")
150 
151     override lazy val defaultSortColumns: NonEmptyList[SQLSyntax] = NonEmptyList.of(alias.name)
152 
153     def apply(
154       personalityResultName: ResultName[PersistentPersonalityRole] = alias.resultName
155     )(resultSet: WrappedResultSet): PersistentPersonalityRole = {
156       PersistentPersonalityRole.apply(
157         id = resultSet.string(personalityResultName.id),
158         name = resultSet.string(personalityResultName.name)
159       )
160     }
161   }
162 
163 }
Line Stmt Id Pos Tree Symbol Tests Code
46 21779 1890 - 1922 Select scalikejdbc.SQLSyntaxSupportFeature.SQLSyntaxSupport.column org.scalatest.testsuite org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.column
49 20888 2045 - 2066 Select org.make.api.extensions.MakeDBExecutionContextComponent.writeExecutionContext org.scalatest.testsuite DefaultPersistentPersonalityRoleServiceComponent.this.writeExecutionContext
56 19925 2073 - 2375 Apply cats.Functor.Ops.as org.scalatest.testsuite cats.implicits.toFunctorOps[scala.concurrent.Future, Boolean](scala.concurrent.Future.apply[Boolean]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("WRITE") = "WRITE"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("WRITE", x$2); scalikejdbc.NamedDB.apply("WRITE", x$2)(x$3) }); <artifact> val x$4: scalikejdbc.DBSession => Boolean @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => scalikejdbc.`package`.withSQL.apply[scalikejdbc.UpdateOperation](scalikejdbc.`package`.insert.into(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole).namedValues((DefaultPersistentPersonalityRoleService.this.column.field("id"): scalikejdbc.interpolation.SQLSyntax).->[String](personalityRole.personalityRoleId.value)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory), (DefaultPersistentPersonalityRoleService.this.column.field("name"): scalikejdbc.interpolation.SQLSyntax).->[String](personalityRole.name)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))).execute.apply()(session)); <artifact> val x$5: scalikejdbc.TxBoundary[Boolean] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Boolean](x$4); qual$1.retryableTx[Boolean](x$4)(x$5) })(context))(cats.implicits.catsStdInstancesForFuture(context)).as[org.make.core.personality.PersonalityRole](personalityRole)
60 21401 2503 - 2524 Select org.make.api.extensions.MakeDBExecutionContextComponent.writeExecutionContext org.scalatest.testsuite DefaultPersistentPersonalityRoleServiceComponent.this.writeExecutionContext
67 20926 2531 - 2833 Apply cats.Functor.Ops.as org.scalatest.testsuite cats.implicits.toFunctorOps[scala.concurrent.Future, Boolean](scala.concurrent.Future.apply[Boolean]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("WRITE") = "WRITE"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("WRITE", x$2); scalikejdbc.NamedDB.apply("WRITE", x$2)(x$3) }); <artifact> val x$4: scalikejdbc.DBSession => Boolean @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => scalikejdbc.`package`.withSQL.apply[scalikejdbc.UpdateOperation](scalikejdbc.`package`.update.apply(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole).set((DefaultPersistentPersonalityRoleService.this.column.field("name"): scalikejdbc.interpolation.SQLSyntax).->[String](personalityRole.name)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory)).where(scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.column.field("id"): scalikejdbc.interpolation.SQLSyntax), personalityRole.personalityRoleId.value)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))).execute.apply()(session)); <artifact> val x$5: scalikejdbc.TxBoundary[Boolean] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Boolean](x$4); qual$1.retryableTx[Boolean](x$4)(x$5) })(context))(cats.implicits.catsStdInstancesForFuture(context)).as[org.make.core.personality.PersonalityRole](personalityRole)
71 20041 2974 - 2994 Select org.make.api.extensions.MakeDBExecutionContextComponent.readExecutionContext DefaultPersistentPersonalityRoleServiceComponent.this.readExecutionContext
78 21683 3001 - 3339 ApplyToImplicitArgs scala.concurrent.Future.map scala.concurrent.Future.apply[Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("READ") = "READ"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("READ", x$2); scalikejdbc.NamedDB.apply("READ", x$2)(x$3) }); <artifact> val x$7: scalikejdbc.DBSession => Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole] @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => { <synthetic> <stable> <artifact> val stabilizer$1: scalikejdbc.SQLToOption[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = scalikejdbc.`package`.withSQL.apply[Nothing](scalikejdbc.`package`.select.from[Nothing](org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.as(DefaultPersistentPersonalityRoleService.this.personalityRoleAlias)).where(scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.personalityRoleAlias.field("id"): scalikejdbc.interpolation.SQLSyntax), personalityRoleId.value)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))).map[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]({ <synthetic> val eta$0$1: scalikejdbc.ResultName[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole] = org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.apply$default$1; ((resultSet: scalikejdbc.WrappedResultSet) => org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.apply(eta$0$1)(resultSet)) }).single; { <artifact> val x$4: scalikejdbc.DBSession = session; <artifact> val x$5: scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] =:= scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals[scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor]]; <artifact> val x$6: scalikejdbc.ConnectionPoolContext = stabilizer$1.apply$default$2(); stabilizer$1.apply()(x$4, x$6, x$5) } }); <artifact> val x$8: scalikejdbc.TxBoundary[Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]](x$7); qual$1.retryableTx[Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]](x$7)(x$8) })(context).map[Option[org.make.core.personality.PersonalityRole]](((x$1: Option[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]) => x$1.map[org.make.core.personality.PersonalityRole](((x$2: org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole) => x$2.toPersonalityRole))))(context)
89 20719 3651 - 3671 Select org.make.api.extensions.MakeDBExecutionContextComponent.readExecutionContext DefaultPersistentPersonalityRoleServiceComponent.this.readExecutionContext
102 19643 3678 - 4338 ApplyToImplicitArgs scala.concurrent.Future.map scala.concurrent.Future.apply[List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("READ") = "READ"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("READ", x$2); scalikejdbc.NamedDB.apply("READ", x$2)(x$3) }); <artifact> val x$7: scalikejdbc.DBSession => List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole] @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => { <synthetic> <stable> <artifact> val stabilizer$1: scalikejdbc.SQLToList[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = scalikejdbc.`package`.withSQL.apply[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]({ val query: scalikejdbc.PagingSQLBuilder[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole] = scalikejdbc.`package`.select.from[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole](org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.as(DefaultPersistentPersonalityRoleService.this.personalityRoleAlias)).where(scalikejdbc.`package`.sqls.toAndConditionOpt(maybeName.map[scalikejdbc.interpolation.SQLSyntax](((name: String) => scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.personalityRoleAlias.field("name"): scalikejdbc.interpolation.SQLSyntax), name)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))), maybeRoleIds.map[scalikejdbc.interpolation.SQLSyntax](((roleIds: Seq[org.make.core.personality.PersonalityRoleId]) => scalikejdbc.`package`.sqls.in[String]((DefaultPersistentPersonalityRoleService.this.personalityRoleAlias.field("id"): scalikejdbc.interpolation.SQLSyntax), roleIds.map[String](((x$3: org.make.core.personality.PersonalityRoleId) => x$3.value)))(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))))); org.make.api.technical.PersistentServiceUtils.sortOrderQuery[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole, org.make.core.personality.PersonalityRole](offset, end, sort, order, query)(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole) }).map[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]({ <synthetic> val eta$0$1: scalikejdbc.ResultName[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole] = org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.apply$default$1; ((resultSet: scalikejdbc.WrappedResultSet) => org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.apply(eta$0$1)(resultSet)) }).list; { <artifact> val x$4: scalikejdbc.DBSession = session; <artifact> val x$5: scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] =:= scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals[scalikejdbc.SQL[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole,scalikejdbc.HasExtractor]]; <artifact> val x$6: scalikejdbc.ConnectionPoolContext = stabilizer$1.apply$default$2(); stabilizer$1.apply()(x$4, x$6, x$5) } }); <artifact> val x$8: scalikejdbc.TxBoundary[List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]](x$7); qual$1.retryableTx[List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]](x$7)(x$8) })(context).map[List[org.make.core.personality.PersonalityRole]](((x$4: List[org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole]) => x$4.map[org.make.core.personality.PersonalityRole](((x$5: org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole) => x$5.toPersonalityRole))))(context)
106 21784 4492 - 4512 Select org.make.api.extensions.MakeDBExecutionContextComponent.readExecutionContext org.scalatest.testsuite DefaultPersistentPersonalityRoleServiceComponent.this.readExecutionContext
107 20856 4519 - 5022 ApplyToImplicitArgs scala.concurrent.Future.apply org.scalatest.testsuite scala.concurrent.Future.apply[Int]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("READ") = "READ"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("READ", x$2); scalikejdbc.NamedDB.apply("READ", x$2)(x$3) }); <artifact> val x$7: scalikejdbc.DBSession => Int @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => { <synthetic> <stable> <artifact> val stabilizer$1: scalikejdbc.SQLToOption[Int,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = scalikejdbc.`package`.withSQL.apply[Nothing](scalikejdbc.`package`.select.apply[Nothing](scalikejdbc.`package`.sqls.count).from(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.as(DefaultPersistentPersonalityRoleService.this.personalityRoleAlias)).where(scalikejdbc.`package`.sqls.toAndConditionOpt(maybeName.map[scalikejdbc.interpolation.SQLSyntax](((name: String) => scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.personalityRoleAlias.field("name"): scalikejdbc.interpolation.SQLSyntax), name)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))), maybeRoleIds.map[scalikejdbc.interpolation.SQLSyntax](((roleIds: Seq[org.make.core.personality.PersonalityRoleId]) => scalikejdbc.`package`.sqls.in[String]((DefaultPersistentPersonalityRoleService.this.personalityRoleAlias.field("id"): scalikejdbc.interpolation.SQLSyntax), roleIds.map[String](((x$6: org.make.core.personality.PersonalityRoleId) => x$6.value)))(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory)))))).map[Int](((x$7: scalikejdbc.WrappedResultSet) => x$7.int(1))).single; { <artifact> val x$4: scalikejdbc.DBSession = session; <artifact> val x$5: scalikejdbc.SQL[Int,scalikejdbc.HasExtractor] =:= scalikejdbc.SQL[Int,scalikejdbc.HasExtractor] @scala.reflect.internal.annotations.uncheckedBounds = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals[scalikejdbc.SQL[Int,scalikejdbc.HasExtractor]]; <artifact> val x$6: scalikejdbc.ConnectionPoolContext = stabilizer$1.apply$default$2(); stabilizer$1.apply()(x$4, x$6, x$5) }.getOrElse[Int](0) }); <artifact> val x$8: scalikejdbc.TxBoundary[Int] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Int](x$7); qual$1.retryableTx[Int](x$7)(x$8) })(context)
122 19876 5143 - 5163 Select org.make.api.extensions.MakeDBExecutionContextComponent.readExecutionContext DefaultPersistentPersonalityRoleServiceComponent.this.readExecutionContext
123 20968 5176 - 5176 ApplyToImplicitArgs cats.instances.FutureInstances.catsStdInstancesForFuture cats.implicits.catsStdInstancesForFuture(context)
123 21407 5170 - 5386 ApplyToImplicitArgs scala.concurrent.Future.apply scala.concurrent.Future.apply[Boolean]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("WRITE") = "WRITE"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("WRITE", x$2); scalikejdbc.NamedDB.apply("WRITE", x$2)(x$3) }); <artifact> val x$4: scalikejdbc.DBSession => Boolean @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => scalikejdbc.`package`.withSQL.apply[scalikejdbc.UpdateOperation](scalikejdbc.`package`.deleteFrom.apply(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole).where(scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.column.field("id"): scalikejdbc.interpolation.SQLSyntax), personalityRoleId.value)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))).execute.apply()(session)); <artifact> val x$5: scalikejdbc.TxBoundary[Boolean] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Boolean](x$4); qual$1.retryableTx[Boolean](x$4)(x$5) })(context)
128 20049 5170 - 5391 Select cats.Functor.Ops.void cats.implicits.toFunctorOps[scala.concurrent.Future, Boolean](scala.concurrent.Future.apply[Boolean]({ <artifact> val qual$1: org.make.api.technical.DatabaseTransactions.RichDatabase = org.make.api.technical.DatabaseTransactions.RichDatabase({ <artifact> val x$1: String("WRITE") = "WRITE"; <artifact> val x$2: scalikejdbc.SettingsProvider = scalikejdbc.NamedDB.apply$default$2; <artifact> val x$3: scalikejdbc.ConnectionPoolContext = scalikejdbc.NamedDB.apply$default$3("WRITE", x$2); scalikejdbc.NamedDB.apply("WRITE", x$2)(x$3) }); <artifact> val x$4: scalikejdbc.DBSession => Boolean @scala.reflect.internal.annotations.uncheckedBounds = ((implicit session: scalikejdbc.DBSession) => scalikejdbc.`package`.withSQL.apply[scalikejdbc.UpdateOperation](scalikejdbc.`package`.deleteFrom.apply(org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole).where(scalikejdbc.`package`.sqls.eq[String]((DefaultPersistentPersonalityRoleService.this.column.field("id"): scalikejdbc.interpolation.SQLSyntax), personalityRoleId.value)(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory))).execute.apply()(session)); <artifact> val x$5: scalikejdbc.TxBoundary[Boolean] @scala.reflect.internal.annotations.uncheckedBounds = qual$1.retryableTx$default$2[Boolean](x$4); qual$1.retryableTx[Boolean](x$4)(x$5) })(context))(cats.implicits.catsStdInstancesForFuture(context)).void
138 19650 5657 - 5661 Select org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.name PersistentPersonalityRole.this.name
138 20672 5627 - 5648 Apply org.make.core.personality.PersonalityRoleId.apply org.make.core.personality.PersonalityRoleId.apply(PersistentPersonalityRole.this.id)
138 21745 5591 - 5662 Apply org.make.core.personality.PersonalityRole.apply org.make.core.personality.PersonalityRole.apply(org.make.core.personality.PersonalityRoleId.apply(PersistentPersonalityRole.this.id), PersistentPersonalityRole.this.name)
138 21574 5645 - 5647 Select org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.id PersistentPersonalityRole.this.id
144 20861 5842 - 5859 Apply scala.collection.SeqFactory.Delegate.apply org.scalatest.testsuite scala.`package`.Seq.apply[String]("id", "name")
145 19881 5899 - 5908 Literal <nosymbol> "id,name"
147 21451 5947 - 5965 Literal <nosymbol> org.scalatest.testsuite "personality_role"
156 19635 6338 - 6495 Apply org.make.api.personality.DefaultPersistentPersonalityRoleServiceComponent.PersistentPersonalityRole.apply DefaultPersistentPersonalityRoleServiceComponent.this.PersistentPersonalityRole.apply(resultSet.string(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("id"): scalikejdbc.interpolation.SQLSyntax))), resultSet.string(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("name"): scalikejdbc.interpolation.SQLSyntax))))
157 20001 6384 - 6426 Apply scalikejdbc.WrappedResultSet.string resultSet.string(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("id"): scalikejdbc.interpolation.SQLSyntax)))
157 20972 6401 - 6425 ApplyImplicitView scalikejdbc.interpolation.Implicits.scalikejdbcSQLSyntaxToStringImplicitDef scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("id"): scalikejdbc.interpolation.SQLSyntax))
158 21581 6460 - 6486 ApplyImplicitView scalikejdbc.interpolation.Implicits.scalikejdbcSQLSyntaxToStringImplicitDef scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("name"): scalikejdbc.interpolation.SQLSyntax))
158 20674 6443 - 6487 Apply scalikejdbc.WrappedResultSet.string resultSet.string(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef((personalityResultName.field("name"): scalikejdbc.interpolation.SQLSyntax)))