├── .gitignore ├── .huskyrc.json ├── .lintstagedrc.json ├── .travis.yml ├── LICENSE ├── README.md ├── jest-integration-config.js ├── jest-mongodb-config.js ├── jest-unit-config.js ├── jest.config.js ├── package.json └── src ├── domain └── usecases │ ├── auth-usecase.js │ └── auth-usecase.spec.js ├── infra ├── helpers │ ├── mongo-helper.js │ └── mongo-helper.spec.js └── repositories │ ├── load-user-by-email-repository.js │ ├── load-user-by-email-repository.spec.js │ ├── update-access-token-repository.js │ └── update-access-token-repository.spec.js ├── main ├── adapters │ └── express-router-adapter.js ├── composers │ └── login-router-composer.js ├── config │ ├── app.js │ ├── env.js │ ├── routes.js │ ├── setup.js │ └── setup.test.js ├── index.js ├── middlewares │ ├── content-type.js │ ├── content-type.test.js │ ├── cors.js │ ├── cors.test.js │ ├── json-parser.js │ └── json-parser.test.js └── routes │ ├── login-routes.js │ └── login-routes.test.js ├── presentation ├── errors │ ├── index.js │ ├── server-error.js │ └── unauthorized-error.js ├── helpers │ └── http-response.js └── routers │ ├── login-router.js │ └── login-router.spec.js └── utils ├── errors ├── index.js ├── invalid-param-error.js └── missing-param-error.js └── helpers ├── email-validator.js ├── email-validator.spec.js ├── encrypter.js ├── encrypter.spec.js ├── token-generator.js └── token-generator.spec.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | coverage -------------------------------------------------------------------------------- /.huskyrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/.huskyrc.json -------------------------------------------------------------------------------- /.lintstagedrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/.lintstagedrc.json -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/README.md -------------------------------------------------------------------------------- /jest-integration-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/jest-integration-config.js -------------------------------------------------------------------------------- /jest-mongodb-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/jest-mongodb-config.js -------------------------------------------------------------------------------- /jest-unit-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/jest-unit-config.js -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/package.json -------------------------------------------------------------------------------- /src/domain/usecases/auth-usecase.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/domain/usecases/auth-usecase.js -------------------------------------------------------------------------------- /src/domain/usecases/auth-usecase.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/domain/usecases/auth-usecase.spec.js -------------------------------------------------------------------------------- /src/infra/helpers/mongo-helper.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/helpers/mongo-helper.js -------------------------------------------------------------------------------- /src/infra/helpers/mongo-helper.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/helpers/mongo-helper.spec.js -------------------------------------------------------------------------------- /src/infra/repositories/load-user-by-email-repository.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/repositories/load-user-by-email-repository.js -------------------------------------------------------------------------------- /src/infra/repositories/load-user-by-email-repository.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/repositories/load-user-by-email-repository.spec.js -------------------------------------------------------------------------------- /src/infra/repositories/update-access-token-repository.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/repositories/update-access-token-repository.js -------------------------------------------------------------------------------- /src/infra/repositories/update-access-token-repository.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/infra/repositories/update-access-token-repository.spec.js -------------------------------------------------------------------------------- /src/main/adapters/express-router-adapter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/adapters/express-router-adapter.js -------------------------------------------------------------------------------- /src/main/composers/login-router-composer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/composers/login-router-composer.js -------------------------------------------------------------------------------- /src/main/config/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/config/app.js -------------------------------------------------------------------------------- /src/main/config/env.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/config/env.js -------------------------------------------------------------------------------- /src/main/config/routes.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/config/routes.js -------------------------------------------------------------------------------- /src/main/config/setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/config/setup.js -------------------------------------------------------------------------------- /src/main/config/setup.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/config/setup.test.js -------------------------------------------------------------------------------- /src/main/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/index.js -------------------------------------------------------------------------------- /src/main/middlewares/content-type.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/content-type.js -------------------------------------------------------------------------------- /src/main/middlewares/content-type.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/content-type.test.js -------------------------------------------------------------------------------- /src/main/middlewares/cors.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/cors.js -------------------------------------------------------------------------------- /src/main/middlewares/cors.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/cors.test.js -------------------------------------------------------------------------------- /src/main/middlewares/json-parser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/json-parser.js -------------------------------------------------------------------------------- /src/main/middlewares/json-parser.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/middlewares/json-parser.test.js -------------------------------------------------------------------------------- /src/main/routes/login-routes.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/routes/login-routes.js -------------------------------------------------------------------------------- /src/main/routes/login-routes.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/main/routes/login-routes.test.js -------------------------------------------------------------------------------- /src/presentation/errors/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/errors/index.js -------------------------------------------------------------------------------- /src/presentation/errors/server-error.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/errors/server-error.js -------------------------------------------------------------------------------- /src/presentation/errors/unauthorized-error.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/errors/unauthorized-error.js -------------------------------------------------------------------------------- /src/presentation/helpers/http-response.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/helpers/http-response.js -------------------------------------------------------------------------------- /src/presentation/routers/login-router.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/routers/login-router.js -------------------------------------------------------------------------------- /src/presentation/routers/login-router.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/presentation/routers/login-router.spec.js -------------------------------------------------------------------------------- /src/utils/errors/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/errors/index.js -------------------------------------------------------------------------------- /src/utils/errors/invalid-param-error.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/errors/invalid-param-error.js -------------------------------------------------------------------------------- /src/utils/errors/missing-param-error.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/errors/missing-param-error.js -------------------------------------------------------------------------------- /src/utils/helpers/email-validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/email-validator.js -------------------------------------------------------------------------------- /src/utils/helpers/email-validator.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/email-validator.spec.js -------------------------------------------------------------------------------- /src/utils/helpers/encrypter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/encrypter.js -------------------------------------------------------------------------------- /src/utils/helpers/encrypter.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/encrypter.spec.js -------------------------------------------------------------------------------- /src/utils/helpers/token-generator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/token-generator.js -------------------------------------------------------------------------------- /src/utils/helpers/token-generator.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rmanguinho/clean-node-api/HEAD/src/utils/helpers/token-generator.spec.js --------------------------------------------------------------------------------