src/issuer/configuration/issuance/issuance-config.controller.ts

Prefix

issuer/config

Relationships

Depends on

No results matching.

Index

Methods

Methods

getIssuanceConfigurations
getIssuanceConfigurations(user: TokenPayload)
Decorators :
@Get()

Returns the issuance configurations for this tenant. Creates a default one if it does not exist.

Parameters :
Name Type Optional
user TokenPayload No
reissueRegistrationCertificate
reissueRegistrationCertificate(user: TokenPayload)
Decorators :
@Post('registration-cert/reissue')
@ApiOperation({summary: 'Reissue issuer registration certificate', description: 'Bypasses and refreshes the issuer registration certificate cache, revoking the previous active certificate when replaced.'})
@ApiResponse({status: 201, description: 'Updated issuance configuration', type: IssuanceConfig})
@ApiResponse({status: 400, description: 'Registration certificate is not enabled/generate mode or registrar is unavailable'})

Force-reissue issuer registration certificate cache.

Parameters :
Name Type Optional
user TokenPayload No
storeIssuanceConfiguration
storeIssuanceConfiguration(config: UpdateIssuanceDto, user: TokenPayload, req: Request)
Decorators :
@Post()

Stores the issuance configuration for this tenant.

Parameters :
Name Type Optional
config UpdateIssuanceDto No
user TokenPayload No
req Request No
Returns : any
import { Body, Controller, Get, Post, Req } from "@nestjs/common";
import { ApiOperation, ApiResponse, ApiTags } from "@nestjs/swagger";
import { Request } from "express";
import { Role } from "../../../auth/roles/role.enum";
import { Secured } from "../../../auth/secure.decorator";
import { Token, TokenPayload } from "../../../auth/token.decorator";
import { IssuanceDto } from "./dto/issuance.dto";
import { UpdateIssuanceDto } from "./dto/update-issuance.dto";
import { IssuanceConfig } from "./entities/issuance-config.entity";
import { IssuanceService } from "./issuance.service";

@ApiTags("Issuer")
@Secured([Role.Issuances])
@Controller("issuer/config")
export class IssuanceConfigController {
    constructor(private readonly issuanceService: IssuanceService) {}

    /**
     * Returns the issuance configurations for this tenant. Creates a default one if it does not exist.
     * @returns
     */
    @Get()
    getIssuanceConfigurations(
        @Token() user: TokenPayload,
    ): Promise<IssuanceConfig> {
        return this.issuanceService
            .getIssuanceConfiguration(user.entity!.id)
            .catch(() =>
                this.issuanceService.storeIssuanceConfiguration(
                    user.entity!.id,
                    {} as IssuanceDto,
                ),
            );
    }

    /**
     * Stores the issuance configuration for this tenant.
     * @param config
     * @returns
     */
    @Post()
    storeIssuanceConfiguration(
        @Body() config: UpdateIssuanceDto,
        @Token() user: TokenPayload,
        @Req() req: Request,
    ) {
        return this.issuanceService.storeIssuanceConfiguration(
            user.entity!.id,
            config,
            user,
            req,
        );
    }

    /**
     * Force-reissue issuer registration certificate cache.
     */
    @Post("registration-cert/reissue")
    @ApiOperation({
        summary: "Reissue issuer registration certificate",
        description:
            "Bypasses and refreshes the issuer registration certificate cache, revoking the previous active certificate when replaced.",
    })
    @ApiResponse({
        status: 201,
        description: "Updated issuance configuration",
        type: IssuanceConfig,
    })
    @ApiResponse({
        status: 400,
        description:
            "Registration certificate is not enabled/generate mode or registrar is unavailable",
    })
    reissueRegistrationCertificate(
        @Token() user: TokenPayload,
    ): Promise<IssuanceConfig> {
        return this.issuanceService.reissueRegistrationCertificate(
            user.entity!.id,
        );
    }
}

results matching ""

    No results matching ""