File

src/session/session-config.controller.ts

Prefix

session-config

Description

Controller for managing session storage configuration. Accessible by tenant members with appropriate permissions.

Index

Methods

Methods

getConfig
getConfig(token: TokenPayload)
Decorators :
@Get()
@ApiOperation({summary: 'Get session storage configuration', description: 'Returns the session storage configuration for the current tenant.'})
@ApiResponse({status: 200, description: 'The session storage configuration', type: SessionStorageConfig})

Get the current session storage configuration for the authenticated tenant.

Parameters :
Name Type Optional
token TokenPayload No
resetConfig
resetConfig(token: TokenPayload)
Decorators :
@Delete()
@ApiOperation({summary: 'Reset session storage configuration', description: 'Resets the session storage configuration to use global defaults.'})
@ApiResponse({status: 200, description: 'Configuration reset successfully'})

Reset the session storage configuration to defaults.

Parameters :
Name Type Optional
token TokenPayload No
Returns : Promise<void>
updateConfig
updateConfig(token: TokenPayload, config: UpdateSessionConfigDto)
Decorators :
@Put()
@ApiOperation({summary: 'Update session storage configuration', description: 'Updates the session storage configuration for the current tenant.'})
@ApiResponse({status: 200, description: 'The updated session storage configuration', type: SessionStorageConfig})

Update the session storage configuration for the authenticated tenant.

Parameters :
Name Type Optional
token TokenPayload No
config UpdateSessionConfigDto No
import { Body, Controller, Delete, Get, Put } from "@nestjs/common";
import { ApiOperation, ApiResponse, ApiTags } from "@nestjs/swagger";
import { Role } from "../auth/roles/role.enum";
import { Secured } from "../auth/secure.decorator";
import { SessionStorageConfig } from "../auth/tenant/entitites/session-storage-config";
import { Token, TokenPayload } from "../auth/token.decorator";
import { UpdateSessionConfigDto } from "./dto/update-session-config.dto";
import { SessionConfigService } from "./session-config.service";

/**
 * Controller for managing session storage configuration.
 * Accessible by tenant members with appropriate permissions.
 */
@ApiTags("Session")
@Secured([Role.Issuances, Role.Presentations])
@Controller("session-config")
export class SessionConfigController {
    constructor(private readonly sessionConfigService: SessionConfigService) {}

    /**
     * Get the current session storage configuration for the authenticated tenant.
     */
    @Get()
    @ApiOperation({
        summary: "Get session storage configuration",
        description:
            "Returns the session storage configuration for the current tenant.",
    })
    @ApiResponse({
        status: 200,
        description: "The session storage configuration",
        type: SessionStorageConfig,
    })
    getConfig(
        @Token() token: TokenPayload,
    ): Promise<SessionStorageConfig | null> {
        return this.sessionConfigService.getConfig(token.entity!.id);
    }

    /**
     * Update the session storage configuration for the authenticated tenant.
     */
    @Put()
    @ApiOperation({
        summary: "Update session storage configuration",
        description:
            "Updates the session storage configuration for the current tenant.",
    })
    @ApiResponse({
        status: 200,
        description: "The updated session storage configuration",
        type: SessionStorageConfig,
    })
    updateConfig(
        @Token() token: TokenPayload,
        @Body() config: UpdateSessionConfigDto,
    ): Promise<SessionStorageConfig> {
        return this.sessionConfigService.updateConfig(token.entity!.id, config);
    }

    /**
     * Reset the session storage configuration to defaults.
     */
    @Delete()
    @ApiOperation({
        summary: "Reset session storage configuration",
        description:
            "Resets the session storage configuration to use global defaults.",
    })
    @ApiResponse({
        status: 200,
        description: "Configuration reset successfully",
    })
    resetConfig(@Token() token: TokenPayload): Promise<void> {
        return this.sessionConfigService.resetConfig(token.entity!.id);
    }
}

results matching ""

    No results matching ""