2.2.2 • Published 1 year ago
ttalos v2.2.2
TTalos
Libs for Fortalicia-cloud
Summary
Decorators
Profile
Implementation
import { Profile, USER_PROFILE } from 'ttalos';
...
@UseGuards(AuthGuard)
@Profile(USER_PROFILE.THOMYRIS, USER_PROFILE.AGENCY, USER_PROFILE.PARTNER)
User session
Implementation
- Create NestJs decorator
import { CurrentSessionDecorator, UserSession } from 'ttalos';
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { TYPES } from '../../../config/injection/type';
import { Configuration } from '../../../config/env/configuration';
import { container } from '../../../config/injection/inversify.config';
export const CurrentSession = createParamDecorator(
async (data: unknown, executionContext: ExecutionContext): Promise<UserSession> => {
const currentSessionDecorator:CurrentSessionDecorator = new CurrentSessionDecorator(container.get<Configuration>(TYPES.config));
return currentSessionDecorator.execute(data, executionContext);
}
);
- Use
async hello(@CurrentSession() session: UserSession): Promise<Boolean> {
return 'hello';
}
Guards
AuthGuardProfil
import { AuthGuardProfil } from 'ttalos';
import { Reflector } from '@nestjs/core';
import { CanActivate, ExecutionContext, Inject, Injectable } from '@nestjs/common';
import { TYPES } from '../../../../config/injection/type';
import { IsValidUsecase } from '../../../../usecase/auth/isValid.usecase';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(
@Inject(TYPES.IsValidUsecase) private isValidUsecase: IsValidUsecase,
private reflector: Reflector
) {}
async canActivate(executionContext: ExecutionContext): Promise<boolean> {
const authGuardProfil:AuthGuardProfil = new AuthGuardProfil(this.isValidUsecase, this.reflector);
return authGuardProfil.execute(executionContext);
}
}
- Use
@UseGuards(AuthGuard)
@Profile(USER_PROFILE.THOMYRIS, USER_PROFILE.AGENCY, USER_PROFILE.PARTNER)
async hello(@CurrentSession() session: UserSession): Promise<Boolean> {
return 'hello';
}
Scalars
AdresseScalar
import { Adresse } from 'ttalos';
...
@Field(() => Adresse)
CityScalar
import { City } from 'ttalos';
...
@Field(() => City)
CityScalar
import { City } from 'ttalos';
...
@Field(() => City)
CodeScalar
import { Code } from 'ttalos';
...
@Field(() => Code)
CustomIdScalar
import { CustomId } from 'ttalos';
...
@Field(() => CustomId)
DescriptionScalar
import { Description } from 'ttalos';
...
@Field(() => Description)
MailScalar
import { Mail } from 'ttalos';
...
@Field(() => Mail)
NameScalar
import { Name } from 'ttalos';
...
@Field(() => Name)
ObjectNameScalar
import { ObjectName } from 'ttalos';
...
@Field(() => ObjectName)
PasswordScalar
import { Password } from 'ttalos';
...
@Field(() => Password)
SerialNumberScalar
import { SerialNumber } from 'ttalos';
...
@Field(() => SerialNumber)
TokenScalar
import { Token } from 'ttalos';
...
@Field(() => Token)
Models & Dto
IsValidRepositoryModel
import { IsValidRepositoryModel, IsValidRepositoryDto } from 'ttalos';
...
isValid(dto: IsValidRepositoryDto): Promise<IsValidRepositoryModel>;
IsValidUsecaseModel
import { IsValidUsecaseModel, IsValidUsecaseDto } from 'ttalos';
...
async execute(input: IsValidUsecaseDto): Promise<IsValidUsecaseModel> {
...
}
UserSession
import { UserSession } from 'ttalos';
...
async (data: unknown, executionContext: ExecutionContext): Promise<UserSession> => {
...
}
UserSessionUsecaseDto
import { UserSessionUsecaseDto } from 'ttalos';
...
async execute(session: UserSessionUsecaseDto, input: ...): Promise<...> {
...
}
VersionUsecaseModel
import { VersionUsecaseModel } from 'ttalos';
...
async execute(): Promise<VersionUsecaseModel> {
...
}
Logger
NestLogger & logger
import { NestLogger, Logger } from 'ttalos';
import { name } from '../package.json';
async function bootstrap() {
Logger.defaultMeta.module = name;
Logger.info('Environnement selected: ' + process.env.NODE_ENV);
...
const app = await NestFactory.create(AppModule,{
logger: new NestLogger(),
});
...
Logger.info('Server started on: ' + config.app.port);
}
Mappers
listMongoMapper
import { ListMongoMapper } from 'ttalos';
...
const test = ListMongoMapper.fromBaseOptionToMongoFindOption(...);
...
ListSqlMapper
import { ListSqlMapper } from 'ttalos';
...
const test = ListSqlMapper.fromBaseOptionToSqlFindOption(...);
...
ListSqlMapper
import { SessionDecoratorMapper } from 'ttalos';
...
const test = SessionDecoratorMapper.sessionDtoFromJwt(...);
...
Options for API list
import {
OptionBaseDto,
OptionRepositoryDto,
OptionUsecaseDto,
OptionResolverDto,
OptionFilterOperator,
OptionSorterOperator,
} from 'ttalos';
const test = OptionFilterOperator.REGEX;
async list(@Args('input') dto?: OptionResolverDto): Promise<String[]> {
return null;
}
HOW TO publish
npm publish --access public
1.2.0
2 years ago
1.2.1
2 years ago
2.2.1
1 year ago
2.2.0
1 year ago
2.2.2
1 year ago
2.1.0
1 year ago
2.0.1
1 year ago
2.0.0
1 year ago
1.1.1
2 years ago
1.1.0
2 years ago
1.1.3
2 years ago
1.1.2
2 years ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.11
2 years ago
1.0.12
2 years ago
1.0.10
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago