@sphereon/ssi-sdk.data-store
Version:
36 lines (30 loc) • 1.53 kB
text/typescript
import { BaseEntity, BeforeInsert, BeforeUpdate, Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'
import { CredentialLocaleBrandingEntity } from './CredentialLocaleBrandingEntity'
import { validate, Validate, ValidationError } from 'class-validator'
import { IsNonEmptyStringConstraint } from '../validators'
('CredentialClaims')
('IDX_CredentialClaimsEntity_credentialLocaleBranding_locale', ['credentialLocaleBranding', 'key'], { unique: true })
export class CredentialClaimsEntity extends BaseEntity {
('uuid')
id!: string
('varchar', { name: 'key', length: 255, nullable: false, unique: false })
(IsNonEmptyStringConstraint, { message: 'Blank claim keys are not allowed' })
key!: string
('varchar', { name: 'name', length: 255, nullable: false, unique: false })
(IsNonEmptyStringConstraint, { message: 'Blank claim names are not allowed' })
name!: string
(() => CredentialLocaleBrandingEntity, (credentialLocaleBranding: CredentialLocaleBrandingEntity) => credentialLocaleBranding.claims, {
cascade: ['insert', 'update'],
onDelete: 'CASCADE',
})
credentialLocaleBranding!: CredentialLocaleBrandingEntity
()
()
async validate(): Promise<undefined> {
const validation: Array<ValidationError> = await validate(this)
if (validation.length > 0) {
return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
}
return
}
}