├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .gitignore ├── jest.config.js ├── nodemon.json ├── package.json ├── readme.md ├── src ├── config │ ├── Main.ts │ ├── core │ │ ├── TodoUseCasesConfiguration.ts │ │ └── index.ts │ ├── data │ │ ├── DatabaseConfiguration.ts │ │ └── index.ts │ └── entrypoint │ │ ├── ControllersConfiguration.ts │ │ ├── RouterConfiguration.ts │ │ ├── WebAppConfiguration.ts │ │ └── index.ts ├── core │ ├── definition │ │ ├── Result.ts │ │ ├── UseCase.ts │ │ ├── UseCaseError.ts │ │ └── index.ts │ ├── entities │ │ ├── Todo.ts │ │ └── index.ts │ └── usecases │ │ └── todo │ │ ├── TodoEntityGateway.ts │ │ ├── createTodo │ │ ├── CreateTodoRequestDTO.ts │ │ ├── CreateTodoResponseDTO.ts │ │ ├── CreateTodoUseCase.ts │ │ ├── errors │ │ │ ├── CreateTodoInvalidRequest.ts │ │ │ └── index.ts │ │ └── index.ts │ │ ├── getTodos │ │ ├── GetTodosRequestDTO.ts │ │ ├── GetTodosResponseDTO.ts │ │ ├── GetTodosUseCase.ts │ │ ├── errors │ │ │ ├── GetTodosInvalidRequest.ts │ │ │ └── index.ts │ │ └── index.ts │ │ ├── index.ts │ │ └── updateTodo │ │ ├── UpdateToDoUseCase.ts │ │ ├── UpdateTodoRequestDTO.ts │ │ ├── UpdateTodoResponseDTO.ts │ │ ├── errors │ │ ├── TodoNotFound.ts │ │ ├── UpdateTodoInvalidRequest.ts │ │ └── index.ts │ │ └── index.ts ├── data │ ├── index.ts │ └── todo │ │ └── TodoInMemoryEntityGateway.ts ├── entrypoint │ └── web │ │ ├── ExpressApp.ts │ │ ├── controllers │ │ ├── CreateTodoController.ts │ │ ├── GetTodosController.ts │ │ ├── UpdateTodoController.ts │ │ └── index.ts │ │ ├── definitions │ │ ├── Controller.ts │ │ └── Router.ts │ │ ├── index.ts │ │ ├── routers │ │ ├── TodoRouter.ts │ │ └── index.ts │ │ └── util │ │ └── DecodedExpressRequest.ts └── index.ts └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | tsconfig.json 4 | dist 5 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/.eslintrc -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/.gitignore -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/jest.config.js -------------------------------------------------------------------------------- /nodemon.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/nodemon.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/package.json -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/readme.md -------------------------------------------------------------------------------- /src/config/Main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/Main.ts -------------------------------------------------------------------------------- /src/config/core/TodoUseCasesConfiguration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/core/TodoUseCasesConfiguration.ts -------------------------------------------------------------------------------- /src/config/core/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/core/index.ts -------------------------------------------------------------------------------- /src/config/data/DatabaseConfiguration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/data/DatabaseConfiguration.ts -------------------------------------------------------------------------------- /src/config/data/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/data/index.ts -------------------------------------------------------------------------------- /src/config/entrypoint/ControllersConfiguration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/entrypoint/ControllersConfiguration.ts -------------------------------------------------------------------------------- /src/config/entrypoint/RouterConfiguration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/entrypoint/RouterConfiguration.ts -------------------------------------------------------------------------------- /src/config/entrypoint/WebAppConfiguration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/config/entrypoint/WebAppConfiguration.ts -------------------------------------------------------------------------------- /src/config/entrypoint/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/core/definition/Result.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/definition/Result.ts -------------------------------------------------------------------------------- /src/core/definition/UseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/definition/UseCase.ts -------------------------------------------------------------------------------- /src/core/definition/UseCaseError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/definition/UseCaseError.ts -------------------------------------------------------------------------------- /src/core/definition/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/definition/index.ts -------------------------------------------------------------------------------- /src/core/entities/Todo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/entities/Todo.ts -------------------------------------------------------------------------------- /src/core/entities/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/entities/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/TodoEntityGateway.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/TodoEntityGateway.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/CreateTodoRequestDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/CreateTodoRequestDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/CreateTodoResponseDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/CreateTodoResponseDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/CreateTodoUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/CreateTodoUseCase.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/errors/CreateTodoInvalidRequest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/errors/CreateTodoInvalidRequest.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/errors/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/errors/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/createTodo/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/createTodo/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/GetTodosRequestDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/GetTodosRequestDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/GetTodosResponseDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/GetTodosResponseDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/GetTodosUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/GetTodosUseCase.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/errors/GetTodosInvalidRequest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/errors/GetTodosInvalidRequest.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/errors/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/errors/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/getTodos/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/getTodos/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/UpdateToDoUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/UpdateToDoUseCase.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/UpdateTodoRequestDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/UpdateTodoRequestDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/UpdateTodoResponseDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/UpdateTodoResponseDTO.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/errors/TodoNotFound.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/errors/TodoNotFound.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/errors/UpdateTodoInvalidRequest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/errors/UpdateTodoInvalidRequest.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/errors/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/errors/index.ts -------------------------------------------------------------------------------- /src/core/usecases/todo/updateTodo/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/core/usecases/todo/updateTodo/index.ts -------------------------------------------------------------------------------- /src/data/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/data/index.ts -------------------------------------------------------------------------------- /src/data/todo/TodoInMemoryEntityGateway.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/data/todo/TodoInMemoryEntityGateway.ts -------------------------------------------------------------------------------- /src/entrypoint/web/ExpressApp.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/ExpressApp.ts -------------------------------------------------------------------------------- /src/entrypoint/web/controllers/CreateTodoController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/controllers/CreateTodoController.ts -------------------------------------------------------------------------------- /src/entrypoint/web/controllers/GetTodosController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/controllers/GetTodosController.ts -------------------------------------------------------------------------------- /src/entrypoint/web/controllers/UpdateTodoController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/controllers/UpdateTodoController.ts -------------------------------------------------------------------------------- /src/entrypoint/web/controllers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/controllers/index.ts -------------------------------------------------------------------------------- /src/entrypoint/web/definitions/Controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/definitions/Controller.ts -------------------------------------------------------------------------------- /src/entrypoint/web/definitions/Router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/definitions/Router.ts -------------------------------------------------------------------------------- /src/entrypoint/web/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/index.ts -------------------------------------------------------------------------------- /src/entrypoint/web/routers/TodoRouter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/routers/TodoRouter.ts -------------------------------------------------------------------------------- /src/entrypoint/web/routers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/routers/index.ts -------------------------------------------------------------------------------- /src/entrypoint/web/util/DecodedExpressRequest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/entrypoint/web/util/DecodedExpressRequest.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/src/index.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alirezabonab/clean-todo/HEAD/tsconfig.json --------------------------------------------------------------------------------