From 2233f6588e2454479daf70d463fb8dcc2f8fd7a2 Mon Sep 17 00:00:00 2001 From: Rajdip Bhattacharya Date: Mon, 22 Apr 2024 16:35:36 +0530 Subject: [PATCH] refactor: Moved items of backend folder to root (#65) * refactored backend folder * fixed tests * fixed tests --- backend/.env.example => .env.example | 0 backend/.eslintrc.js => .eslintrc.js | 0 .github/workflows/ci.yml | 10 +- .github/workflows/prod-backend.yml | 15 +- .github/workflows/stage-backend.yml | 13 +- .gitignore | 177 +++--------------- {backend/.husky => .husky}/pre-commit | 0 backend/.prettierrc => .prettierrc | 0 backend/Dockerfile => Dockerfile | 6 +- Makefile | 16 -- backend/README.md => README-backend.md | 0 backend/.gitignore | 39 ---- ...ompose-test.yml => docker-compose-test.yml | 13 +- .../docker-compose.yml => docker-compose.yml | 14 +- backend/jest.config.json => jest.config.json | 0 ...st.e2e-config.json => jest.e2e-config.json | 0 backend/nest-cli.json => nest-cli.json | 0 backend/package.json => package.json | 4 +- backend/pnpm-lock.yaml => pnpm-lock.yaml | 0 .../src => src}/app/app.controller.spec.ts | 0 {backend/src => src}/app/app.controller.ts | 0 {backend/src => src}/app/app.module.ts | 22 ++- {backend/src => src}/auth/auth.e2e.spec.ts | 8 + {backend/src => src}/auth/auth.module.ts | 2 +- .../auth/controller/auth.controller.spec.ts | 0 .../auth/controller/auth.controller.ts | 0 .../auth/dto/email-verification.dto.ts | 0 {backend/src => src}/auth/dto/signin.dto.ts | 0 {backend/src => src}/auth/dto/signup.dto.ts | 0 .../auth/guard/auth/auth.guard.spec.ts | 0 .../src => src}/auth/guard/auth/auth.guard.ts | 0 .../auth/service/auth.service.spec.ts | 0 .../src => src}/auth/service/auth.service.ts | 0 .../decorators/current-user.decorator.ts | 0 .../decorators/decorators.module.ts | 0 .../decorators/public.decorator.ts | 0 {backend/src => src}/mail/mail.module.ts | 0 {backend/src => src}/mail/mail.service.ts | 0 {backend/src => src}/main.ts | 0 .../apple/apple-strategy.factory.spec.ts | 0 .../factory/apple/apple-strategy.factory.ts | 0 .../facebook-strategy.factory.spec.ts | 0 .../facebook/facebook-strategy.factory.ts | 0 .../google/google-strategy.factory.spec.ts | 0 .../factory/google/google-strategy.factory.ts | 0 .../linkedin-strategy.factory.spec.ts | 0 .../linkedin/linkedin-strategy.factory.ts | 0 .../oauth/factory/oauth-strategy.factory.ts | 0 {backend/src => src}/oauth/oauth.module.ts | 0 .../strategy/apple/apple.strategy.spec.ts | 0 .../oauth/strategy/apple/apple.strategy.ts | 0 .../facebook/facebook.strategy.spec.ts | 0 .../strategy/facebook/facebook.strategy.ts | 0 .../strategy/google/google.strategy.spec.ts | 0 .../oauth/strategy/google/google.strategy.ts | 0 .../linkedin/linkedin.strategy.spec.ts | 0 .../strategy/linkedin/linkedin.strategy.ts | 0 .../20240306075612_add_user/migration.sql | 0 .../20240314090923_add_rating/migration.sql | 0 .../migration.sql | 0 .../migration.sql | 0 .../prisma/migrations/migration_lock.toml | 0 {backend/src => src}/prisma/prisma.module.ts | 0 .../src => src}/prisma/prisma.service.spec.ts | 0 {backend/src => src}/prisma/prisma.service.ts | 0 {backend/src => src}/prisma/schema.prisma | 0 .../src => src}/provider/provider.module.ts | 0 {backend/src => src}/provider/s3.provider.ts | 0 .../src => src}/schemas/review.properties.ts | 0 .../src => src}/schemas/user.properties.ts | 0 .../user/controller/user.controller.spec.ts | 13 +- .../user/controller/user.controller.ts | 0 {backend/src => src}/user/dto/rating.dto.ts | 0 .../src => src}/user/dto/update-user.dto.ts | 0 .../user/service/user.service.spec.ts | 13 +- .../src => src}/user/service/user.service.ts | 3 + {backend/src => src}/user/user.e2e.spec.ts | 23 ++- {backend/src => src}/user/user.module.ts | 0 ...tsconfig.build.json => tsconfig.build.json | 0 backend/tsconfig.json => tsconfig.json | 0 .../tsconfig.spec.json => tsconfig.spec.json | 0 {backend/utils => utils}/sitemap.ts | 0 82 files changed, 121 insertions(+), 270 deletions(-) rename backend/.env.example => .env.example (100%) rename backend/.eslintrc.js => .eslintrc.js (100%) rename {backend/.husky => .husky}/pre-commit (100%) rename backend/.prettierrc => .prettierrc (100%) rename backend/Dockerfile => Dockerfile (82%) delete mode 100644 Makefile rename backend/README.md => README-backend.md (100%) delete mode 100644 backend/.gitignore rename backend/docker-compose-test.yml => docker-compose-test.yml (60%) rename backend/docker-compose.yml => docker-compose.yml (71%) rename backend/jest.config.json => jest.config.json (100%) rename backend/jest.e2e-config.json => jest.e2e-config.json (100%) rename backend/nest-cli.json => nest-cli.json (100%) rename backend/package.json => package.json (96%) rename backend/pnpm-lock.yaml => pnpm-lock.yaml (100%) rename {backend/src => src}/app/app.controller.spec.ts (100%) rename {backend/src => src}/app/app.controller.ts (100%) rename {backend/src => src}/app/app.module.ts (70%) rename {backend/src => src}/auth/auth.e2e.spec.ts (97%) rename {backend/src => src}/auth/auth.module.ts (97%) rename {backend/src => src}/auth/controller/auth.controller.spec.ts (100%) rename {backend/src => src}/auth/controller/auth.controller.ts (100%) rename {backend/src => src}/auth/dto/email-verification.dto.ts (100%) rename {backend/src => src}/auth/dto/signin.dto.ts (100%) rename {backend/src => src}/auth/dto/signup.dto.ts (100%) rename {backend/src => src}/auth/guard/auth/auth.guard.spec.ts (100%) rename {backend/src => src}/auth/guard/auth/auth.guard.ts (100%) rename {backend/src => src}/auth/service/auth.service.spec.ts (100%) rename {backend/src => src}/auth/service/auth.service.ts (100%) rename {backend/src => src}/decorators/current-user.decorator.ts (100%) rename {backend/src => src}/decorators/decorators.module.ts (100%) rename {backend/src => src}/decorators/public.decorator.ts (100%) rename {backend/src => src}/mail/mail.module.ts (100%) rename {backend/src => src}/mail/mail.service.ts (100%) rename {backend/src => src}/main.ts (100%) rename {backend/src => src}/oauth/factory/apple/apple-strategy.factory.spec.ts (100%) rename {backend/src => src}/oauth/factory/apple/apple-strategy.factory.ts (100%) rename {backend/src => src}/oauth/factory/facebook/facebook-strategy.factory.spec.ts (100%) rename {backend/src => src}/oauth/factory/facebook/facebook-strategy.factory.ts (100%) rename {backend/src => src}/oauth/factory/google/google-strategy.factory.spec.ts (100%) rename {backend/src => src}/oauth/factory/google/google-strategy.factory.ts (100%) rename {backend/src => src}/oauth/factory/linkedin/linkedin-strategy.factory.spec.ts (100%) rename {backend/src => src}/oauth/factory/linkedin/linkedin-strategy.factory.ts (100%) rename {backend/src => src}/oauth/factory/oauth-strategy.factory.ts (100%) rename {backend/src => src}/oauth/oauth.module.ts (100%) rename {backend/src => src}/oauth/strategy/apple/apple.strategy.spec.ts (100%) rename {backend/src => src}/oauth/strategy/apple/apple.strategy.ts (100%) rename {backend/src => src}/oauth/strategy/facebook/facebook.strategy.spec.ts (100%) rename {backend/src => src}/oauth/strategy/facebook/facebook.strategy.ts (100%) rename {backend/src => src}/oauth/strategy/google/google.strategy.spec.ts (100%) rename {backend/src => src}/oauth/strategy/google/google.strategy.ts (100%) rename {backend/src => src}/oauth/strategy/linkedin/linkedin.strategy.spec.ts (100%) rename {backend/src => src}/oauth/strategy/linkedin/linkedin.strategy.ts (100%) rename {backend/src => src}/prisma/migrations/20240306075612_add_user/migration.sql (100%) rename {backend/src => src}/prisma/migrations/20240314090923_add_rating/migration.sql (100%) rename {backend/src => src}/prisma/migrations/20240314105709_add_verification_code/migration.sql (100%) rename {backend/src => src}/prisma/migrations/20240317173253_remove_review/migration.sql (100%) rename {backend/src => src}/prisma/migrations/migration_lock.toml (100%) rename {backend/src => src}/prisma/prisma.module.ts (100%) rename {backend/src => src}/prisma/prisma.service.spec.ts (100%) rename {backend/src => src}/prisma/prisma.service.ts (100%) rename {backend/src => src}/prisma/schema.prisma (100%) rename {backend/src => src}/provider/provider.module.ts (100%) rename {backend/src => src}/provider/s3.provider.ts (100%) rename {backend/src => src}/schemas/review.properties.ts (100%) rename {backend/src => src}/schemas/user.properties.ts (100%) rename {backend/src => src}/user/controller/user.controller.spec.ts (78%) rename {backend/src => src}/user/controller/user.controller.ts (100%) rename {backend/src => src}/user/dto/rating.dto.ts (100%) rename {backend/src => src}/user/dto/update-user.dto.ts (100%) rename {backend/src => src}/user/service/user.service.spec.ts (76%) rename {backend/src => src}/user/service/user.service.ts (97%) rename {backend/src => src}/user/user.e2e.spec.ts (96%) rename {backend/src => src}/user/user.module.ts (100%) rename backend/tsconfig.build.json => tsconfig.build.json (100%) rename backend/tsconfig.json => tsconfig.json (100%) rename backend/tsconfig.spec.json => tsconfig.spec.json (100%) rename {backend/utils => utils}/sitemap.ts (100%) diff --git a/backend/.env.example b/.env.example similarity index 100% rename from backend/.env.example rename to .env.example diff --git a/backend/.eslintrc.js b/.eslintrc.js similarity index 100% rename from backend/.eslintrc.js rename to .eslintrc.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bb372f..464e67e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,7 @@ on: - '!main' - '!develop' - '*' - paths: ['apps/api/**'] pull_request: - paths: ['apps/api/**'] jobs: lint: @@ -22,10 +20,8 @@ jobs: - name: Install pnpm run: npm install -g pnpm - name: Install dependencies - working-directory: ./backend run: pnpm install - - name: Run Prettier (Pre-commit or in workflow) - working-directory: ./backend + - name: Run ESLint run: pnpm lint test: @@ -39,14 +35,10 @@ jobs: - name: Install pnpm run: npm install -g pnpm - name: Install dependencies - working-directory: ./backend run: pnpm install - name: Run ESLint - working-directory: ./backend run: pnpm lint - name: Run unit tests - working-directory: ./backend run: pnpm run test:unit - name: Run e2e tests - working-directory: ./backend run: pnpm run test:e2e diff --git a/.github/workflows/prod-backend.yml b/.github/workflows/prod-backend.yml index ba3ad31..ddfa65c 100644 --- a/.github/workflows/prod-backend.yml +++ b/.github/workflows/prod-backend.yml @@ -2,7 +2,14 @@ on: push: branches: - main - paths: ['backend/**', '.github/workflows/prod-backend.yml'] + paths: + [ + 'src/**', + '.github/workflows/prod-backend.yml', + 'Dockerfile', + 'package.json', + 'fly.backend.toml', + ] env: DATABASE_URL: ${{ secrets.DB_PROD_URL }} @@ -22,15 +29,13 @@ jobs: - name: Install pnpm run: npm install -g pnpm - name: pnpm install - working-directory: ./backend run: pnpm install - name: Deploy migrations - working-directory: ./backend run: pnpm db:deploy-migrations - name: Deploy to prod run: | ~/.fly/bin/fly deploy \ --config fly.backend.toml \ - --dockerfile ./backend/Dockerfile \ + --dockerfile Dockerfile \ --app culero-stage-api \ - --access-token ${{ secrets.FLY_ACCESS_TOKEN }} \ No newline at end of file + --access-token ${{ secrets.FLY_ACCESS_TOKEN }} diff --git a/.github/workflows/stage-backend.yml b/.github/workflows/stage-backend.yml index eb133d1..cddaece 100644 --- a/.github/workflows/stage-backend.yml +++ b/.github/workflows/stage-backend.yml @@ -2,7 +2,14 @@ on: push: branches: - develop - paths: ['backend/**', '.github/workflows/stage-backend.yml'] + paths: + [ + 'src/**', + '.github/workflows/prod-backend.yml', + 'Dockerfile', + 'package.json', + 'fly.backend.toml', + ] env: DATABASE_URL: ${{ secrets.DB_STAGE_URL }} @@ -22,15 +29,13 @@ jobs: - name: Install pnpm run: npm install -g pnpm - name: pnpm install - working-directory: ./backend run: pnpm install - name: Deploy migrations - working-directory: ./backend run: pnpm db:deploy-migrations - name: Deploy to stage run: | ~/.fly/bin/fly deploy \ --config fly.backend.toml \ - --dockerfile ./backend/Dockerfile \ + --dockerfile Dockerfile \ --app culero-stage-api \ --access-token ${{ secrets.FLY_ACCESS_TOKEN }} diff --git a/.gitignore b/.gitignore index 19d9e9f..fa3e6b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,163 +1,42 @@ -# ---- macOS ---- -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent +# compiled output +/dist +/node_modules -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# ---- Node ---- # Logs logs *.log npm-debug.log* +pnpm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz +# OS +.DS_Store -# Yarn Integrity file -.yarn-integrity +# 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.stage .env.prod +.env.stage -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -.vscode/ -.idea/ - -**/coverage-e2e/ \ No newline at end of file +data/ +coverage-e2e/ \ No newline at end of file diff --git a/backend/.husky/pre-commit b/.husky/pre-commit similarity index 100% rename from backend/.husky/pre-commit rename to .husky/pre-commit diff --git a/backend/.prettierrc b/.prettierrc similarity index 100% rename from backend/.prettierrc rename to .prettierrc diff --git a/backend/Dockerfile b/Dockerfile similarity index 82% rename from backend/Dockerfile rename to Dockerfile index 6f0d352..1a6ea64 100644 --- a/backend/Dockerfile +++ b/Dockerfile @@ -6,12 +6,12 @@ WORKDIR /app RUN npm i -g pnpm -COPY backend/package.json . -COPY backend/tsconfig.json . +COPY package.json . +COPY tsconfig.json . RUN pnpm install -COPY backend . +COPY . . RUN pnpm db:generate-types RUN pnpm build diff --git a/Makefile b/Makefile deleted file mode 100644 index 1f666e5..0000000 --- a/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -all: create_dev_db start_dev_db docker_build_backend docker_run_backend - -docker_build_backend: - docker build -t culero-api -f ./backend/Dockerfile . - -docker_run_backend: - docker run --network host --env-file ./backend/.env --rm culero-api - -create_dev_db: - docker run --name culero-psql --network host -e POSTGRES_PASSWORD=password -d postgres - -start_dev_db: - docker start culero-psql - -stop_dev_db: - docker stop culero-psql \ No newline at end of file diff --git a/backend/README.md b/README-backend.md similarity index 100% rename from backend/README.md rename to README-backend.md diff --git a/backend/.gitignore b/backend/.gitignore deleted file mode 100644 index 0591fad..0000000 --- a/backend/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -# compiled output -/dist -/node_modules - -# 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 - -.env -.env.prod -.env.stage \ No newline at end of file diff --git a/backend/docker-compose-test.yml b/docker-compose-test.yml similarity index 60% rename from backend/docker-compose-test.yml rename to docker-compose-test.yml index 08c1929..76f9108 100644 --- a/backend/docker-compose-test.yml +++ b/docker-compose-test.yml @@ -6,7 +6,7 @@ services: db: image: postgres:14 restart: always - container_name: integration-tests-prisma + container_name: culero-psql-test ports: - '5432:5432' environment: @@ -16,17 +16,6 @@ services: networks: - culero-test - redis: - image: redis:6 - restart: always - container_name: culero-redis - environment: - REDIS_PASSWORD: password - ports: - - '6379:6379' - networks: - - culero-dev - networks: culero-test: driver: bridge diff --git a/backend/docker-compose.yml b/docker-compose.yml similarity index 71% rename from backend/docker-compose.yml rename to docker-compose.yml index cb8d140..b5d3fbf 100644 --- a/backend/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: db: image: postgres:14 restart: always - container_name: culero-psql + container_name: culero-psql-dev ports: - '5432:5432' environment: @@ -16,25 +16,19 @@ services: networks: - culero-dev volumes: - - db-data:/var/lib/postgresql/data + - ./data/db:/var/lib/postgresql/data redis: image: redis:6 restart: always - container_name: culero-redis + container_name: culero-redis-dev ports: - '6379:6379' networks: - culero-dev volumes: - - cache-data:/data + - ./data/redis:/data networks: culero-dev: driver: bridge - -volumes: - db-data: - driver: local - cache-data: - driver: local diff --git a/backend/jest.config.json b/jest.config.json similarity index 100% rename from backend/jest.config.json rename to jest.config.json diff --git a/backend/jest.e2e-config.json b/jest.e2e-config.json similarity index 100% rename from backend/jest.e2e-config.json rename to jest.e2e-config.json diff --git a/backend/nest-cli.json b/nest-cli.json similarity index 100% rename from backend/nest-cli.json rename to nest-cli.json diff --git a/backend/package.json b/package.json similarity index 96% rename from backend/package.json rename to package.json index 0cdfb0e..be3d7a8 100644 --- a/backend/package.json +++ b/package.json @@ -24,7 +24,9 @@ "db:validate": "pnpm dlx prisma validate --schema=src/prisma/schema.prisma", "db:format": "pnpm dlx prisma format --schema=src/prisma/schema.prisma", "db:reset": "pnpm dlx prisma migrate reset --force --schema=src/prisma/schema.prisma", - "prepare": "husky" + "prepare": "husky", + "docker:build": "docker build -t culero-api .", + "docker:run": "docker run --network host --env-file .env --rm culero-api" }, "dependencies": { "@arendajaelu/nestjs-passport-apple": "^2.0.2", diff --git a/backend/pnpm-lock.yaml b/pnpm-lock.yaml similarity index 100% rename from backend/pnpm-lock.yaml rename to pnpm-lock.yaml diff --git a/backend/src/app/app.controller.spec.ts b/src/app/app.controller.spec.ts similarity index 100% rename from backend/src/app/app.controller.spec.ts rename to src/app/app.controller.spec.ts diff --git a/backend/src/app/app.controller.ts b/src/app/app.controller.ts similarity index 100% rename from backend/src/app/app.controller.ts rename to src/app/app.controller.ts diff --git a/backend/src/app/app.module.ts b/src/app/app.module.ts similarity index 70% rename from backend/src/app/app.module.ts rename to src/app/app.module.ts index 88f32eb..7b0d0f1 100644 --- a/backend/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -23,14 +23,20 @@ import * as redisStore from 'cache-manager-redis-store'; PrismaModule, MailModule, ProviderModule, - CacheModule.register({ - isGlobal: true, - store: redisStore, - host: process.env.REDIS_HOST, - port: parseInt(process.env.REDIS_PORT), - password: process.env.REDIS_PASSWORD, - ttl: 60 * 60 * 24, - }), + CacheModule.register( + process.env.NODE_ENV === 'e2e' + ? { + isGlobal: true, + } + : { + isGlobal: true, + store: redisStore, + host: process.env.REDIS_HOST ?? 'localhost', + port: parseInt(process.env.REDIS_PORT ?? '6379', 10), + password: process.env.REDIS_PASSWORD ?? 'password', + ttl: 60 * 60 * 24, + }, + ), ], controllers: [AppController], providers: [ diff --git a/backend/src/auth/auth.e2e.spec.ts b/src/auth/auth.e2e.spec.ts similarity index 97% rename from backend/src/auth/auth.e2e.spec.ts rename to src/auth/auth.e2e.spec.ts index a11d1d2..5153bcf 100644 --- a/backend/src/auth/auth.e2e.spec.ts +++ b/src/auth/auth.e2e.spec.ts @@ -188,4 +188,12 @@ describe('Auth Controller Tests', () => { await prisma.user.deleteMany(); await prisma.verificationCode.deleteMany(); }); + + afterAll(async () => { + try { + await app.close(); + } catch (error) { + console.log('error', error); + } + }); }); diff --git a/backend/src/auth/auth.module.ts b/src/auth/auth.module.ts similarity index 97% rename from backend/src/auth/auth.module.ts rename to src/auth/auth.module.ts index 019114a..030fbc3 100644 --- a/backend/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -16,7 +16,7 @@ import { MailService } from '../mail/mail.service'; imports: [ JwtModule.register({ global: true, - secret: process.env.JWT_SECRET, + secret: process.env.JWT_SECRET ?? 'secret', signOptions: { expiresIn: '1d', issuer: 'culero', diff --git a/backend/src/auth/controller/auth.controller.spec.ts b/src/auth/controller/auth.controller.spec.ts similarity index 100% rename from backend/src/auth/controller/auth.controller.spec.ts rename to src/auth/controller/auth.controller.spec.ts diff --git a/backend/src/auth/controller/auth.controller.ts b/src/auth/controller/auth.controller.ts similarity index 100% rename from backend/src/auth/controller/auth.controller.ts rename to src/auth/controller/auth.controller.ts diff --git a/backend/src/auth/dto/email-verification.dto.ts b/src/auth/dto/email-verification.dto.ts similarity index 100% rename from backend/src/auth/dto/email-verification.dto.ts rename to src/auth/dto/email-verification.dto.ts diff --git a/backend/src/auth/dto/signin.dto.ts b/src/auth/dto/signin.dto.ts similarity index 100% rename from backend/src/auth/dto/signin.dto.ts rename to src/auth/dto/signin.dto.ts diff --git a/backend/src/auth/dto/signup.dto.ts b/src/auth/dto/signup.dto.ts similarity index 100% rename from backend/src/auth/dto/signup.dto.ts rename to src/auth/dto/signup.dto.ts diff --git a/backend/src/auth/guard/auth/auth.guard.spec.ts b/src/auth/guard/auth/auth.guard.spec.ts similarity index 100% rename from backend/src/auth/guard/auth/auth.guard.spec.ts rename to src/auth/guard/auth/auth.guard.spec.ts diff --git a/backend/src/auth/guard/auth/auth.guard.ts b/src/auth/guard/auth/auth.guard.ts similarity index 100% rename from backend/src/auth/guard/auth/auth.guard.ts rename to src/auth/guard/auth/auth.guard.ts diff --git a/backend/src/auth/service/auth.service.spec.ts b/src/auth/service/auth.service.spec.ts similarity index 100% rename from backend/src/auth/service/auth.service.spec.ts rename to src/auth/service/auth.service.spec.ts diff --git a/backend/src/auth/service/auth.service.ts b/src/auth/service/auth.service.ts similarity index 100% rename from backend/src/auth/service/auth.service.ts rename to src/auth/service/auth.service.ts diff --git a/backend/src/decorators/current-user.decorator.ts b/src/decorators/current-user.decorator.ts similarity index 100% rename from backend/src/decorators/current-user.decorator.ts rename to src/decorators/current-user.decorator.ts diff --git a/backend/src/decorators/decorators.module.ts b/src/decorators/decorators.module.ts similarity index 100% rename from backend/src/decorators/decorators.module.ts rename to src/decorators/decorators.module.ts diff --git a/backend/src/decorators/public.decorator.ts b/src/decorators/public.decorator.ts similarity index 100% rename from backend/src/decorators/public.decorator.ts rename to src/decorators/public.decorator.ts diff --git a/backend/src/mail/mail.module.ts b/src/mail/mail.module.ts similarity index 100% rename from backend/src/mail/mail.module.ts rename to src/mail/mail.module.ts diff --git a/backend/src/mail/mail.service.ts b/src/mail/mail.service.ts similarity index 100% rename from backend/src/mail/mail.service.ts rename to src/mail/mail.service.ts diff --git a/backend/src/main.ts b/src/main.ts similarity index 100% rename from backend/src/main.ts rename to src/main.ts diff --git a/backend/src/oauth/factory/apple/apple-strategy.factory.spec.ts b/src/oauth/factory/apple/apple-strategy.factory.spec.ts similarity index 100% rename from backend/src/oauth/factory/apple/apple-strategy.factory.spec.ts rename to src/oauth/factory/apple/apple-strategy.factory.spec.ts diff --git a/backend/src/oauth/factory/apple/apple-strategy.factory.ts b/src/oauth/factory/apple/apple-strategy.factory.ts similarity index 100% rename from backend/src/oauth/factory/apple/apple-strategy.factory.ts rename to src/oauth/factory/apple/apple-strategy.factory.ts diff --git a/backend/src/oauth/factory/facebook/facebook-strategy.factory.spec.ts b/src/oauth/factory/facebook/facebook-strategy.factory.spec.ts similarity index 100% rename from backend/src/oauth/factory/facebook/facebook-strategy.factory.spec.ts rename to src/oauth/factory/facebook/facebook-strategy.factory.spec.ts diff --git a/backend/src/oauth/factory/facebook/facebook-strategy.factory.ts b/src/oauth/factory/facebook/facebook-strategy.factory.ts similarity index 100% rename from backend/src/oauth/factory/facebook/facebook-strategy.factory.ts rename to src/oauth/factory/facebook/facebook-strategy.factory.ts diff --git a/backend/src/oauth/factory/google/google-strategy.factory.spec.ts b/src/oauth/factory/google/google-strategy.factory.spec.ts similarity index 100% rename from backend/src/oauth/factory/google/google-strategy.factory.spec.ts rename to src/oauth/factory/google/google-strategy.factory.spec.ts diff --git a/backend/src/oauth/factory/google/google-strategy.factory.ts b/src/oauth/factory/google/google-strategy.factory.ts similarity index 100% rename from backend/src/oauth/factory/google/google-strategy.factory.ts rename to src/oauth/factory/google/google-strategy.factory.ts diff --git a/backend/src/oauth/factory/linkedin/linkedin-strategy.factory.spec.ts b/src/oauth/factory/linkedin/linkedin-strategy.factory.spec.ts similarity index 100% rename from backend/src/oauth/factory/linkedin/linkedin-strategy.factory.spec.ts rename to src/oauth/factory/linkedin/linkedin-strategy.factory.spec.ts diff --git a/backend/src/oauth/factory/linkedin/linkedin-strategy.factory.ts b/src/oauth/factory/linkedin/linkedin-strategy.factory.ts similarity index 100% rename from backend/src/oauth/factory/linkedin/linkedin-strategy.factory.ts rename to src/oauth/factory/linkedin/linkedin-strategy.factory.ts diff --git a/backend/src/oauth/factory/oauth-strategy.factory.ts b/src/oauth/factory/oauth-strategy.factory.ts similarity index 100% rename from backend/src/oauth/factory/oauth-strategy.factory.ts rename to src/oauth/factory/oauth-strategy.factory.ts diff --git a/backend/src/oauth/oauth.module.ts b/src/oauth/oauth.module.ts similarity index 100% rename from backend/src/oauth/oauth.module.ts rename to src/oauth/oauth.module.ts diff --git a/backend/src/oauth/strategy/apple/apple.strategy.spec.ts b/src/oauth/strategy/apple/apple.strategy.spec.ts similarity index 100% rename from backend/src/oauth/strategy/apple/apple.strategy.spec.ts rename to src/oauth/strategy/apple/apple.strategy.spec.ts diff --git a/backend/src/oauth/strategy/apple/apple.strategy.ts b/src/oauth/strategy/apple/apple.strategy.ts similarity index 100% rename from backend/src/oauth/strategy/apple/apple.strategy.ts rename to src/oauth/strategy/apple/apple.strategy.ts diff --git a/backend/src/oauth/strategy/facebook/facebook.strategy.spec.ts b/src/oauth/strategy/facebook/facebook.strategy.spec.ts similarity index 100% rename from backend/src/oauth/strategy/facebook/facebook.strategy.spec.ts rename to src/oauth/strategy/facebook/facebook.strategy.spec.ts diff --git a/backend/src/oauth/strategy/facebook/facebook.strategy.ts b/src/oauth/strategy/facebook/facebook.strategy.ts similarity index 100% rename from backend/src/oauth/strategy/facebook/facebook.strategy.ts rename to src/oauth/strategy/facebook/facebook.strategy.ts diff --git a/backend/src/oauth/strategy/google/google.strategy.spec.ts b/src/oauth/strategy/google/google.strategy.spec.ts similarity index 100% rename from backend/src/oauth/strategy/google/google.strategy.spec.ts rename to src/oauth/strategy/google/google.strategy.spec.ts diff --git a/backend/src/oauth/strategy/google/google.strategy.ts b/src/oauth/strategy/google/google.strategy.ts similarity index 100% rename from backend/src/oauth/strategy/google/google.strategy.ts rename to src/oauth/strategy/google/google.strategy.ts diff --git a/backend/src/oauth/strategy/linkedin/linkedin.strategy.spec.ts b/src/oauth/strategy/linkedin/linkedin.strategy.spec.ts similarity index 100% rename from backend/src/oauth/strategy/linkedin/linkedin.strategy.spec.ts rename to src/oauth/strategy/linkedin/linkedin.strategy.spec.ts diff --git a/backend/src/oauth/strategy/linkedin/linkedin.strategy.ts b/src/oauth/strategy/linkedin/linkedin.strategy.ts similarity index 100% rename from backend/src/oauth/strategy/linkedin/linkedin.strategy.ts rename to src/oauth/strategy/linkedin/linkedin.strategy.ts diff --git a/backend/src/prisma/migrations/20240306075612_add_user/migration.sql b/src/prisma/migrations/20240306075612_add_user/migration.sql similarity index 100% rename from backend/src/prisma/migrations/20240306075612_add_user/migration.sql rename to src/prisma/migrations/20240306075612_add_user/migration.sql diff --git a/backend/src/prisma/migrations/20240314090923_add_rating/migration.sql b/src/prisma/migrations/20240314090923_add_rating/migration.sql similarity index 100% rename from backend/src/prisma/migrations/20240314090923_add_rating/migration.sql rename to src/prisma/migrations/20240314090923_add_rating/migration.sql diff --git a/backend/src/prisma/migrations/20240314105709_add_verification_code/migration.sql b/src/prisma/migrations/20240314105709_add_verification_code/migration.sql similarity index 100% rename from backend/src/prisma/migrations/20240314105709_add_verification_code/migration.sql rename to src/prisma/migrations/20240314105709_add_verification_code/migration.sql diff --git a/backend/src/prisma/migrations/20240317173253_remove_review/migration.sql b/src/prisma/migrations/20240317173253_remove_review/migration.sql similarity index 100% rename from backend/src/prisma/migrations/20240317173253_remove_review/migration.sql rename to src/prisma/migrations/20240317173253_remove_review/migration.sql diff --git a/backend/src/prisma/migrations/migration_lock.toml b/src/prisma/migrations/migration_lock.toml similarity index 100% rename from backend/src/prisma/migrations/migration_lock.toml rename to src/prisma/migrations/migration_lock.toml diff --git a/backend/src/prisma/prisma.module.ts b/src/prisma/prisma.module.ts similarity index 100% rename from backend/src/prisma/prisma.module.ts rename to src/prisma/prisma.module.ts diff --git a/backend/src/prisma/prisma.service.spec.ts b/src/prisma/prisma.service.spec.ts similarity index 100% rename from backend/src/prisma/prisma.service.spec.ts rename to src/prisma/prisma.service.spec.ts diff --git a/backend/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts similarity index 100% rename from backend/src/prisma/prisma.service.ts rename to src/prisma/prisma.service.ts diff --git a/backend/src/prisma/schema.prisma b/src/prisma/schema.prisma similarity index 100% rename from backend/src/prisma/schema.prisma rename to src/prisma/schema.prisma diff --git a/backend/src/provider/provider.module.ts b/src/provider/provider.module.ts similarity index 100% rename from backend/src/provider/provider.module.ts rename to src/provider/provider.module.ts diff --git a/backend/src/provider/s3.provider.ts b/src/provider/s3.provider.ts similarity index 100% rename from backend/src/provider/s3.provider.ts rename to src/provider/s3.provider.ts diff --git a/backend/src/schemas/review.properties.ts b/src/schemas/review.properties.ts similarity index 100% rename from backend/src/schemas/review.properties.ts rename to src/schemas/review.properties.ts diff --git a/backend/src/schemas/user.properties.ts b/src/schemas/user.properties.ts similarity index 100% rename from backend/src/schemas/user.properties.ts rename to src/schemas/user.properties.ts diff --git a/backend/src/user/controller/user.controller.spec.ts b/src/user/controller/user.controller.spec.ts similarity index 78% rename from backend/src/user/controller/user.controller.spec.ts rename to src/user/controller/user.controller.spec.ts index ccec9d5..33cf078 100644 --- a/backend/src/user/controller/user.controller.spec.ts +++ b/src/user/controller/user.controller.spec.ts @@ -5,6 +5,7 @@ import { PrismaService } from '../../prisma/prisma.service'; import { mockDeep } from 'jest-mock-extended'; import { ProviderModule } from '../../provider/provider.module'; import { MailService } from '../../mail/mail.service'; +import { CACHE_MANAGER } from '@nestjs/cache-manager'; describe('UserController', () => { let controller: UserController; @@ -13,12 +14,20 @@ describe('UserController', () => { const module: TestingModule = await Test.createTestingModule({ controllers: [UserController], imports: [ProviderModule], - providers: [UserService, PrismaService, MailService], + providers: [ + UserService, + PrismaService, + MailService, + { + provide: CACHE_MANAGER, + useValue: {}, + }, + ], }) .overrideProvider(MailService) .useValue(mockDeep()) .overrideProvider(PrismaService) - .useValue(mockDeep()) + .useValue({}) .compile(); controller = module.get(UserController); diff --git a/backend/src/user/controller/user.controller.ts b/src/user/controller/user.controller.ts similarity index 100% rename from backend/src/user/controller/user.controller.ts rename to src/user/controller/user.controller.ts diff --git a/backend/src/user/dto/rating.dto.ts b/src/user/dto/rating.dto.ts similarity index 100% rename from backend/src/user/dto/rating.dto.ts rename to src/user/dto/rating.dto.ts diff --git a/backend/src/user/dto/update-user.dto.ts b/src/user/dto/update-user.dto.ts similarity index 100% rename from backend/src/user/dto/update-user.dto.ts rename to src/user/dto/update-user.dto.ts diff --git a/backend/src/user/service/user.service.spec.ts b/src/user/service/user.service.spec.ts similarity index 76% rename from backend/src/user/service/user.service.spec.ts rename to src/user/service/user.service.spec.ts index 72c6b83..4f9ec81 100644 --- a/backend/src/user/service/user.service.spec.ts +++ b/src/user/service/user.service.spec.ts @@ -4,6 +4,7 @@ import { PrismaService } from '../../prisma/prisma.service'; import { mockDeep } from 'jest-mock-extended'; import { ProviderModule } from '../../provider/provider.module'; import { MailService } from '../../mail/mail.service'; +import { CACHE_MANAGER } from '@nestjs/cache-manager'; describe('UserService', () => { let service: UserService; @@ -11,12 +12,20 @@ describe('UserService', () => { beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [ProviderModule], - providers: [UserService, PrismaService, MailService], + providers: [ + UserService, + PrismaService, + MailService, + { + provide: CACHE_MANAGER, + useValue: {}, + }, + ], }) .overrideProvider(MailService) .useValue(mockDeep()) .overrideProvider(PrismaService) - .useValue(mockDeep()) + .useValue({}) .compile(); service = module.get(UserService); diff --git a/backend/src/user/service/user.service.ts b/src/user/service/user.service.ts similarity index 97% rename from backend/src/user/service/user.service.ts rename to src/user/service/user.service.ts index a0ac398..44db9e2 100644 --- a/backend/src/user/service/user.service.ts +++ b/src/user/service/user.service.ts @@ -15,6 +15,9 @@ import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'; import { S3_CLIENT } from '../../provider/s3.provider'; import { CACHE_MANAGER } from '@nestjs/cache-manager'; import { Cache } from 'cache-manager'; +// This is needed for file upload to work. Don't remove this +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { Multer } from 'multer'; @Injectable() export class UserService { diff --git a/backend/src/user/user.e2e.spec.ts b/src/user/user.e2e.spec.ts similarity index 96% rename from backend/src/user/user.e2e.spec.ts rename to src/user/user.e2e.spec.ts index 3286367..190e7cd 100644 --- a/backend/src/user/user.e2e.spec.ts +++ b/src/user/user.e2e.spec.ts @@ -144,9 +144,9 @@ describe('User Controller Tests', () => { { ratedUserId: '2', raterUserId: '1', - professionalism: 4, - reliability: 4, - communication: 4, + professionalism: 5, + reliability: 5, + communication: 5, }, ], }); @@ -400,10 +400,10 @@ describe('User Controller Tests', () => { }); expect(response.statusCode).toBe(200); - expect(response.json().professionalism).toBe(4.5); - expect(response.json().reliability).toBe(4.5); - expect(response.json().communication).toBe(4.5); - expect(response.json().overall).toBe(4.5); + expect(response.json().professionalism).toBe(5); + expect(response.json().reliability).toBe(5); + expect(response.json().communication).toBe(5); + expect(response.json().overall).toBe(5); }); it('should be able to get average rating of self', async () => { @@ -445,7 +445,12 @@ describe('User Controller Tests', () => { }); afterAll(async () => { - await prisma.user.deleteMany(); - await prisma.rating.deleteMany(); + try { + await prisma.user.deleteMany(); + await prisma.rating.deleteMany(); + await app.close(); + } catch (error) { + console.log('error', error); + } }); }); diff --git a/backend/src/user/user.module.ts b/src/user/user.module.ts similarity index 100% rename from backend/src/user/user.module.ts rename to src/user/user.module.ts diff --git a/backend/tsconfig.build.json b/tsconfig.build.json similarity index 100% rename from backend/tsconfig.build.json rename to tsconfig.build.json diff --git a/backend/tsconfig.json b/tsconfig.json similarity index 100% rename from backend/tsconfig.json rename to tsconfig.json diff --git a/backend/tsconfig.spec.json b/tsconfig.spec.json similarity index 100% rename from backend/tsconfig.spec.json rename to tsconfig.spec.json diff --git a/backend/utils/sitemap.ts b/utils/sitemap.ts similarity index 100% rename from backend/utils/sitemap.ts rename to utils/sitemap.ts