Compare commits
1 Commits
dev
...
feature/ne
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce887ce922 |
@ -1,6 +0,0 @@
|
|||||||
Dockerfile
|
|
||||||
.dockerignore
|
|
||||||
node_modules
|
|
||||||
npm-debug.log
|
|
||||||
dist
|
|
||||||
README.md
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
const { createConfig } = require('@vchikalkin/eslint-config-awesome');
|
|
||||||
|
|
||||||
module.exports = createConfig('typescript', {
|
|
||||||
parserOptions: {
|
|
||||||
project: './tsconfig.json',
|
|
||||||
tsconfigRootDir: __dirname,
|
|
||||||
},
|
|
||||||
ignorePatterns: ['*.config.js', '.eslintrc.js'],
|
|
||||||
rules: {
|
|
||||||
'import/no-duplicates': 'off',
|
|
||||||
'import/consistent-type-specifier-style': 'off',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
56
apps/api/.gitignore
vendored
56
apps/api/.gitignore
vendored
@ -1,56 +0,0 @@
|
|||||||
# compiled output
|
|
||||||
/dist
|
|
||||||
/node_modules
|
|
||||||
/build
|
|
||||||
|
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
pnpm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
# OS
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Tests
|
|
||||||
/coverage
|
|
||||||
/.nyc_output
|
|
||||||
|
|
||||||
# IDEs and editors
|
|
||||||
/.idea
|
|
||||||
.project
|
|
||||||
.classpath
|
|
||||||
.c9/
|
|
||||||
*.launch
|
|
||||||
.settings/
|
|
||||||
*.sublime-workspace
|
|
||||||
|
|
||||||
# IDE - VSCode
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/settings.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/extensions.json
|
|
||||||
|
|
||||||
# dotenv environment variable files
|
|
||||||
.env
|
|
||||||
.env.development.local
|
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
.env.local
|
|
||||||
|
|
||||||
# temp directory
|
|
||||||
.temp
|
|
||||||
.tmp
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "all"
|
|
||||||
}
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
# This Dockerfile is copy-pasted into our main docs at /docs/handbook/deploying-with-docker.
|
|
||||||
# Make sure you update both files!
|
|
||||||
|
|
||||||
FROM node:alpine AS builder
|
|
||||||
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
|
|
||||||
RUN apk add --no-cache libc6-compat
|
|
||||||
RUN apk update
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
RUN yarn global add turbo
|
|
||||||
COPY . .
|
|
||||||
RUN turbo prune --scope=api --docker
|
|
||||||
|
|
||||||
# Add lockfile and package.json's of isolated subworkspace
|
|
||||||
FROM node:alpine AS installer
|
|
||||||
RUN apk add --no-cache libc6-compat
|
|
||||||
RUN apk update
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# First install dependencies (as they change less often)
|
|
||||||
COPY .gitignore .gitignore
|
|
||||||
COPY --from=builder /app/out/json/ .
|
|
||||||
COPY --from=builder /app/out/yarn.lock ./yarn.lock
|
|
||||||
RUN yarn install
|
|
||||||
|
|
||||||
# Build the project and its dependencies
|
|
||||||
COPY --from=builder /app/out/full/ .
|
|
||||||
COPY turbo.json turbo.json
|
|
||||||
# COPY .env .env
|
|
||||||
RUN yarn turbo run build --filter=api...
|
|
||||||
|
|
||||||
FROM node:alpine AS runner
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Don't run production as root
|
|
||||||
RUN addgroup --system --gid 1001 nestjs
|
|
||||||
RUN adduser --system --uid 1001 nestjs
|
|
||||||
USER nestjs
|
|
||||||
COPY --from=installer /app .
|
|
||||||
|
|
||||||
CMD node apps/api/dist/main.js
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
|
||||||
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
|
||||||
|
|
||||||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
||||||
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
||||||
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
|
|
||||||
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
||||||
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
||||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
|
||||||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
|
|
||||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
|
||||||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
|
|
||||||
</p>
|
|
||||||
<!--[](https://opencollective.com/nest#backer)
|
|
||||||
[](https://opencollective.com/nest#sponsor)-->
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ yarn install
|
|
||||||
```
|
|
||||||
|
|
||||||
## Running the app
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# development
|
|
||||||
$ yarn run start
|
|
||||||
|
|
||||||
# watch mode
|
|
||||||
$ yarn run start:dev
|
|
||||||
|
|
||||||
# production mode
|
|
||||||
$ yarn run start:prod
|
|
||||||
```
|
|
||||||
|
|
||||||
## Test
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# unit tests
|
|
||||||
$ yarn run test
|
|
||||||
|
|
||||||
# e2e tests
|
|
||||||
$ yarn run test:e2e
|
|
||||||
|
|
||||||
# test coverage
|
|
||||||
$ yarn run test:cov
|
|
||||||
```
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
|
||||||
|
|
||||||
## Stay in touch
|
|
||||||
|
|
||||||
- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
|
|
||||||
- Website - [https://nestjs.com](https://nestjs.com/)
|
|
||||||
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Nest is [MIT licensed](LICENSE).
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json.schemastore.org/nest-cli",
|
|
||||||
"collection": "@nestjs/schematics",
|
|
||||||
"sourceRoot": "src",
|
|
||||||
"compilerOptions": {
|
|
||||||
"deleteOutDir": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "api",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "",
|
|
||||||
"author": "",
|
|
||||||
"private": true,
|
|
||||||
"license": "UNLICENSED",
|
|
||||||
"scripts": {
|
|
||||||
"build": "nest build",
|
|
||||||
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
||||||
"start": "nest start",
|
|
||||||
"dev": "nest start --watch",
|
|
||||||
"start:debug": "nest start --debug --watch",
|
|
||||||
"start:prod": "node dist/main",
|
|
||||||
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
||||||
"test": "jest",
|
|
||||||
"test:watch": "jest --watch",
|
|
||||||
"test:cov": "jest --coverage",
|
|
||||||
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
||||||
"test:e2e": "jest --config ./test/jest-e2e.json"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@nestjs/cache-manager": "^2.2.1",
|
|
||||||
"@nestjs/common": "^10.0.0",
|
|
||||||
"@nestjs/config": "^3.2.0",
|
|
||||||
"@nestjs/core": "^10.0.0",
|
|
||||||
"@nestjs/platform-express": "^10.0.0",
|
|
||||||
"@nestjs/platform-fastify": "^10.3.3",
|
|
||||||
"cache-manager": "^5.4.0",
|
|
||||||
"cache-manager-ioredis": "^2.1.0",
|
|
||||||
"ioredis": "^5.3.2",
|
|
||||||
"reflect-metadata": "^0.2.0",
|
|
||||||
"rxjs": "^7.8.1",
|
|
||||||
"zod": "^3.22.4"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@nestjs/cli": "^10.0.0",
|
|
||||||
"@nestjs/schematics": "^10.0.0",
|
|
||||||
"@nestjs/testing": "^10.0.0",
|
|
||||||
"@types/jest": "^29.5.2",
|
|
||||||
"@types/node": "^20.3.1",
|
|
||||||
"@types/supertest": "^6.0.0",
|
|
||||||
"@vchikalkin/eslint-config-awesome": "^1.1.5",
|
|
||||||
"eslint": "^8.51.0",
|
|
||||||
"fastify": "^4.26.1",
|
|
||||||
"jest": "^29.5.0",
|
|
||||||
"prettier": "^3.0.0",
|
|
||||||
"source-map-support": "^0.5.21",
|
|
||||||
"supertest": "^6.3.3",
|
|
||||||
"ts-jest": "29.1.1",
|
|
||||||
"ts-loader": "^9.4.3",
|
|
||||||
"ts-node": "^10.9.1",
|
|
||||||
"tsconfig-paths": "^4.2.0",
|
|
||||||
"typescript": "^5.1.3"
|
|
||||||
},
|
|
||||||
"jest": {
|
|
||||||
"moduleFileExtensions": [
|
|
||||||
"js",
|
|
||||||
"json",
|
|
||||||
"ts"
|
|
||||||
],
|
|
||||||
"rootDir": "src",
|
|
||||||
"testRegex": ".*\\.spec\\.ts$",
|
|
||||||
"transform": {
|
|
||||||
"^.+\\.(t|j)s$": "ts-jest"
|
|
||||||
},
|
|
||||||
"collectCoverageFrom": [
|
|
||||||
"**/*.(t|j)s"
|
|
||||||
],
|
|
||||||
"coverageDirectory": "../coverage",
|
|
||||||
"testEnvironment": "node"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
import { ProxyModule } from './proxy/proxy.module';
|
|
||||||
import { Global, Module } from '@nestjs/common';
|
|
||||||
import { ConfigModule } from '@nestjs/config';
|
|
||||||
|
|
||||||
@Global()
|
|
||||||
@Module({
|
|
||||||
imports: [
|
|
||||||
ConfigModule.forRoot({
|
|
||||||
isGlobal: true,
|
|
||||||
}),
|
|
||||||
ProxyModule,
|
|
||||||
],
|
|
||||||
providers: [],
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
||||||
export class AppModule {}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import { seconds } from 'src/utils/time';
|
|
||||||
|
|
||||||
export const DEFAULT_CACHE_TTL = seconds().fromMinutes(15);
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import envSchema from './schema/env';
|
|
||||||
|
|
||||||
export const env = envSchema.parse(process.env);
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
import { DEFAULT_CACHE_TTL } from '../constants';
|
|
||||||
import { z } from 'zod';
|
|
||||||
|
|
||||||
const envSchema = z.object({
|
|
||||||
CACHE_TTL: z
|
|
||||||
.string()
|
|
||||||
.transform((val) => Number.parseInt(val, 10))
|
|
||||||
.default(DEFAULT_CACHE_TTL.toString()),
|
|
||||||
PORT: z
|
|
||||||
.string()
|
|
||||||
.transform((val) => Number.parseInt(val, 10))
|
|
||||||
.default('3001'),
|
|
||||||
REDIS_HOST: z.string(),
|
|
||||||
REDIS_PORT: z
|
|
||||||
.string()
|
|
||||||
.transform((val) => Number.parseInt(val, 10))
|
|
||||||
.default('6379'),
|
|
||||||
URL_CRM_GRAPHQL_DIRECT: z.string(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export default envSchema;
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
import { AppModule } from './app.module';
|
|
||||||
import { env } from './config/env';
|
|
||||||
import { NestFactory } from '@nestjs/core';
|
|
||||||
import type { NestFastifyApplication } from '@nestjs/platform-fastify';
|
|
||||||
import { FastifyAdapter } from '@nestjs/platform-fastify';
|
|
||||||
|
|
||||||
async function bootstrap() {
|
|
||||||
const app = await NestFactory.create<NestFastifyApplication>(
|
|
||||||
AppModule,
|
|
||||||
new FastifyAdapter(),
|
|
||||||
);
|
|
||||||
|
|
||||||
await app.listen(env.PORT, '0.0.0.0');
|
|
||||||
}
|
|
||||||
bootstrap();
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
import { seconds } from 'src/utils/time';
|
|
||||||
|
|
||||||
export const queryTTL: Record<string, number | false> = {
|
|
||||||
GetAddProductType: seconds().fromHours(12),
|
|
||||||
GetAddproductTypes: seconds().fromHours(12),
|
|
||||||
GetAgent: seconds().fromHours(12),
|
|
||||||
GetBrand: seconds().fromHours(3),
|
|
||||||
GetBrands: seconds().fromHours(3),
|
|
||||||
GetCoefficients: seconds().fromHours(12),
|
|
||||||
GetConfiguration: seconds().fromHours(3),
|
|
||||||
GetConfigurations: seconds().fromHours(3),
|
|
||||||
GetCurrencyChanges: seconds().fromHours(1),
|
|
||||||
GetDealer: seconds().fromHours(1),
|
|
||||||
GetDealerPerson: seconds().fromHours(1),
|
|
||||||
GetDealerPersons: seconds().fromHours(1),
|
|
||||||
GetDealers: seconds().fromHours(1),
|
|
||||||
GetFuelCards: seconds().fromHours(12),
|
|
||||||
GetGPSBrands: seconds().fromHours(24),
|
|
||||||
GetGPSModels: seconds().fromHours(24),
|
|
||||||
GetImportProgram: seconds().fromHours(12),
|
|
||||||
GetInsNSIBTypes: seconds().fromHours(12),
|
|
||||||
GetInsuranceCompanies: seconds().fromHours(12),
|
|
||||||
GetInsuranceCompany: seconds().fromHours(12),
|
|
||||||
GetLead: false,
|
|
||||||
GetLeadUrl: seconds().fromHours(12),
|
|
||||||
GetLeads: false,
|
|
||||||
GetLeaseObjectType: seconds().fromHours(24),
|
|
||||||
GetLeaseObjectTypes: seconds().fromHours(24),
|
|
||||||
GetLeasingWithoutKaskoTypes: seconds().fromHours(12),
|
|
||||||
GetModel: seconds().fromHours(3),
|
|
||||||
GetModels: seconds().fromHours(3),
|
|
||||||
GetOpportunities: false,
|
|
||||||
GetOpportunity: false,
|
|
||||||
GetOpportunityUrl: seconds().fromHours(12),
|
|
||||||
GetProduct: seconds().fromHours(12),
|
|
||||||
GetProducts: seconds().fromHours(12),
|
|
||||||
GetQuote: false,
|
|
||||||
GetQuoteData: false,
|
|
||||||
GetQuoteUrl: seconds().fromHours(12),
|
|
||||||
GetQuotes: false,
|
|
||||||
GetRate: seconds().fromHours(12),
|
|
||||||
GetRates: seconds().fromHours(12),
|
|
||||||
GetRegion: seconds().fromHours(24),
|
|
||||||
GetRegions: seconds().fromHours(24),
|
|
||||||
GetRegistrationTypes: seconds().fromHours(12),
|
|
||||||
GetRewardCondition: seconds().fromHours(1),
|
|
||||||
GetRewardConditions: seconds().fromHours(1),
|
|
||||||
GetRoles: seconds().fromHours(12),
|
|
||||||
GetSotCoefficientType: seconds().fromHours(12),
|
|
||||||
GetSubsidies: seconds().fromHours(12),
|
|
||||||
GetSubsidy: seconds().fromHours(12),
|
|
||||||
GetSystemUser: seconds().fromHours(12),
|
|
||||||
GetTarif: seconds().fromHours(12),
|
|
||||||
GetTarifs: seconds().fromHours(12),
|
|
||||||
GetTechnicalCards: seconds().fromHours(12),
|
|
||||||
GetTelematicTypes: seconds().fromHours(12),
|
|
||||||
GetTown: seconds().fromHours(24),
|
|
||||||
GetTowns: seconds().fromHours(24),
|
|
||||||
GetTrackerTypes: seconds().fromHours(12),
|
|
||||||
GetTransactionCurrencies: seconds().fromHours(12),
|
|
||||||
GetTransactionCurrency: seconds().fromHours(12),
|
|
||||||
};
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
import { queryTTL } from './lib/config';
|
|
||||||
import type { GQLRequest } from './types';
|
|
||||||
import { CACHE_MANAGER } from '@nestjs/cache-manager';
|
|
||||||
import { All, Controller, Inject, Req, Res } from '@nestjs/common';
|
|
||||||
import type { Cache } from 'cache-manager';
|
|
||||||
import { FastifyReply, FastifyRequest } from 'fastify';
|
|
||||||
import { env } from 'src/config/env';
|
|
||||||
|
|
||||||
type RedisStore = Omit<Cache, 'set'> & {
|
|
||||||
set: (key: string, value: unknown, { ttl }: { ttl: number }) => Promise<void>;
|
|
||||||
};
|
|
||||||
|
|
||||||
@Controller('proxy')
|
|
||||||
export class ProxyController {
|
|
||||||
constructor(
|
|
||||||
@Inject(CACHE_MANAGER) private readonly cacheManager: RedisStore,
|
|
||||||
) {}
|
|
||||||
@All('/graphql')
|
|
||||||
public async graphql(@Req() req: FastifyRequest, @Res() reply: FastifyReply) {
|
|
||||||
const { operationName, query, variables } = req.body as GQLRequest;
|
|
||||||
|
|
||||||
const key = `${operationName} ${JSON.stringify(variables)}`;
|
|
||||||
const cached = await this.cacheManager.get(key);
|
|
||||||
|
|
||||||
if (cached) return reply.send(cached);
|
|
||||||
|
|
||||||
const response = await fetch(env.URL_CRM_GRAPHQL_DIRECT, {
|
|
||||||
body: JSON.stringify({ operationName, query, variables }),
|
|
||||||
headers: {
|
|
||||||
Authorization: req.headers.authorization,
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
Cookie: req.headers.cookie,
|
|
||||||
},
|
|
||||||
method: req.method,
|
|
||||||
});
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
const ttl = queryTTL[operationName];
|
|
||||||
if (data && ttl !== false)
|
|
||||||
await this.cacheManager.set(key, data, { ttl: ttl || env.CACHE_TTL });
|
|
||||||
|
|
||||||
return reply.send(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
import { ProxyController } from './proxy.controller';
|
|
||||||
import { CacheModule } from '@nestjs/cache-manager';
|
|
||||||
import { Module } from '@nestjs/common';
|
|
||||||
import * as redisStore from 'cache-manager-ioredis';
|
|
||||||
import type { RedisOptions } from 'ioredis';
|
|
||||||
import { env } from 'src/config/env';
|
|
||||||
|
|
||||||
@Module({
|
|
||||||
controllers: [ProxyController],
|
|
||||||
imports: [
|
|
||||||
CacheModule.register<RedisOptions>({
|
|
||||||
host: env.REDIS_HOST,
|
|
||||||
port: env.REDIS_PORT,
|
|
||||||
store: redisStore,
|
|
||||||
ttl: env.CACHE_TTL,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
||||||
export class ProxyModule {}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
export type GQLRequest = {
|
|
||||||
operationName: string;
|
|
||||||
query: string;
|
|
||||||
variables: string;
|
|
||||||
};
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
export function seconds() {
|
|
||||||
return {
|
|
||||||
fromDays(days: number) {
|
|
||||||
return days * 24 * 60 * 60;
|
|
||||||
},
|
|
||||||
fromHours(hours: number) {
|
|
||||||
return hours * 60 * 60;
|
|
||||||
},
|
|
||||||
fromMinutes(minutes: number) {
|
|
||||||
return minutes * 60;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "./tsconfig.json",
|
|
||||||
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
|
|
||||||
}
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"module": "commonjs",
|
|
||||||
"declaration": true,
|
|
||||||
"removeComments": true,
|
|
||||||
"emitDecoratorMetadata": true,
|
|
||||||
"experimentalDecorators": true,
|
|
||||||
"allowSyntheticDefaultImports": true,
|
|
||||||
"target": "ES2021",
|
|
||||||
"sourceMap": true,
|
|
||||||
"outDir": "./dist",
|
|
||||||
"baseUrl": "./",
|
|
||||||
"incremental": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"strictNullChecks": false,
|
|
||||||
"noImplicitAny": false,
|
|
||||||
"strictBindCallApply": false,
|
|
||||||
"forceConsistentCasingInFileNames": false,
|
|
||||||
"noFallthroughCasesInSwitch": false
|
|
||||||
},
|
|
||||||
"exclude": ["node_modules"]
|
|
||||||
}
|
|
||||||
@ -21,7 +21,7 @@ function getUrls() {
|
|||||||
PORT,
|
PORT,
|
||||||
URL_ELT_KASKO_DIRECT,
|
URL_ELT_KASKO_DIRECT,
|
||||||
URL_ELT_OSAGO_DIRECT,
|
URL_ELT_OSAGO_DIRECT,
|
||||||
URL_CRM_GRAPHQL_PROXY,
|
URL_CRM_GRAPHQL_DIRECT,
|
||||||
} = serverRuntimeConfigSchema.parse(serverRuntimeConfig);
|
} = serverRuntimeConfigSchema.parse(serverRuntimeConfig);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -33,7 +33,7 @@ function getUrls() {
|
|||||||
URL_CORE_FINGAP: URL_CORE_FINGAP_DIRECT,
|
URL_CORE_FINGAP: URL_CORE_FINGAP_DIRECT,
|
||||||
URL_CRM_CREATEKP: URL_CRM_CREATEKP_DIRECT,
|
URL_CRM_CREATEKP: URL_CRM_CREATEKP_DIRECT,
|
||||||
URL_CRM_DOWNLOADKP: withBasePath(urls.URL_CRM_DOWNLOADKP_PROXY),
|
URL_CRM_DOWNLOADKP: withBasePath(urls.URL_CRM_DOWNLOADKP_PROXY),
|
||||||
URL_CRM_GRAPHQL: URL_CRM_GRAPHQL_PROXY,
|
URL_CRM_GRAPHQL: URL_CRM_GRAPHQL_DIRECT,
|
||||||
URL_ELT_KASKO: URL_ELT_KASKO_DIRECT,
|
URL_ELT_KASKO: URL_ELT_KASKO_DIRECT,
|
||||||
URL_ELT_OSAGO: URL_ELT_OSAGO_DIRECT,
|
URL_ELT_OSAGO: URL_ELT_OSAGO_DIRECT,
|
||||||
URL_GET_USER: URL_GET_USER_DIRECT,
|
URL_GET_USER: URL_GET_USER_DIRECT,
|
||||||
|
|||||||
@ -38,7 +38,7 @@ module.exports = withSentryConfig({
|
|||||||
async rewrites() {
|
async rewrites() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
destination: env.URL_CRM_GRAPHQL_PROXY + '/:path*',
|
destination: env.URL_CRM_GRAPHQL_DIRECT + '/:path*',
|
||||||
source: urls.URL_CRM_GRAPHQL_PROXY + '/:path*',
|
source: urls.URL_CRM_GRAPHQL_PROXY + '/:path*',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -38,20 +38,6 @@ services:
|
|||||||
- calc_network
|
- calc_network
|
||||||
- auth_network
|
- auth_network
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
|
||||||
- api
|
|
||||||
|
|
||||||
api:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: ./apps/api/Dockerfile
|
|
||||||
environment:
|
|
||||||
- REDIS_HOST=redis
|
|
||||||
- CACHE_TTL=${CACHE_TTL}
|
|
||||||
- URL_CRM_GRAPHQL_DIRECT=${URL_CRM_GRAPHQL_DIRECT}
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- calc_network
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user