Skip to content

Commit

Permalink
fix(createkeyfunc): corrigir problemas de escape de erros relacionado…
Browse files Browse the repository at this point in the history
… a entidades existentes
  • Loading branch information
NicolasCBV committed Feb 10, 2024
1 parent 62d6030 commit 706a60e
Showing 1 changed file with 23 additions and 17 deletions.
40 changes: 23 additions & 17 deletions functions/lib/filters/firestoreError.ts
Original file line number Diff line number Diff line change
@@ -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',
});
}
}

0 comments on commit 706a60e

Please sign in to comment.