parent
444a5b345a
commit
3355b9bf25
@ -1,6 +0,0 @@
|
||||
PORT=3005
|
||||
|
||||
DATABASE_URL=postgresql://postgres:postgres@localhost:5433/user-authentication
|
||||
|
||||
PUBLIC_KEY_PATH=tokens/jwt.key.pub
|
||||
PRIVATE_KEY_PATH=tokens/jwt.key
|
@ -1,32 +0,0 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
FROM node:18
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --chown=node:node . .
|
||||
|
||||
RUN rm -f *.env *.env.*
|
||||
|
||||
RUN apt-get update -y && apt-get install -y dumb-init
|
||||
|
||||
RUN npm install
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN npm run prefullbuild && npm run prebuild && npm run build
|
||||
|
||||
RUN mkdir temp temp/.prisma temp/@prisma temp/prisma && cp -r ./node_modules/.prisma/* ./temp/.prisma/ && cp -r ./node_modules/@prisma/* ./temp/@prisma/ && cp -r ./node_modules/prisma/* ./temp/prisma/
|
||||
|
||||
RUN rm -rdf node_modules
|
||||
|
||||
RUN npm install --production
|
||||
|
||||
RUN cp -r ./temp/* ./node_modules/ && rm -rdf temp
|
||||
|
||||
RUN ls | grep -v node_modules | grep -v dist | xargs rm -rfv
|
||||
|
||||
RUN cp -r ./dist/* ./ && rm -rdf dist
|
||||
|
||||
USER node
|
||||
|
||||
CMD ["dumb-init", "node", "./main.js"]
|
@ -1 +0,0 @@
|
||||
migrations
|
@ -0,0 +1,3 @@
|
||||
node_modules
|
||||
# Keep environment variables out of version control
|
||||
.env
|
@ -0,0 +1,2 @@
|
||||
export { PrismaClient as AuthClient } from '.prisma/auth-client';
|
||||
export * from '.prisma/auth-client';
|
@ -0,0 +1 @@
|
||||
export class RecordNotFoundError extends Error {}
|
@ -0,0 +1 @@
|
||||
export class UniqueConstraintFailedError extends Error {}
|
@ -0,0 +1,26 @@
|
||||
import {
|
||||
CallHandler,
|
||||
ConflictException,
|
||||
ExecutionContext,
|
||||
Injectable,
|
||||
NestInterceptor,
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
import { catchError, Observable } from 'rxjs';
|
||||
import { RecordNotFoundError } from '../error/record-not-found.error';
|
||||
import { UniqueConstraintFailedError } from '../error/unique-constraint-failed.error';
|
||||
|
||||
@Injectable()
|
||||
export class PrismaErrorInterceptor implements NestInterceptor {
|
||||
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
|
||||
return next.handle().pipe(
|
||||
catchError((err) => {
|
||||
if (err instanceof RecordNotFoundError)
|
||||
throw new NotFoundException(err.message);
|
||||
if (err instanceof UniqueConstraintFailedError)
|
||||
throw new ConflictException(err.message);
|
||||
throw err;
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
export { AuthClient } from './auth';
|
Loading…
Reference in new issue