├── .gitignore ├── README.md ├── dependencies └── nodejs │ ├── package-lock.json │ └── package.json ├── jest.config.js ├── jest.setup.ts ├── serverless.yml ├── src ├── application │ ├── controllers │ │ └── UserController.ts │ └── use_cases │ │ ├── CreateUserUseCase.ts │ │ ├── SendConfirmationMailUseCase.ts │ │ └── UpdateUserUseCase.ts ├── core │ ├── common │ │ └── Constants.ts │ ├── interfaces │ │ ├── IAWSHelper.ts │ │ ├── ICacheManager.ts │ │ ├── IConfigManager.ts │ │ ├── ICreateUserUseCase.ts │ │ ├── IDBHelper.ts │ │ ├── ISendConfirmationMailUseCase.ts │ │ ├── IUpdateUserUseCase.ts │ │ └── IUserRepository.ts │ └── types │ │ └── User.ts ├── framework │ ├── repositories │ │ └── UserRepository.ts │ └── util │ │ ├── AWSHelper.ts │ │ ├── CacheManager.ts │ │ ├── ConfigManager.ts │ │ ├── DBHelper.ts │ │ └── DIRegister.ts └── lambda │ ├── CreateUser.ts │ └── UpdateUser.ts ├── tests ├── testUtil │ └── APIGatewayProxyEvent.json └── use_cases │ └── CreateUserUseCase.test.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/README.md -------------------------------------------------------------------------------- /dependencies/nodejs/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/dependencies/nodejs/package-lock.json -------------------------------------------------------------------------------- /dependencies/nodejs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/dependencies/nodejs/package.json -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/jest.config.js -------------------------------------------------------------------------------- /jest.setup.ts: -------------------------------------------------------------------------------- 1 | import "reflect-metadata"; -------------------------------------------------------------------------------- /serverless.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/serverless.yml -------------------------------------------------------------------------------- /src/application/controllers/UserController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/application/controllers/UserController.ts -------------------------------------------------------------------------------- /src/application/use_cases/CreateUserUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/application/use_cases/CreateUserUseCase.ts -------------------------------------------------------------------------------- /src/application/use_cases/SendConfirmationMailUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/application/use_cases/SendConfirmationMailUseCase.ts -------------------------------------------------------------------------------- /src/application/use_cases/UpdateUserUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/application/use_cases/UpdateUserUseCase.ts -------------------------------------------------------------------------------- /src/core/common/Constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/common/Constants.ts -------------------------------------------------------------------------------- /src/core/interfaces/IAWSHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/IAWSHelper.ts -------------------------------------------------------------------------------- /src/core/interfaces/ICacheManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/ICacheManager.ts -------------------------------------------------------------------------------- /src/core/interfaces/IConfigManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/IConfigManager.ts -------------------------------------------------------------------------------- /src/core/interfaces/ICreateUserUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/ICreateUserUseCase.ts -------------------------------------------------------------------------------- /src/core/interfaces/IDBHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/IDBHelper.ts -------------------------------------------------------------------------------- /src/core/interfaces/ISendConfirmationMailUseCase.ts: -------------------------------------------------------------------------------- 1 | export interface ISendConfirmationMailUseCase{ 2 | execute(): Promise; 3 | } -------------------------------------------------------------------------------- /src/core/interfaces/IUpdateUserUseCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/IUpdateUserUseCase.ts -------------------------------------------------------------------------------- /src/core/interfaces/IUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/interfaces/IUserRepository.ts -------------------------------------------------------------------------------- /src/core/types/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/core/types/User.ts -------------------------------------------------------------------------------- /src/framework/repositories/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/repositories/UserRepository.ts -------------------------------------------------------------------------------- /src/framework/util/AWSHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/util/AWSHelper.ts -------------------------------------------------------------------------------- /src/framework/util/CacheManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/util/CacheManager.ts -------------------------------------------------------------------------------- /src/framework/util/ConfigManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/util/ConfigManager.ts -------------------------------------------------------------------------------- /src/framework/util/DBHelper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/util/DBHelper.ts -------------------------------------------------------------------------------- /src/framework/util/DIRegister.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/framework/util/DIRegister.ts -------------------------------------------------------------------------------- /src/lambda/CreateUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/lambda/CreateUser.ts -------------------------------------------------------------------------------- /src/lambda/UpdateUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/src/lambda/UpdateUser.ts -------------------------------------------------------------------------------- /tests/testUtil/APIGatewayProxyEvent.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/tests/testUtil/APIGatewayProxyEvent.json -------------------------------------------------------------------------------- /tests/use_cases/CreateUserUseCase.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/tests/use_cases/CreateUserUseCase.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epratik/lambda-cleanarchitecture/HEAD/tsconfig.json --------------------------------------------------------------------------------