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

hyperledger / identus-cloud-agent / 11056733508

26 Sep 2024 04:52PM UTC coverage: 48.532% (-0.03%) from 48.558%
11056733508

Pull #1366

CryptoKnightIOG
ATL-7775: Fix integration test

Signed-off-by: Bassam Riman <bassam.riman@iohk.io>
Pull Request #1366: feat: Default Backend API to Array Of Credential Schema

41 of 54 new or added lines in 8 files covered. (75.93%)

187 existing lines in 61 files now uncovered.

7622 of 15705 relevant lines covered (48.53%)

0.49 hits per line

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

30.0
/pollux/core/src/main/scala/org/hyperledger/identus/pollux/core/model/IssueCredentialRecord.scala
1
package org.hyperledger.identus.pollux.core.model
2

3
import org.hyperledger.identus.castor.core.model.did.CanonicalPrismDID
4
import org.hyperledger.identus.mercury.protocol.invitation.v2.Invitation
5
import org.hyperledger.identus.mercury.protocol.issuecredential.{
6
  IssueCredential,
7
  IssueCredentialIssuedFormat,
8
  IssueCredentialOfferFormat,
9
  IssueCredentialRequestFormat,
10
  OfferCredential,
11
  RequestCredential
12
}
13
import org.hyperledger.identus.pollux.anoncreds.AnoncredCredentialRequestMetadata
14
import org.hyperledger.identus.pollux.core.model.IssueCredentialRecord.*
15
import org.hyperledger.identus.shared.models.*
16

17
import java.time.temporal.ChronoUnit
18
import java.time.Instant
19
import java.util.UUID
20

21
final case class IssueCredentialRecord(
22
    id: DidCommID,
23
    createdAt: Instant,
24
    updatedAt: Option[Instant],
25
    thid: DidCommID,
26
    schemaUris: Option[List[String]],
27
    credentialDefinitionId: Option[UUID],
28
    credentialDefinitionUri: Option[String],
29
    credentialFormat: CredentialFormat,
30
    invitation: Option[Invitation],
31
    role: Role,
32
    subjectId: Option[String],
33
    keyId: Option[KeyId],
34
    validityPeriod: Option[Double] = None,
×
35
    automaticIssuance: Option[Boolean],
36
    protocolState: ProtocolState,
37
    offerCredentialData: Option[OfferCredential],
38
    requestCredentialData: Option[RequestCredential],
39
    anonCredsRequestMetadata: Option[AnoncredCredentialRequestMetadata],
40
    issueCredentialData: Option[IssueCredential],
41
    issuedCredentialRaw: Option[String],
42
    issuingDID: Option[CanonicalPrismDID],
43
    metaRetries: Int,
44
    metaNextRetry: Option[Instant],
45
    metaLastFailure: Option[Failure],
46
) {
47
  def offerCredentialFormatAndData: Option[(IssueCredentialOfferFormat, OfferCredential)] =
1✔
48
    offerCredentialData.map { data =>
1✔
49
      credentialFormat.match
50
        case CredentialFormat.JWT       => (IssueCredentialOfferFormat.JWT, data)
1✔
51
        case CredentialFormat.SDJWT     => (IssueCredentialOfferFormat.SDJWT, data)
×
52
        case CredentialFormat.AnonCreds => (IssueCredentialOfferFormat.Anoncred, data)
×
53
    }
54
  def requestCredentialFormatAndData: Option[(IssueCredentialRequestFormat, RequestCredential)] =
×
55
    requestCredentialData.map { data =>
×
56
      credentialFormat.match
57
        case CredentialFormat.JWT       => (IssueCredentialRequestFormat.JWT, data)
×
58
        case CredentialFormat.SDJWT     => (IssueCredentialRequestFormat.SDJWT, data)
×
59
        case CredentialFormat.AnonCreds => (IssueCredentialRequestFormat.Anoncred, data)
×
60
    }
61
  def issuedCredentialFormatAndData: Option[(IssueCredentialIssuedFormat, IssueCredential)] =
×
62
    issueCredentialData.map { data =>
×
63
      credentialFormat.match
64
        case CredentialFormat.JWT       => (IssueCredentialIssuedFormat.JWT, data)
×
65
        case CredentialFormat.SDJWT     => (IssueCredentialIssuedFormat.SDJWT, data)
×
66
        case CredentialFormat.AnonCreds => (IssueCredentialIssuedFormat.Anoncred, data)
×
67
    }
68

69
  def withTruncatedTimestamp(unit: ChronoUnit = ChronoUnit.MICROS): IssueCredentialRecord =
1✔
70
    copy(
71
      createdAt = createdAt.truncatedTo(unit),
1✔
UNCOV
72
      updatedAt = updatedAt.map(_.truncatedTo(unit)),
×
73
      metaNextRetry = metaNextRetry.map(_.truncatedTo(unit)),
1✔
74
    )
75
}
76

77
final case class ValidIssuedCredentialRecord(
78
    id: DidCommID,
79
    issuedCredentialRaw: Option[String],
80
    credentialFormat: CredentialFormat,
81
    subjectId: Option[String],
82
    keyId: Option[KeyId],
83
)
84

85
final case class ValidFullIssuedCredentialRecord(
86
    id: DidCommID,
87
    issuedCredential: Option[IssueCredential],
88
    credentialFormat: CredentialFormat,
89
    schemaUris: Option[List[String]],
90
    credentialDefinitionUri: Option[String],
91
    subjectId: Option[String],
92
    keyId: Option[KeyId],
93
)
94

95
object IssueCredentialRecord {
96

97
  enum Role:
98
    case Issuer extends Role
99
    case Holder extends Role
100

101
  enum ProtocolState:
102
    // Issuer has created an offer in a database, but it has not been sent yet (in Issuer DB)
103
    case OfferPending extends ProtocolState
104
    // Issuer has sent an offer to a holder (in Issuer DB)
105
    case OfferSent extends ProtocolState
106
    // Holder has received an offer (In Holder DB)
107
    case OfferReceived extends ProtocolState
108

109
    // Holder has reviewed and approved the offer (in Holder DB)
110
    case RequestPending extends ProtocolState
111
    // Holder has generated the request that that includes the subjectID and proofs (in Holder DB)
112
    case RequestGenerated extends ProtocolState
113
    // Holder has sent a request to a an Issuer (in Holder DB)
114
    case RequestSent extends ProtocolState
115
    // Issuer has received a request from the holder (In Issuer DB)
116
    case RequestReceived extends ProtocolState
117

118
    // Holder declined the offer sent by Issuer (Holder DB) or Issuer declined the proposal sent by Holder (Issuer DB)
119
    case ProblemReportPending extends ProtocolState
120
    // Holder has sent problem report to Issuer (Holder DB) or Issuer has sent problem report to Holder (Issuer DB)
121
    case ProblemReportSent extends ProtocolState
122
    // Holder has received problem resport from Issuer (Holder DB) or Issuer has received problem report from Holder (Issuer DB)
123
    case ProblemReportReceived extends ProtocolState
124

125
    // Issuer has "accepted" a credential request received from a Holder (Issuer DB)
126
    case CredentialPending extends ProtocolState
127
    // Issuer has generated (signed) the credential and is now ready to send it to the Holder (Issuer DB)
128
    case CredentialGenerated extends ProtocolState
129
    // The credential has been sent to the holder (In Issuer DB)
130
    case CredentialSent extends ProtocolState
131
    // Holder has received the credential (In Holder DB)
132
    case CredentialReceived extends ProtocolState
133
    // Issuer has created a OOB Credential offer request  (in Issuer DB)
134
    case InvitationGenerated extends ProtocolState
135
    // Issuer receives a Credential offer from an expired OOB Credential offer request (update Issuer DB)
136
    case InvitationExpired extends ProtocolState
137

138
}
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