From 706a60e88f27c4789aae0016de2e6109bb5f64af Mon Sep 17 00:00:00 2001 From: NicolasCBV Date: Sat, 10 Feb 2024 02:06:06 -0300 Subject: [PATCH] fix(createkeyfunc): corrigir problemas de escape de erros relacionado a entidades existentes --- functions/lib/filters/firestoreError.ts | 40 ++++++++++++++----------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/functions/lib/filters/firestoreError.ts b/functions/lib/filters/firestoreError.ts index ffa10d7..d7b8cf1 100644 --- a/functions/lib/filters/firestoreError.ts +++ b/functions/lib/filters/firestoreError.ts @@ -1,41 +1,47 @@ -import { Response } from "@google-cloud/functions-framework"; -import { FirestoreCustomError, FirestoreCustomErrorTag } from "../errors/firestore"; -import { ResponseBodyModel } from "../utils/response"; -import { ErrorFilter } from "./contract" -import { LoggerAdapter } from "../config/logger/contract"; +import { Response } from '@google-cloud/functions-framework'; +import { + FirestoreCustomError, + FirestoreCustomErrorTag, +} from '../errors/firestore'; +import { ResponseBodyModel } from '../utils/response'; +import { ErrorFilter } from './contract'; +import { LoggerAdapter } from '../config/logger/contract'; export class FirestoreCustomErrorFilter implements ErrorFilter { - constructor(private readonly res: Response, private readonly logger: LoggerAdapter) {} + constructor( + private readonly res: Response, + private readonly logger: LoggerAdapter, + ) {} private readonly filterMsg = [ { - match: 'entity already exists', + match: 'ALREADY_EXISTS', httpCode: 401, message: 'You don\'t have permission to access this route', - name: 'Unauthorized' + name: 'Unauthorized', }, { match: FirestoreCustomErrorTag.malformedEntity, httpCode: 500, message: 'Somethig wrong happened', - name: 'Internal Server Error' - } - ] + name: 'Internal Server Error', + }, + ]; exec(err: FirestoreCustomError, sessionId: string) { const possibleResponse = this.filterMsg.find( - (item) => err.cause.includes(item.match) || err.tag === item.match - ) + (item) => err.cause.includes(item.match) || err.tag === item.match, + ); this.logger.error({ sessionId, - error: err - }) + error: err, + }); ResponseBodyModel.start(this.res).send({ statusCode: possibleResponse?.httpCode ?? 500, message: possibleResponse?.message ?? 'Somethig wrong happened', - name: possibleResponse?.name ?? 'Internal Server Error' - }) + name: possibleResponse?.name ?? 'Internal Server Error', + }); } }