fix(sample): remove relation path import

This commit is contained in:
Morb0
2021-01-06 17:55:40 +03:00
parent c32f2c72d9
commit 31008b04c9
10 changed files with 13 additions and 14 deletions

View File

@@ -9,7 +9,6 @@ import { GreeterBotName } from './app.constants';
imports: [
TelegrafModule.forRoot({
token: process.env.ECHO_BOT_TOKEN,
middlewares: [sessionMiddleware],
include: [EchoModule],
}),
TelegrafModule.forRootAsync({

View File

@@ -0,0 +1,7 @@
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { TelegrafExecutionContext } from 'nestjs-telegraf';
export const From = createParamDecorator(
(_, ctx: ExecutionContext) =>
TelegrafExecutionContext.create(ctx).getContext().from,
);

View File

@@ -0,0 +1,11 @@
import { ArgumentsHost, Catch, ExceptionFilter } from '@nestjs/common';
import { TelegrafArgumentsHost } from 'nestjs-telegraf';
@Catch()
export class TelegrafExceptionFilter<T> implements ExceptionFilter {
catch(exception: T, host: ArgumentsHost) {
const tgHost = TelegrafArgumentsHost.create(host);
console.log(tgHost);
return exception;
}
}

View File

@@ -0,0 +1,20 @@
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import { TelegrafExecutionContext, TelegrafException } from 'nestjs-telegraf';
import { Context } from '../../interfaces/context.interface';
@Injectable()
export class AdminGuard implements CanActivate {
private readonly ADMIN_IDS = [];
canActivate(context: ExecutionContext): boolean {
const ctx = TelegrafExecutionContext.create(context);
const { from } = ctx.getContext<Context>();
const isAdmin = this.ADMIN_IDS.includes(from.id);
if (!isAdmin) {
throw new TelegrafException('You are not admin >:(');
}
return true;
}
}

View File

@@ -0,0 +1,20 @@
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
@Injectable()
export class ResponseTimeInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
console.log('Before...');
const start = Date.now();
return next
.handle()
.pipe(tap(() => console.log(`Response time: ${Date.now() - start}ms`)));
}
}

View File

@@ -0,0 +1,8 @@
import { Injectable, PipeTransform } from '@nestjs/common';
@Injectable()
export class ReverseTextPipe implements PipeTransform {
transform(value: string): string {
return value.split('').reverse().join('');
}
}

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common';
import { EchoUpdate } from './echo.update';
import { EchoService } from './echo.service';
import { HelloScene } from './scenes/hello.scene';
import { HelloScene } from '../greeter/scenes/hello.scene';
@Module({
providers: [EchoUpdate, EchoService, HelloScene],

View File

@@ -1,7 +1,7 @@
import { Telegraf } from 'telegraf';
import { Command, Help, InjectBot, On, Start, Update } from 'nestjs-telegraf';
import { Help, InjectBot, On, Start, Update } from 'nestjs-telegraf';
import { EchoService } from './echo.service';
import { GreeterBotName, HELLO_SCENE_ID } from '../app.constants';
import { GreeterBotName } from '../app.constants';
import { Context } from '../interfaces/context.interface';
@Update()
@@ -23,11 +23,6 @@ export class EchoUpdate {
await ctx.reply('Send me any text');
}
@Command('scene')
async onSceneCommand(ctx: Context): Promise<void> {
await ctx.scene.enter(HELLO_SCENE_ID);
}
@On('message')
async onMessage(ctx: Context): Promise<void> {
console.log('New message received');

View File

@@ -1,5 +1,6 @@
import { Hears, Start, Update } from 'nestjs-telegraf';
import { Command, Hears, Start, Update } from 'nestjs-telegraf';
import { Context } from '../interfaces/context.interface';
import { HELLO_SCENE_ID } from '../app.constants';
@Update()
export class GreeterUpdate {
@@ -13,4 +14,9 @@ export class GreeterUpdate {
const { first_name } = ctx.from;
await ctx.reply(`Hey ${first_name}`);
}
@Command('scene')
async onSceneCommand(ctx: Context): Promise<void> {
await ctx.scene.enter(HELLO_SCENE_ID);
}
}