├── .commitlintrc.js ├── .dockerignore ├── .editorconfig ├── .env.example ├── .env.testing.example ├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ ├── deploy-vercel.yml │ ├── run-e2e-tests.yml │ ├── run-lint.yml │ ├── run-type-check.yml │ └── run-unit-tests.yml ├── .gitignore ├── .husky └── commit-msg ├── .npmrc ├── .prettierrc ├── Dockerfile ├── README.md ├── docker-compose.yml ├── jest.config.ts ├── nest-cli.json ├── package.json ├── prisma ├── migrations │ ├── 20230411210350_users_table │ │ └── migration.sql │ └── migration_lock.toml ├── prisma-test-environment.ts └── schema.prisma ├── renovate.json ├── src ├── app.module.ts ├── application │ ├── errors │ │ └── use-case-error.ts │ └── use-cases │ │ ├── user-case.module.ts │ │ └── user │ │ ├── errors │ │ └── user-by-email-not-found.error.ts │ │ ├── get-user-by-email.use-case.spec.ts │ │ └── get-user-by-email.use-case.ts ├── config │ ├── app.ts │ └── database.ts ├── core │ ├── domain │ │ ├── Entity.ts │ │ ├── WatchedList.ts │ │ └── errors │ │ │ └── DomainError.ts │ ├── dto │ │ └── paginated-result.ts │ └── logic │ │ ├── Either.ts │ │ ├── Maybe.ts │ │ ├── PickOut.ts │ │ └── Replace.ts ├── domain │ ├── entities │ │ └── user.entity.ts │ └── value-objects │ │ ├── email.ts │ │ └── errors │ │ └── email-bad-formatted-error.ts ├── infra │ ├── database │ │ ├── database.module.ts │ │ ├── prisma │ │ │ ├── mappers │ │ │ │ └── user.mapper.ts │ │ │ ├── prisma.service.ts │ │ │ └── repositories │ │ │ │ └── prisma-users-repository.ts │ │ └── repositories │ │ │ └── users.repository.ts │ ├── http │ │ ├── auth │ │ │ ├── auth-user.ts │ │ │ ├── current-user.ts │ │ │ ├── jwt-auth-guard.ts │ │ │ ├── jwt.strategy.ts │ │ │ └── public.ts │ │ ├── graphql │ │ │ ├── common │ │ │ │ └── dto │ │ │ │ │ ├── args │ │ │ │ │ └── pagination-args.ts │ │ │ │ │ └── models │ │ │ │ │ └── paginated.ts │ │ │ ├── complexity-plugin.ts │ │ │ ├── dto │ │ │ │ ├── input │ │ │ │ │ └── .gitkeep │ │ │ │ └── models │ │ │ │ │ └── user.model.ts │ │ │ ├── resolvers │ │ │ │ ├── user.resolver.e2e-spec.ts │ │ │ │ └── user.resolver.ts │ │ │ └── view-models │ │ │ │ ├── use-case-error.view-model.ts │ │ │ │ └── user.view-model.ts │ │ └── http.module.ts │ ├── infra.module.ts │ └── logger │ │ ├── logger.module.ts │ │ └── logger.service.ts ├── main.ts ├── schema.gql └── utils │ └── base64-encode.ts ├── test ├── factories │ └── users.factory.ts ├── jest-e2e.config.ts └── repositories │ └── in-memory-users.repository.ts ├── tsconfig.build.json ├── tsconfig.json ├── vercel.json └── yarn.lock /.commitlintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ['@rocketseat/commitlint-config'] }; 2 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.env.example -------------------------------------------------------------------------------- /.env.testing.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.env.testing.example -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/workflows/deploy-vercel.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.github/workflows/deploy-vercel.yml -------------------------------------------------------------------------------- /.github/workflows/run-e2e-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.github/workflows/run-e2e-tests.yml -------------------------------------------------------------------------------- /.github/workflows/run-lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.github/workflows/run-lint.yml -------------------------------------------------------------------------------- /.github/workflows/run-type-check.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.github/workflows/run-type-check.yml -------------------------------------------------------------------------------- /.github/workflows/run-unit-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.github/workflows/run-unit-tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.husky/commit-msg -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact=true 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/.prettierrc -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/Dockerfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/jest.config.ts -------------------------------------------------------------------------------- /nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/nest-cli.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/package.json -------------------------------------------------------------------------------- /prisma/migrations/20230411210350_users_table/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/prisma/migrations/20230411210350_users_table/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/prisma-test-environment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/prisma/prisma-test-environment.ts -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/prisma/schema.prisma -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/renovate.json -------------------------------------------------------------------------------- /src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/app.module.ts -------------------------------------------------------------------------------- /src/application/errors/use-case-error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/application/errors/use-case-error.ts -------------------------------------------------------------------------------- /src/application/use-cases/user-case.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/application/use-cases/user-case.module.ts -------------------------------------------------------------------------------- /src/application/use-cases/user/errors/user-by-email-not-found.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/application/use-cases/user/errors/user-by-email-not-found.error.ts -------------------------------------------------------------------------------- /src/application/use-cases/user/get-user-by-email.use-case.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/application/use-cases/user/get-user-by-email.use-case.spec.ts -------------------------------------------------------------------------------- /src/application/use-cases/user/get-user-by-email.use-case.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/application/use-cases/user/get-user-by-email.use-case.ts -------------------------------------------------------------------------------- /src/config/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/config/app.ts -------------------------------------------------------------------------------- /src/config/database.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/config/database.ts -------------------------------------------------------------------------------- /src/core/domain/Entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/domain/Entity.ts -------------------------------------------------------------------------------- /src/core/domain/WatchedList.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/domain/WatchedList.ts -------------------------------------------------------------------------------- /src/core/domain/errors/DomainError.ts: -------------------------------------------------------------------------------- 1 | export interface DomainError { 2 | message: string; 3 | } 4 | -------------------------------------------------------------------------------- /src/core/dto/paginated-result.ts: -------------------------------------------------------------------------------- 1 | export interface PaginatedResult { 2 | data: T; 3 | totalCount: number; 4 | } 5 | -------------------------------------------------------------------------------- /src/core/logic/Either.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/logic/Either.ts -------------------------------------------------------------------------------- /src/core/logic/Maybe.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/logic/Maybe.ts -------------------------------------------------------------------------------- /src/core/logic/PickOut.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/logic/PickOut.ts -------------------------------------------------------------------------------- /src/core/logic/Replace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/core/logic/Replace.ts -------------------------------------------------------------------------------- /src/domain/entities/user.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/domain/entities/user.entity.ts -------------------------------------------------------------------------------- /src/domain/value-objects/email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/domain/value-objects/email.ts -------------------------------------------------------------------------------- /src/domain/value-objects/errors/email-bad-formatted-error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/domain/value-objects/errors/email-bad-formatted-error.ts -------------------------------------------------------------------------------- /src/infra/database/database.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/database/database.module.ts -------------------------------------------------------------------------------- /src/infra/database/prisma/mappers/user.mapper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/database/prisma/mappers/user.mapper.ts -------------------------------------------------------------------------------- /src/infra/database/prisma/prisma.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/database/prisma/prisma.service.ts -------------------------------------------------------------------------------- /src/infra/database/prisma/repositories/prisma-users-repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/database/prisma/repositories/prisma-users-repository.ts -------------------------------------------------------------------------------- /src/infra/database/repositories/users.repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/database/repositories/users.repository.ts -------------------------------------------------------------------------------- /src/infra/http/auth/auth-user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/auth/auth-user.ts -------------------------------------------------------------------------------- /src/infra/http/auth/current-user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/auth/current-user.ts -------------------------------------------------------------------------------- /src/infra/http/auth/jwt-auth-guard.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/auth/jwt-auth-guard.ts -------------------------------------------------------------------------------- /src/infra/http/auth/jwt.strategy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/auth/jwt.strategy.ts -------------------------------------------------------------------------------- /src/infra/http/auth/public.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/auth/public.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/common/dto/args/pagination-args.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/common/dto/args/pagination-args.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/common/dto/models/paginated.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/common/dto/models/paginated.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/complexity-plugin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/complexity-plugin.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/dto/input/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/infra/http/graphql/dto/models/user.model.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/dto/models/user.model.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/resolvers/user.resolver.e2e-spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/resolvers/user.resolver.e2e-spec.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/resolvers/user.resolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/resolvers/user.resolver.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/view-models/use-case-error.view-model.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/view-models/use-case-error.view-model.ts -------------------------------------------------------------------------------- /src/infra/http/graphql/view-models/user.view-model.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/graphql/view-models/user.view-model.ts -------------------------------------------------------------------------------- /src/infra/http/http.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/http/http.module.ts -------------------------------------------------------------------------------- /src/infra/infra.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/infra.module.ts -------------------------------------------------------------------------------- /src/infra/logger/logger.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/logger/logger.module.ts -------------------------------------------------------------------------------- /src/infra/logger/logger.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/infra/logger/logger.service.ts -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/schema.gql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/schema.gql -------------------------------------------------------------------------------- /src/utils/base64-encode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/src/utils/base64-encode.ts -------------------------------------------------------------------------------- /test/factories/users.factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/test/factories/users.factory.ts -------------------------------------------------------------------------------- /test/jest-e2e.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/test/jest-e2e.config.ts -------------------------------------------------------------------------------- /test/repositories/in-memory-users.repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/test/repositories/in-memory-users.repository.ts -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/tsconfig.build.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/vercel.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rocketseat/backend-template/HEAD/yarn.lock --------------------------------------------------------------------------------