Skip to content

Commit

Permalink
feat: API Supports ValidFrom And ValidTo (#1298)
Browse files Browse the repository at this point in the history
Signed-off-by: Bassam Riman <[email protected]>
  • Loading branch information
CryptoKnightIOG authored Aug 23, 2024
1 parent e077cdd commit b19f514
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,9 @@ case class OIDCCredentialIssuerServiceImpl(
maybeCredentialStatus = None, // TODO: Add credential status
maybeRefreshService = None, // TODO: Add refresh service
maybeEvidence = None, // TODO: Add evidence
maybeTermsOfUse = None // TODO: Add terms of use
maybeTermsOfUse = None, // TODO: Add terms of use,
maybeValidFrom = None, // TODO: Add ValidFrom
maybeValidUntil = None // TODO: Add ValidUntil
)

ZIO.succeed(credential) // TODO: there might be other calls to fill the VC claims from the session, etc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ object VcVerificationControllerImplSpec extends ZIOSpecDefault with VcVerificati
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1085,7 +1085,9 @@ class CredentialServiceImpl(
credentialSubject = claims.add("id", jwtPresentation.iss.asJson).asJson,
maybeRefreshService = None,
maybeEvidence = None,
maybeTermsOfUse = None
maybeTermsOfUse = None,
maybeValidFrom = None,
maybeValidUntil = None
)
signedJwtCredential = W3CCredential.toEncodedJwt(w3Credential, jwtIssuer)
issueCredential = IssueCredential.build(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -94,6 +96,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -157,6 +161,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -220,6 +226,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -288,6 +296,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -356,6 +366,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -420,6 +432,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -484,6 +498,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down Expand Up @@ -548,6 +564,8 @@ object VcVerificationServiceImplSpec extends ZIOSpecDefault with VcVerificationS
issuer = issuer.did,
issuanceDate = Instant.parse("2010-01-01T00:00:00Z"),
maybeExpirationDate = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidFrom = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeValidUntil = Some(Instant.parse("2010-01-12T00:00:00Z")),
maybeCredentialSchema = Some(
CredentialSchema(
id = "did:work:MDP8AsFhHzhwUvGNuYkX7T;id=06e126d1-fa44-4882-a243-1e326fbe21db;version=1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ sealed trait CredentialPayload {

def maybeExp: Option[Instant]

def maybeValidFrom: Option[Instant]

def maybeValidUntil: Option[Instant]

def iss: String

def maybeCredentialStatus: Option[CredentialStatus]
Expand All @@ -109,7 +113,9 @@ sealed trait CredentialPayload {
maybeCredentialStatus = maybeCredentialStatus,
maybeRefreshService = maybeRefreshService,
maybeEvidence = maybeEvidence,
maybeTermsOfUse = maybeTermsOfUse
maybeTermsOfUse = maybeTermsOfUse,
maybeValidFrom = maybeValidFrom,
maybeValidUntil = maybeValidUntil
),
nbf = nbf,
aud = aud,
Expand All @@ -131,7 +137,9 @@ sealed trait CredentialPayload {
maybeRefreshService = maybeRefreshService,
maybeEvidence = maybeEvidence,
maybeTermsOfUse = maybeTermsOfUse,
aud = aud
aud = aud,
maybeValidFrom = maybeValidFrom,
maybeValidUntil = maybeValidUntil
)
}

Expand Down Expand Up @@ -176,6 +184,8 @@ case class JwtVc(
`type`: Set[String],
maybeCredentialSchema: Option[CredentialSchema],
credentialSubject: Json,
maybeValidFrom: Option[Instant],
maybeValidUntil: Option[Instant],
maybeCredentialStatus: Option[CredentialStatus],
maybeRefreshService: Option[RefreshService],
maybeEvidence: Option[Json],
Expand All @@ -199,6 +209,8 @@ case class JwtCredentialPayload(
override val maybeTermsOfUse = vc.maybeTermsOfUse
override val maybeCredentialSchema = vc.maybeCredentialSchema
override val credentialSubject = vc.credentialSubject
override val maybeValidFrom = vc.maybeValidFrom
override val maybeValidUntil = vc.maybeValidUntil
}

case class W3cCredentialPayload(
Expand All @@ -214,7 +226,9 @@ case class W3cCredentialPayload(
override val maybeRefreshService: Option[RefreshService],
override val maybeEvidence: Option[Json],
override val maybeTermsOfUse: Option[Json],
override val aud: Set[String] = Set.empty
override val aud: Set[String] = Set.empty,
override val maybeValidFrom: Option[Instant],
override val maybeValidUntil: Option[Instant]
) extends CredentialPayload {
override val maybeSub = credentialSubject.hcursor.downField("id").as[String].toOption
override val maybeJti = maybeId
Expand Down Expand Up @@ -384,6 +398,8 @@ object CredentialPayload {
issuer <- c.downField("issuer").as[String]
issuanceDate <- c.downField("issuanceDate").as[Instant]
maybeExpirationDate <- c.downField("expirationDate").as[Option[Instant]]
maybeValidFrom <- c.downField("maybeValidFrom").as[Option[Instant]]
maybeValidUntil <- c.downField("maybeValidUntil").as[Option[Instant]]
maybeCredentialSchema <- c.downField("credentialSchema").as[Option[CredentialSchema]]
credentialSubject <- c.downField("credentialSubject").as[Json]
maybeCredentialStatus <- c.downField("credentialStatus").as[Option[CredentialStatus]]
Expand All @@ -398,6 +414,8 @@ object CredentialPayload {
issuer = DID(issuer),
issuanceDate = issuanceDate,
maybeExpirationDate = maybeExpirationDate,
maybeValidFrom = maybeValidFrom,
maybeValidUntil = maybeValidUntil,
maybeCredentialSchema = maybeCredentialSchema,
credentialSubject = credentialSubject,
maybeCredentialStatus = maybeCredentialStatus,
Expand Down Expand Up @@ -425,6 +443,8 @@ object CredentialPayload {
maybeRefreshService <- c.downField("refreshService").as[Option[RefreshService]]
maybeEvidence <- c.downField("evidence").as[Option[Json]]
maybeTermsOfUse <- c.downField("termsOfUse").as[Option[Json]]
maybeValidFrom <- c.downField("maybeValidFrom").as[Option[Instant]]
maybeValidUntil <- c.downField("maybeValidUntil").as[Option[Instant]]
} yield {
JwtVc(
`@context` = `@context`,
Expand All @@ -434,7 +454,9 @@ object CredentialPayload {
maybeCredentialStatus = maybeCredentialStatus,
maybeRefreshService = maybeRefreshService,
maybeEvidence = maybeEvidence,
maybeTermsOfUse = maybeTermsOfUse
maybeTermsOfUse = maybeTermsOfUse,
maybeValidFrom = maybeValidFrom,
maybeValidUntil = maybeValidUntil,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ object VCStatusList2021 {
maybeCredentialStatus = None,
maybeRefreshService = None,
maybeEvidence = None,
maybeTermsOfUse = None
maybeTermsOfUse = None,
maybeValidFrom = None,
maybeValidUntil = None
)
VCStatusList2021(w3Credential, jwtIssuer)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ object JWTVerificationTest extends ZIOSpecDefault {
maybeCredentialStatus = None,
maybeRefreshService = None,
maybeEvidence = None,
maybeTermsOfUse = None
maybeTermsOfUse = None,
maybeValidFrom = None,
maybeValidUntil = None
),
nbf = jwtCredentialNbf, // ISSUANCE DATE
aud = Set.empty,
Expand Down

0 comments on commit b19f514

Please sign in to comment.