• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

input-output-hk / atala-prism-building-blocks / 6767313165

06 Nov 2023 06:54AM UTC coverage: 31.199% (+0.5%) from 30.679%
6767313165

push

web-flow
feat: Keycloak container support with clients and PermissionManagement service (#755)

Signed-off-by: Yurii Shynbuiev <yurii.shynbuiev@iohk.io>
Signed-off-by: Pat Losoponkul <pat.losoponkul@iohk.io>
Co-authored-by: Pat Losoponkul <pat.losoponkul@iohk.io>

72 of 171 new or added lines in 7 files covered. (42.11%)

236 existing lines in 70 files now uncovered.

4029 of 12914 relevant lines covered (31.2%)

0.31 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

69.23
/shared/src/main/scala/io/iohk/atala/shared/db/ContextAwareTask.scala
1
package io.iohk.atala.shared.db
2

3
import doobie.*
4
import doobie.postgres.implicits.*
5
import doobie.syntax.ConnectionIOOps
6
import doobie.util.transactor.Transactor
7
import io.iohk.atala.shared.models.{WalletAccessContext, WalletId}
8
import zio.*
9
import zio.interop.catz.*
10

11
import java.util.UUID
12

13
trait ContextAware
14
type ContextAwareTask[T] = Task[T] with ContextAware
15

16
object Implicits {
17

1✔
18
  given walletIdGet: Get[WalletId] = Get[UUID].map(WalletId.fromUUID)
1✔
19
  given walletIdPut: Put[WalletId] = Put[UUID].contramap(_.toUUID)
20

21
  private val WalletIdVariableName = "app.current_wallet_id"
22

23
  extension [A](ma: ConnectionIO[A]) {
1✔
UNCOV
24
    def transactWithoutContext(xa: Transactor[ContextAwareTask]): Task[A] = {
×
25
      ConnectionIOOps(ma).transact(xa.asInstanceOf[Transactor[Task]])
26
    }
27

1✔
28
    def transactWallet(xa: Transactor[ContextAwareTask]): RIO[WalletAccessContext, A] = {
1✔
29
      def walletCxnIO(ctx: WalletAccessContext) = {
1✔
30
        for {
1✔
31
          _ <- doobie.free.connection.createStatement.map { statement =>
×
32
            statement.execute(s"SET LOCAL $WalletIdVariableName TO '${ctx.walletId}'")
33
          }
1✔
34
          result <- ma
35
        } yield result
36
      }
37

1✔
38
      for {
×
UNCOV
39
        ctx <- ZIO.service[WalletAccessContext]
×
40
        result <- ConnectionIOOps(walletCxnIO(ctx)).transact(xa.asInstanceOf[Transactor[Task]])
41
      } yield result
42
    }
43

44
  }
45

46
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc