/
githubmirror
/
nest
Обзор
Документация
Войти
/
githubmirror
/
nest
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
integration/microservices/src/disconnected.controller.ts
39 строк
1 KB
Kamil Myśliwiec
chore: mqtt updates, integration test improvements
27 ноя 2024, 13:04
Не верифицирован
27 ноя 2024, 13:04
cf17e4d
Код
Авторство
О чём код?
import { Body, Controller, InternalServerErrorException, Post, RequestTimeoutException, } from '@nestjs/common'; import { ClientProxyFactory } from '@nestjs/microservices'; import { Observable, throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; @Controller() export class DisconnectedClientController { @Post() call(@Body() options): Observable<number> { const client = ClientProxyFactory.create(options); return client.send<number, number[]>({ cmd: 'none' }, [1, 2, 3]).pipe( // tap( // console.log.bind(console, 'data'), // console.error.bind(console, 'error'), // ), catchError(error => { const { code } = error?.err ?? error ?? { code: 'CONN_ERR' }; return throwError(() => code === 'ECONNREFUSED' || code === 'CONN_ERR' || code === 'ENOTFOUND' || code === 'CONNECTION_REFUSED' || error.message.includes('Connection is closed.') ? new RequestTimeoutException('ECONNREFUSED') : new InternalServerErrorException(), ); }), tap({ error: () => client.close(), }), ); } }