File

src/verifier/presentations/dto/vp-request.dto.ts

Index

Properties

Properties

Optional credentials
Type : Record<string, unknown>[]
Decorators :
@IsOptional()
@IsArray()
@IsObject({each: true})
Optional intermediary
Type : string
Decorators :
@IsOptional()
@IsString()
Optional privacy_policy
Type : string
Decorators :
@IsOptional()
@IsString()
Optional provided_attestations
Type : Record<string, unknown>[]
Decorators :
@IsOptional()
@IsArray()
@IsObject({each: true})
Optional purpose
Type : RegistrationCertificatePurpose[]
Decorators :
@IsOptional()
@IsArray()
@ValidateNested({each: true})
@Type(undefined)
Optional support_uri
Type : string
Decorators :
@IsOptional()
@IsString()
import { Type } from "class-transformer";
import {
    IsArray,
    IsObject,
    IsOptional,
    IsString,
    ValidateIf,
    ValidateNested,
} from "class-validator";

export class RegistrationCertificatePurpose {
    @IsString()
    lang!: string;

    @IsString()
    content!: string;
}

export class RegistrationCertificateBody {
    @IsOptional()
    @IsString()
    privacy_policy?: string;

    @IsOptional()
    @IsString()
    support_uri?: string;

    @IsOptional()
    @IsString()
    intermediary?: string;

    @IsOptional()
    @IsArray()
    @ValidateNested({ each: true })
    @Type(() => RegistrationCertificatePurpose)
    purpose?: RegistrationCertificatePurpose[];

    @IsOptional()
    @IsArray()
    @IsObject({ each: true })
    credentials?: Record<string, unknown>[];

    @IsOptional()
    @IsArray()
    @IsObject({ each: true })
    provided_attestations?: Record<string, unknown>[];
}

/**
 * RegistrationCertificateRequest DTO
 */
export class RegistrationCertificateRequest {
    /**
     * Optional registrar-side certificate identifier.
     * If provided and still valid, EUDIPLO reuses it instead of creating a new certificate.
     */
    @IsOptional()
    @IsString()
    id?: string;

    /**
     * Registration certificate creation payload.
     * This is merged with tenant-level registrar defaults when a certificate is created.
     */
    @ValidateIf((o) => !o.jwt)
    @IsObject()
    @ValidateNested()
    @Type(() => RegistrationCertificateBody)
    body?: RegistrationCertificateBody;

    /**
     * Optional pre-existing registration certificate JWT.
     * If provided, EUDIPLO forwards it as-is and does not create a new one.
     */
    @ValidateIf((o) => !o.body)
    @IsOptional()
    @IsString()
    jwt?: string;
}

results matching ""

    No results matching ""