From eb991ea5e71a25483b8ad1b34fdcc74b957fc1df Mon Sep 17 00:00:00 2001 From: henrique weiand Date: Thu, 7 Mar 2024 17:51:12 -0300 Subject: [PATCH] add dist to test --- .gitignore | 2 +- dist/app.module.js | 43 ++++++ dist/app.module.js.map | 1 + .../application/ecommerce/ecommerce.module.js | 31 ++++ .../ecommerce/ecommerce.module.js.map | 1 + .../ports/order-product.repositoy.js | 14 ++ .../ports/order-product.repositoy.js.map | 1 + .../ecommerce/ports/order.repositoy.js | 14 ++ .../ecommerce/ports/order.repositoy.js.map | 1 + .../ecommerce/ports/payment.repositoy.js | 14 ++ .../ecommerce/ports/payment.repositoy.js.map | 1 + .../ecommerce/ports/product.repositoy.js | 14 ++ .../ecommerce/ports/product.repositoy.js.map | 1 + .../ecommerce/ports/user.repositoy.js | 14 ++ .../ecommerce/ports/user.repositoy.js.map | 1 + .../ecommerce/use-case/checkout-complete.js | 48 +++++++ .../use-case/checkout-complete.js.map | 1 + .../ecommerce/use-case/checkout-url.js | 39 +++++ .../ecommerce/use-case/checkout-url.js.map | 1 + .../ecommerce/use-case/create-order.js | 55 ++++++++ .../ecommerce/use-case/create-order.js.map | 1 + .../ecommerce/use-case/create-product.js | 44 ++++++ .../ecommerce/use-case/create-product.js.map | 1 + .../ecommerce/use-case/create-user.js | 43 ++++++ .../ecommerce/use-case/create-user.js.map | 1 + .../ecommerce/use-case/get-order.js | 39 +++++ .../ecommerce/use-case/get-order.js.map | 1 + .../ecommerce/use-case/get-orders.js | 39 +++++ .../ecommerce/use-case/get-orders.js.map | 1 + .../ecommerce/use-case/get-product.js | 39 +++++ .../ecommerce/use-case/get-product.js.map | 1 + .../ecommerce/use-case/get-user.js | 39 +++++ .../ecommerce/use-case/get-user.js.map | 1 + dist/core/entities/entity.js | 17 +++ dist/core/entities/entity.js.map | 1 + dist/core/entities/unique-entity-id.js | 27 ++++ dist/core/entities/unique-entity-id.js.map | 1 + dist/core/entities/value-object.js | 17 +++ dist/core/entities/value-object.js.map | 1 + dist/domain/ecommerce/order-product.js | 33 +++++ dist/domain/ecommerce/order-product.js.map | 1 + dist/domain/ecommerce/order.js | 59 ++++++++ dist/domain/ecommerce/order.js.map | 1 + dist/domain/ecommerce/product.js | 27 ++++ dist/domain/ecommerce/product.js.map | 1 + dist/domain/ecommerce/user.js | 30 ++++ dist/domain/ecommerce/user.js.map | 1 + dist/infra/env/env.js | 23 +++ dist/infra/env/env.js.map | 1 + dist/infra/env/env.module.js | 41 ++++++ dist/infra/env/env.module.js.map | 1 + dist/infra/env/env.service.js | 40 ++++++ dist/infra/env/env.service.js.map | 1 + dist/infra/env/env.service.unit-spec.js | 41 ++++++ dist/infra/env/env.service.unit-spec.js.map | 1 + dist/infra/env/index.js | 22 +++ dist/infra/env/index.js.map | 1 + dist/infra/http/app.controller.js | 38 +++++ dist/infra/http/app.controller.js.map | 1 + dist/infra/http/checkout.controller.js | 80 +++++++++++ dist/infra/http/checkout.controller.js.map | 1 + .../http/dto/create-order-product.dto.js | 37 +++++ .../http/dto/create-order-product.dto.js.map | 1 + dist/infra/http/dto/create-order.dto.js | 42 ++++++ dist/infra/http/dto/create-order.dto.js.map | 1 + dist/infra/http/dto/create-product.dto.js | 37 +++++ dist/infra/http/dto/create-product.dto.js.map | 1 + dist/infra/http/dto/create-user.dto.js | 31 ++++ dist/infra/http/dto/create-user.dto.js.map | 1 + dist/infra/http/http.module.js | 64 +++++++++ dist/infra/http/http.module.js.map | 1 + dist/infra/http/order.controller.js | 91 ++++++++++++ dist/infra/http/order.controller.js.map | 1 + dist/infra/http/product.controller.js | 73 ++++++++++ dist/infra/http/product.controller.js.map | 1 + dist/infra/http/user.controller-e2e-spec.js | 56 ++++++++ .../http/user.controller-e2e-spec.js.map | 1 + dist/infra/http/user.controller.js | 73 ++++++++++ dist/infra/http/user.controller.js.map | 1 + dist/infra/payment/payment.module.js | 32 +++++ dist/infra/payment/payment.module.js.map | 1 + .../stripe/stripe-payment.repositoy.js | 111 +++++++++++++++ .../stripe/stripe-payment.repositoy.js.map | 1 + dist/infra/payment/stripe/stripe.module.js | 42 ++++++ .../infra/payment/stripe/stripe.module.js.map | 1 + dist/infra/payment/stripe/stripe.service.js | 49 +++++++ .../payment/stripe/stripe.service.js.map | 1 + dist/infra/persistence/cache/cache.module.js | 45 ++++++ .../persistence/cache/cache.module.js.map | 1 + .../interceptor/http-cache.interceptor.js | 35 +++++ .../interceptor/http-cache.interceptor.js.map | 1 + .../mongoose/entities/order-product.entity.js | 54 +++++++ .../entities/order-product.entity.js.map | 1 + .../mongoose/entities/order.entity.js | 86 +++++++++++ .../mongoose/entities/order.entity.js.map | 1 + .../mongoose/entities/product.entity.js | 61 ++++++++ .../mongoose/entities/product.entity.js.map | 1 + .../mongoose/entities/user.entity.js | 57 ++++++++ .../mongoose/entities/user.entity.js.map | 1 + .../mapper/mongoose-order-details-mapper.js | 28 ++++ .../mongoose-order-details-mapper.js.map | 1 + .../mongoose/mapper/mongoose-order-mapper.js | 35 +++++ .../mapper/mongoose-order-mapper.js.map | 1 + .../mapper/mongoose-order-product-mapper.js | 29 ++++ .../mongoose-order-product-mapper.js.map | 1 + .../mapper/mongoose-product-mapper.js | 29 ++++ .../mapper/mongoose-product-mapper.js.map | 1 + .../mapper/mongoose-user-details-mapper.js | 24 ++++ .../mongoose-user-details-mapper.js.map | 1 + .../mongoose/mapper/mongoose-user-mapper.js | 27 ++++ .../mapper/mongoose-user-mapper.js.map | 1 + .../persistence/mongoose/mongoose.module.js | 94 +++++++++++++ .../mongoose/mongoose.module.js.map | 1 + .../mongoose-order-product.repositoy.js | 57 ++++++++ .../mongoose-order-product.repositoy.js.map | 1 + .../repositories/mongoose-order.repositoy.js | 133 ++++++++++++++++++ .../mongoose-order.repositoy.js.map | 1 + .../mongoose-product.repositoy.js | 53 +++++++ .../mongoose-product.repositoy.js.map | 1 + .../repositories/mongoose-user.repositoy.js | 110 +++++++++++++++ .../mongoose-user.repositoy.js.map | 1 + dist/infra/persistence/persistence.module.js | 38 +++++ .../persistence/persistence.module.js.map | 1 + .../mapper/prisma-order-details-mapper.js | 28 ++++ .../mapper/prisma-order-details-mapper.js.map | 1 + .../prisma/mapper/prisma-order-mapper.js | 34 +++++ .../prisma/mapper/prisma-order-mapper.js.map | 1 + .../mapper/prisma-order-product-mapper.js | 38 +++++ .../mapper/prisma-order-product-mapper.js.map | 1 + .../prisma/mapper/prisma-product-mapper.js | 29 ++++ .../mapper/prisma-product-mapper.js.map | 1 + .../mapper/prisma-user-details-mapper.js | 24 ++++ .../mapper/prisma-user-details-mapper.js.map | 1 + .../prisma/mapper/prisma-user-mapper.js | 27 ++++ .../prisma/mapper/prisma-user-mapper.js.map | 1 + .../infra/persistence/prisma/prisma.module.js | 64 +++++++++ .../persistence/prisma/prisma.module.js.map | 1 + .../persistence/prisma/prisma.service.js | 44 ++++++ .../persistence/prisma/prisma.service.js.map | 1 + .../prisma-order-product.repositoy.js | 53 +++++++ .../prisma-order-product.repositoy.js.map | 1 + .../repositories/prisma-order.repositoy.js | 85 +++++++++++ .../prisma-order.repositoy.js.map | 1 + .../repositories/prisma-product.repositoy.js | 47 +++++++ .../prisma-product.repositoy.js.map | 1 + .../repositories/prisma-user.repositoy.js | 67 +++++++++ .../repositories/prisma-user.repositoy.js.map | 1 + dist/main.js | 36 +++++ dist/main.js.map | 1 + 149 files changed, 3408 insertions(+), 1 deletion(-) create mode 100644 dist/app.module.js create mode 100644 dist/app.module.js.map create mode 100644 dist/application/ecommerce/ecommerce.module.js create mode 100644 dist/application/ecommerce/ecommerce.module.js.map create mode 100644 dist/application/ecommerce/ports/order-product.repositoy.js create mode 100644 dist/application/ecommerce/ports/order-product.repositoy.js.map create mode 100644 dist/application/ecommerce/ports/order.repositoy.js create mode 100644 dist/application/ecommerce/ports/order.repositoy.js.map create mode 100644 dist/application/ecommerce/ports/payment.repositoy.js create mode 100644 dist/application/ecommerce/ports/payment.repositoy.js.map create mode 100644 dist/application/ecommerce/ports/product.repositoy.js create mode 100644 dist/application/ecommerce/ports/product.repositoy.js.map create mode 100644 dist/application/ecommerce/ports/user.repositoy.js create mode 100644 dist/application/ecommerce/ports/user.repositoy.js.map create mode 100644 dist/application/ecommerce/use-case/checkout-complete.js create mode 100644 dist/application/ecommerce/use-case/checkout-complete.js.map create mode 100644 dist/application/ecommerce/use-case/checkout-url.js create mode 100644 dist/application/ecommerce/use-case/checkout-url.js.map create mode 100644 dist/application/ecommerce/use-case/create-order.js create mode 100644 dist/application/ecommerce/use-case/create-order.js.map create mode 100644 dist/application/ecommerce/use-case/create-product.js create mode 100644 dist/application/ecommerce/use-case/create-product.js.map create mode 100644 dist/application/ecommerce/use-case/create-user.js create mode 100644 dist/application/ecommerce/use-case/create-user.js.map create mode 100644 dist/application/ecommerce/use-case/get-order.js create mode 100644 dist/application/ecommerce/use-case/get-order.js.map create mode 100644 dist/application/ecommerce/use-case/get-orders.js create mode 100644 dist/application/ecommerce/use-case/get-orders.js.map create mode 100644 dist/application/ecommerce/use-case/get-product.js create mode 100644 dist/application/ecommerce/use-case/get-product.js.map create mode 100644 dist/application/ecommerce/use-case/get-user.js create mode 100644 dist/application/ecommerce/use-case/get-user.js.map create mode 100644 dist/core/entities/entity.js create mode 100644 dist/core/entities/entity.js.map create mode 100644 dist/core/entities/unique-entity-id.js create mode 100644 dist/core/entities/unique-entity-id.js.map create mode 100644 dist/core/entities/value-object.js create mode 100644 dist/core/entities/value-object.js.map create mode 100644 dist/domain/ecommerce/order-product.js create mode 100644 dist/domain/ecommerce/order-product.js.map create mode 100644 dist/domain/ecommerce/order.js create mode 100644 dist/domain/ecommerce/order.js.map create mode 100644 dist/domain/ecommerce/product.js create mode 100644 dist/domain/ecommerce/product.js.map create mode 100644 dist/domain/ecommerce/user.js create mode 100644 dist/domain/ecommerce/user.js.map create mode 100644 dist/infra/env/env.js create mode 100644 dist/infra/env/env.js.map create mode 100644 dist/infra/env/env.module.js create mode 100644 dist/infra/env/env.module.js.map create mode 100644 dist/infra/env/env.service.js create mode 100644 dist/infra/env/env.service.js.map create mode 100644 dist/infra/env/env.service.unit-spec.js create mode 100644 dist/infra/env/env.service.unit-spec.js.map create mode 100644 dist/infra/env/index.js create mode 100644 dist/infra/env/index.js.map create mode 100644 dist/infra/http/app.controller.js create mode 100644 dist/infra/http/app.controller.js.map create mode 100644 dist/infra/http/checkout.controller.js create mode 100644 dist/infra/http/checkout.controller.js.map create mode 100644 dist/infra/http/dto/create-order-product.dto.js create mode 100644 dist/infra/http/dto/create-order-product.dto.js.map create mode 100644 dist/infra/http/dto/create-order.dto.js create mode 100644 dist/infra/http/dto/create-order.dto.js.map create mode 100644 dist/infra/http/dto/create-product.dto.js create mode 100644 dist/infra/http/dto/create-product.dto.js.map create mode 100644 dist/infra/http/dto/create-user.dto.js create mode 100644 dist/infra/http/dto/create-user.dto.js.map create mode 100644 dist/infra/http/http.module.js create mode 100644 dist/infra/http/http.module.js.map create mode 100644 dist/infra/http/order.controller.js create mode 100644 dist/infra/http/order.controller.js.map create mode 100644 dist/infra/http/product.controller.js create mode 100644 dist/infra/http/product.controller.js.map create mode 100644 dist/infra/http/user.controller-e2e-spec.js create mode 100644 dist/infra/http/user.controller-e2e-spec.js.map create mode 100644 dist/infra/http/user.controller.js create mode 100644 dist/infra/http/user.controller.js.map create mode 100644 dist/infra/payment/payment.module.js create mode 100644 dist/infra/payment/payment.module.js.map create mode 100644 dist/infra/payment/stripe/stripe-payment.repositoy.js create mode 100644 dist/infra/payment/stripe/stripe-payment.repositoy.js.map create mode 100644 dist/infra/payment/stripe/stripe.module.js create mode 100644 dist/infra/payment/stripe/stripe.module.js.map create mode 100644 dist/infra/payment/stripe/stripe.service.js create mode 100644 dist/infra/payment/stripe/stripe.service.js.map create mode 100644 dist/infra/persistence/cache/cache.module.js create mode 100644 dist/infra/persistence/cache/cache.module.js.map create mode 100644 dist/infra/persistence/cache/interceptor/http-cache.interceptor.js create mode 100644 dist/infra/persistence/cache/interceptor/http-cache.interceptor.js.map create mode 100644 dist/infra/persistence/mongoose/entities/order-product.entity.js create mode 100644 dist/infra/persistence/mongoose/entities/order-product.entity.js.map create mode 100644 dist/infra/persistence/mongoose/entities/order.entity.js create mode 100644 dist/infra/persistence/mongoose/entities/order.entity.js.map create mode 100644 dist/infra/persistence/mongoose/entities/product.entity.js create mode 100644 dist/infra/persistence/mongoose/entities/product.entity.js.map create mode 100644 dist/infra/persistence/mongoose/entities/user.entity.js create mode 100644 dist/infra/persistence/mongoose/entities/user.entity.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js create mode 100644 dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js.map create mode 100644 dist/infra/persistence/mongoose/mongoose.module.js create mode 100644 dist/infra/persistence/mongoose/mongoose.module.js.map create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js.map create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js.map create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js.map create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js create mode 100644 dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js.map create mode 100644 dist/infra/persistence/persistence.module.js create mode 100644 dist/infra/persistence/persistence.module.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-mapper.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-product-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-product-mapper.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js.map create mode 100644 dist/infra/persistence/prisma/mapper/prisma-user-mapper.js create mode 100644 dist/infra/persistence/prisma/mapper/prisma-user-mapper.js.map create mode 100644 dist/infra/persistence/prisma/prisma.module.js create mode 100644 dist/infra/persistence/prisma/prisma.module.js.map create mode 100644 dist/infra/persistence/prisma/prisma.service.js create mode 100644 dist/infra/persistence/prisma/prisma.service.js.map create mode 100644 dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js create mode 100644 dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js.map create mode 100644 dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js create mode 100644 dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js.map create mode 100644 dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js create mode 100644 dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js.map create mode 100644 dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js create mode 100644 dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js.map create mode 100644 dist/main.js create mode 100644 dist/main.js.map diff --git a/.gitignore b/.gitignore index 4b56acf..bf01147 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # compiled output -/dist +# /dist /node_modules /build diff --git a/dist/app.module.js b/dist/app.module.js new file mode 100644 index 0000000..fdc3665 --- /dev/null +++ b/dist/app.module.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppModule", { + enumerable: true, + get: function() { + return AppModule; + } +}); +const _common = require("@nestjs/common"); +const _devtoolsintegration = require("@nestjs/devtools-integration"); +const _ecommercemodule = require("./application/ecommerce/ecommerce.module"); +const _persistencemodule = require("./infra/persistence/persistence.module"); +const _servestatic = require("@nestjs/serve-static"); +const _path = require("path"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let AppModule = class AppModule { +}; +AppModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _devtoolsintegration.DevtoolsModule.register({ + http: process.env.NODE_ENV !== 'production' + }), + _persistencemodule.PersistenceModule.register({ + type: 'mongoose', + global: true + }), + _servestatic.ServeStaticModule.forRoot({ + rootPath: (0, _path.join)(__dirname, '..', 'api') + }), + _ecommercemodule.EcommerceModule + ] + }) +], AppModule); + +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/dist/app.module.js.map b/dist/app.module.js.map new file mode 100644 index 0000000..538a716 --- /dev/null +++ b/dist/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/app.module.ts"],"sourcesContent":["import { Module } from '@nestjs/common';\nimport { DevtoolsModule } from '@nestjs/devtools-integration';\nimport { EcommerceModule } from './application/ecommerce/ecommerce.module';\nimport { PersistenceModule } from './infra/persistence/persistence.module';\nimport { ServeStaticModule } from '@nestjs/serve-static';\nimport { join } from 'path';\n\n@Module({\n imports: [\n DevtoolsModule.register({\n http: process.env.NODE_ENV !== 'production',\n }),\n PersistenceModule.register({\n type: 'mongoose',\n global: true,\n }),\n ServeStaticModule.forRoot({\n rootPath: join(__dirname, '..', 'api'),\n\n }),\n EcommerceModule\n ],\n})\nexport class AppModule { }\n"],"names":["AppModule","Module","imports","DevtoolsModule","register","http","process","env","NODE_ENV","PersistenceModule","type","global","ServeStaticModule","forRoot","rootPath","join","__dirname","EcommerceModule"],"mappings":";;;;+BAuBaA;;;eAAAA;;;wBAvBU;qCACQ;iCACC;mCACE;6BACA;sBACb;;;;;;;AAkBd,IAAA,AAAMA,YAAN,MAAMA;AAAY;AAAZA;IAhBZC,IAAAA,cAAM,EAAC;QACNC,SAAS;YACPC,mCAAc,CAACC,QAAQ,CAAC;gBACtBC,MAAMC,QAAQC,GAAG,CAACC,QAAQ,KAAK;YACjC;YACAC,oCAAiB,CAACL,QAAQ,CAAC;gBACzBM,MAAM;gBACNC,QAAQ;YACV;YACAC,8BAAiB,CAACC,OAAO,CAAC;gBACxBC,UAAUC,IAAAA,UAAI,EAACC,WAAW,MAAM;YAElC;YACAC,gCAAe;SAChB;IACH;GACajB"} \ No newline at end of file diff --git a/dist/application/ecommerce/ecommerce.module.js b/dist/application/ecommerce/ecommerce.module.js new file mode 100644 index 0000000..3fa8544 --- /dev/null +++ b/dist/application/ecommerce/ecommerce.module.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "EcommerceModule", { + enumerable: true, + get: function() { + return EcommerceModule; + } +}); +const _httpmodule = require("../../infra/http/http.module"); +const _common = require("@nestjs/common"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let EcommerceModule = class EcommerceModule { +}; +EcommerceModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _httpmodule.HttpModule + ], + controllers: [], + providers: [] + }) +], EcommerceModule); + +//# sourceMappingURL=ecommerce.module.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ecommerce.module.js.map b/dist/application/ecommerce/ecommerce.module.js.map new file mode 100644 index 0000000..2113e22 --- /dev/null +++ b/dist/application/ecommerce/ecommerce.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/application/ecommerce/ecommerce.module.ts"],"sourcesContent":["import { HttpModule } from '@app/infra/http/http.module';\nimport { Module } from '@nestjs/common';\n\n@Module({\n imports: [HttpModule],\n controllers: [],\n providers: [],\n})\nexport class EcommerceModule { }\n"],"names":["EcommerceModule","Module","imports","HttpModule","controllers","providers"],"mappings":";;;;+BAQaA;;;eAAAA;;;4BARc;wBACJ;;;;;;;AAOhB,IAAA,AAAMA,kBAAN,MAAMA;AAAkB;AAAlBA;IALZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YAACC,sBAAU;SAAC;QACrBC,aAAa,EAAE;QACfC,WAAW,EAAE;IACjB;GACaL"} \ No newline at end of file diff --git a/dist/application/ecommerce/ports/order-product.repositoy.js b/dist/application/ecommerce/ports/order-product.repositoy.js new file mode 100644 index 0000000..82ee68e --- /dev/null +++ b/dist/application/ecommerce/ports/order-product.repositoy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "OrderProductRepository", { + enumerable: true, + get: function() { + return OrderProductRepository; + } +}); +let OrderProductRepository = class OrderProductRepository { +}; + +//# sourceMappingURL=order-product.repositoy.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ports/order-product.repositoy.js.map b/dist/application/ecommerce/ports/order-product.repositoy.js.map new file mode 100644 index 0000000..7a79b30 --- /dev/null +++ b/dist/application/ecommerce/ports/order-product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/ports/order-product.repositoy.ts"],"sourcesContent":["import { OrderProduct } from \"@app/domain/ecommerce/order-product\";\n\nexport abstract class OrderProductRepository {\n abstract create(data: OrderProduct): Promise;\n abstract createMany(data: OrderProduct[]): Promise;\n}\n"],"names":["OrderProductRepository"],"mappings":";;;;+BAEsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,yBAAf,MAAeA;AAGtB"} \ No newline at end of file diff --git a/dist/application/ecommerce/ports/order.repositoy.js b/dist/application/ecommerce/ports/order.repositoy.js new file mode 100644 index 0000000..6fa63f7 --- /dev/null +++ b/dist/application/ecommerce/ports/order.repositoy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "OrderRepository", { + enumerable: true, + get: function() { + return OrderRepository; + } +}); +let OrderRepository = class OrderRepository { +}; + +//# sourceMappingURL=order.repositoy.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ports/order.repositoy.js.map b/dist/application/ecommerce/ports/order.repositoy.js.map new file mode 100644 index 0000000..8477ecc --- /dev/null +++ b/dist/application/ecommerce/ports/order.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/ports/order.repositoy.ts"],"sourcesContent":["import { Order } from \"@app/domain/ecommerce/order\";\n\nexport abstract class OrderRepository {\n abstract findMany(): Promise;\n abstract findById(id: string): Promise;\n abstract create(data: Order): Promise;\n abstract update(id: string, data: Order): Promise;\n}\n"],"names":["OrderRepository"],"mappings":";;;;+BAEsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,kBAAf,MAAeA;AAKtB"} \ No newline at end of file diff --git a/dist/application/ecommerce/ports/payment.repositoy.js b/dist/application/ecommerce/ports/payment.repositoy.js new file mode 100644 index 0000000..ec68695 --- /dev/null +++ b/dist/application/ecommerce/ports/payment.repositoy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PaymentRepository", { + enumerable: true, + get: function() { + return PaymentRepository; + } +}); +let PaymentRepository = class PaymentRepository { +}; + +//# sourceMappingURL=payment.repositoy.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ports/payment.repositoy.js.map b/dist/application/ecommerce/ports/payment.repositoy.js.map new file mode 100644 index 0000000..ad17925 --- /dev/null +++ b/dist/application/ecommerce/ports/payment.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/ports/payment.repositoy.ts"],"sourcesContent":["import { Order } from \"@app/domain/ecommerce/order\";\n\nexport abstract class PaymentRepository {\n abstract generateUrl(orderId: string): Promise;\n abstract complete(paymentInput: any): Promise;\n}\n"],"names":["PaymentRepository"],"mappings":";;;;+BAEsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,oBAAf,MAAeA;AAGtB"} \ No newline at end of file diff --git a/dist/application/ecommerce/ports/product.repositoy.js b/dist/application/ecommerce/ports/product.repositoy.js new file mode 100644 index 0000000..061aedc --- /dev/null +++ b/dist/application/ecommerce/ports/product.repositoy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ProductRepository", { + enumerable: true, + get: function() { + return ProductRepository; + } +}); +let ProductRepository = class ProductRepository { +}; + +//# sourceMappingURL=product.repositoy.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ports/product.repositoy.js.map b/dist/application/ecommerce/ports/product.repositoy.js.map new file mode 100644 index 0000000..66448de --- /dev/null +++ b/dist/application/ecommerce/ports/product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/ports/product.repositoy.ts"],"sourcesContent":["import { Product } from \"@app/domain/ecommerce/product\";\n\nexport abstract class ProductRepository {\n abstract findMany(): Promise;\n abstract create(data: Product): Promise;\n}\n"],"names":["ProductRepository"],"mappings":";;;;+BAEsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,oBAAf,MAAeA;AAGtB"} \ No newline at end of file diff --git a/dist/application/ecommerce/ports/user.repositoy.js b/dist/application/ecommerce/ports/user.repositoy.js new file mode 100644 index 0000000..4a15121 --- /dev/null +++ b/dist/application/ecommerce/ports/user.repositoy.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "UserRepository", { + enumerable: true, + get: function() { + return UserRepository; + } +}); +let UserRepository = class UserRepository { +}; + +//# sourceMappingURL=user.repositoy.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/ports/user.repositoy.js.map b/dist/application/ecommerce/ports/user.repositoy.js.map new file mode 100644 index 0000000..dedde4d --- /dev/null +++ b/dist/application/ecommerce/ports/user.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/ports/user.repositoy.ts"],"sourcesContent":["import { User } from \"@app/domain/ecommerce/User\";\n\nexport abstract class UserRepository {\n abstract findMany(): Promise;\n abstract create(data: User): Promise;\n abstract appendOrder(userId: string, orderId: string): Promise;\n}\n"],"names":["UserRepository"],"mappings":";;;;+BAEsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,iBAAf,MAAeA;AAItB"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/checkout-complete.js b/dist/application/ecommerce/use-case/checkout-complete.js new file mode 100644 index 0000000..d68d7fe --- /dev/null +++ b/dist/application/ecommerce/use-case/checkout-complete.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CheckoutCompleteUseCase", { + enumerable: true, + get: function() { + return CheckoutCompleteUseCase; + } +}); +const _common = require("@nestjs/common"); +const _paymentrepositoy = require("../ports/payment.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CheckoutCompleteUseCase = class CheckoutCompleteUseCase { + /* + * This method is not abstracted, but it is a good example of how to handle webhooks in a controller. + */ async execute({ headers, req }) { + const signature = headers['stripe-signature']; + if (!signature) { + throw new Error('Invalid signature'); + } + const order = await this.paymentRepository.complete({ + signature, + req: req.rawBody + }); + return order; + } + constructor(paymentRepository){ + this.paymentRepository = paymentRepository; + } +}; +CheckoutCompleteUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _paymentrepositoy.PaymentRepository === "undefined" ? Object : _paymentrepositoy.PaymentRepository + ]) +], CheckoutCompleteUseCase); + +//# sourceMappingURL=checkout-complete.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/checkout-complete.js.map b/dist/application/ecommerce/use-case/checkout-complete.js.map new file mode 100644 index 0000000..d614237 --- /dev/null +++ b/dist/application/ecommerce/use-case/checkout-complete.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/checkout-complete.ts"],"sourcesContent":["import { Injectable, RawBodyRequest } from '@nestjs/common';\nimport { Request } from 'express';\nimport { PaymentRepository } from '../ports/payment.repositoy';\nimport { Order } from '@app/domain/ecommerce/order';\n\ntype CheckoutCompleteUseCaseCommand = {\n headers: Request['headers'],\n req: RawBodyRequest\n}\n\n@Injectable()\nexport class CheckoutCompleteUseCase {\n constructor(\n private paymentRepository: PaymentRepository,\n ) { }\n\n /*\n * This method is not abstracted, but it is a good example of how to handle webhooks in a controller.\n */\n async execute({ headers, req }: CheckoutCompleteUseCaseCommand): Promise {\n const signature = headers['stripe-signature'];\n\n if (!signature) {\n throw new Error('Invalid signature');\n }\n\n const order = await this.paymentRepository.complete({\n signature,\n req: req.rawBody,\n });\n\n return order;\n }\n}\n"],"names":["CheckoutCompleteUseCase","execute","headers","req","signature","Error","order","paymentRepository","complete","rawBody","constructor","Injectable"],"mappings":";;;;+BAWaA;;;eAAAA;;;wBAX8B;kCAET;;;;;;;;;;AAS3B,IAAA,AAAMA,0BAAN,MAAMA;IAKX;;IAEE,GACF,MAAMC,QAAQ,EAAEC,OAAO,EAAEC,GAAG,EAAkC,EAAkB;QAC9E,MAAMC,YAAYF,OAAO,CAAC,mBAAmB;QAE7C,IAAI,CAACE,WAAW;YACd,MAAM,IAAIC,MAAM;QAClB;QAEA,MAAMC,QAAQ,MAAM,IAAI,CAACC,iBAAiB,CAACC,QAAQ,CAAC;YAClDJ;YACAD,KAAKA,IAAIM,OAAO;QAClB;QAEA,OAAOH;IACT;IApBAI,YACE,AAAQH,iBAAoC,CAC5C;aADQA,oBAAAA;IACN;AAmBN;AAtBaP;IADZW,IAAAA,kBAAU;;;eAGoB,mCAAiB,4BAAjB,mCAAiB;;GAFnCX"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/checkout-url.js b/dist/application/ecommerce/use-case/checkout-url.js new file mode 100644 index 0000000..2f2f0e1 --- /dev/null +++ b/dist/application/ecommerce/use-case/checkout-url.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CheckoutUrlUseCase", { + enumerable: true, + get: function() { + return CheckoutUrlUseCase; + } +}); +const _common = require("@nestjs/common"); +const _paymentrepositoy = require("../ports/payment.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CheckoutUrlUseCase = class CheckoutUrlUseCase { + async execute(orderId) { + const URL = await this.paymentRepository.generateUrl(orderId); + return URL; + } + constructor(paymentRepository){ + this.paymentRepository = paymentRepository; + } +}; +CheckoutUrlUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _paymentrepositoy.PaymentRepository === "undefined" ? Object : _paymentrepositoy.PaymentRepository + ]) +], CheckoutUrlUseCase); + +//# sourceMappingURL=checkout-url.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/checkout-url.js.map b/dist/application/ecommerce/use-case/checkout-url.js.map new file mode 100644 index 0000000..00bd96b --- /dev/null +++ b/dist/application/ecommerce/use-case/checkout-url.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/checkout-url.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { PaymentRepository } from '../ports/payment.repositoy';\n\n@Injectable()\nexport class CheckoutUrlUseCase {\n constructor(\n private paymentRepository: PaymentRepository\n ) { }\n\n async execute(orderId: string): Promise {\n const URL = await this.paymentRepository.generateUrl(orderId);\n\n return URL;\n }\n}\n"],"names":["CheckoutUrlUseCase","execute","orderId","URL","paymentRepository","generateUrl","constructor","Injectable"],"mappings":";;;;+BAIaA;;;eAAAA;;;wBAJc;kCACO;;;;;;;;;;AAG3B,IAAA,AAAMA,qBAAN,MAAMA;IAKX,MAAMC,QAAQC,OAAe,EAAmB;QAC9C,MAAMC,MAAM,MAAM,IAAI,CAACC,iBAAiB,CAACC,WAAW,CAACH;QAErD,OAAOC;IACT;IARAG,YACE,AAAQF,iBAAoC,CAC5C;aADQA,oBAAAA;IACN;AAON;AAVaJ;IADZO,IAAAA,kBAAU;;;eAGoB,mCAAiB,4BAAjB,mCAAiB;;GAFnCP"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-order.js b/dist/application/ecommerce/use-case/create-order.js new file mode 100644 index 0000000..7eadece --- /dev/null +++ b/dist/application/ecommerce/use-case/create-order.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateOrderUseCase", { + enumerable: true, + get: function() { + return CreateOrderUseCase; + } +}); +const _order = require("../../../domain/ecommerce/order"); +const _common = require("@nestjs/common"); +const _orderrepositoy = require("../ports/order.repositoy"); +const _orderproduct = require("../../../domain/ecommerce/order-product"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateOrderUseCase = class CreateOrderUseCase { + async execute({ user, orderProduct }) { + let total = 0; + const order = new _order.Order({ + user + }); + const createdOrderProduct = orderProduct.map((product)=>{ + total += product.price; + return new _orderproduct.OrderProduct({ + product: product.product, + price: product.price + }); + }); + order.total = total; + order.orderProduct = createdOrderProduct; + const createdOrder = await this.orderRepository.create(order); + const response = await this.orderRepository.findById(createdOrder.id); + return response; + } + constructor(orderRepository){ + this.orderRepository = orderRepository; + } +}; +CreateOrderUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _orderrepositoy.OrderRepository === "undefined" ? Object : _orderrepositoy.OrderRepository + ]) +], CreateOrderUseCase); + +//# sourceMappingURL=create-order.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-order.js.map b/dist/application/ecommerce/use-case/create-order.js.map new file mode 100644 index 0000000..5f6670e --- /dev/null +++ b/dist/application/ecommerce/use-case/create-order.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/create-order.ts"],"sourcesContent":["import { Order } from '@app/domain/ecommerce/order';\nimport { Injectable } from '@nestjs/common';\nimport { OrderRepository } from '../ports/order.repositoy';\nimport { OrderProduct } from '@app/domain/ecommerce/order-product';\n\ninterface CreateOrderUseCaseCommand {\n user: string,\n orderProduct: Pick[]\n}\n\n@Injectable()\nexport class CreateOrderUseCase {\n constructor(\n private orderRepository: OrderRepository,\n ) { }\n\n async execute({\n user,\n orderProduct\n }: CreateOrderUseCaseCommand): Promise {\n let total = 0;\n const order = new Order({\n user,\n })\n\n const createdOrderProduct = orderProduct.map((product) => {\n total += product.price;\n\n return new OrderProduct({\n product: product.product,\n price: product.price,\n });\n });\n\n order.total = total;\n order.orderProduct = createdOrderProduct;\n\n const createdOrder = await this.orderRepository.create(order)\n const response = await this.orderRepository.findById(createdOrder.id);\n\n return response;\n }\n}\n"],"names":["CreateOrderUseCase","execute","user","orderProduct","total","order","Order","createdOrderProduct","map","product","price","OrderProduct","createdOrder","orderRepository","create","response","findById","id","constructor","Injectable"],"mappings":";;;;+BAWaA;;;eAAAA;;;uBAXS;wBACK;gCACK;8BACH;;;;;;;;;;AAQtB,IAAA,AAAMA,qBAAN,MAAMA;IAKX,MAAMC,QAAQ,EACZC,IAAI,EACJC,YAAY,EACc,EAAkB;QAC5C,IAAIC,QAAQ;QACZ,MAAMC,QAAQ,IAAIC,YAAK,CAAC;YACtBJ;QACF;QAEA,MAAMK,sBAAsBJ,aAAaK,GAAG,CAAC,CAACC;YAC5CL,SAASK,QAAQC,KAAK;YAEtB,OAAO,IAAIC,0BAAY,CAAC;gBACtBF,SAASA,QAAQA,OAAO;gBACxBC,OAAOD,QAAQC,KAAK;YACtB;QACF;QAEAL,MAAMD,KAAK,GAAGA;QACdC,MAAMF,YAAY,GAAGI;QAErB,MAAMK,eAAe,MAAM,IAAI,CAACC,eAAe,CAACC,MAAM,CAACT;QACvD,MAAMU,WAAW,MAAM,IAAI,CAACF,eAAe,CAACG,QAAQ,CAACJ,aAAaK,EAAE;QAEpE,OAAOF;IACT;IA7BAG,YACE,AAAQL,eAAgC,CACxC;aADQA,kBAAAA;IACN;AA4BN;AA/Bab;IADZmB,IAAAA,kBAAU;;;eAGkB,+BAAe,4BAAf,+BAAe;;GAF/BnB"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-product.js b/dist/application/ecommerce/use-case/create-product.js new file mode 100644 index 0000000..2270e49 --- /dev/null +++ b/dist/application/ecommerce/use-case/create-product.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateProductUseCase", { + enumerable: true, + get: function() { + return CreateProductUseCase; + } +}); +const _product = require("../../../domain/ecommerce/product"); +const _common = require("@nestjs/common"); +const _productrepositoy = require("../ports/product.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateProductUseCase = class CreateProductUseCase { + async execute({ title, price }) { + const product = new _product.Product({ + title, + price + }); + const response = await this.productRepository.create(product); + return response; + } + constructor(productRepository){ + this.productRepository = productRepository; + } +}; +CreateProductUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _productrepositoy.ProductRepository === "undefined" ? Object : _productrepositoy.ProductRepository + ]) +], CreateProductUseCase); + +//# sourceMappingURL=create-product.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-product.js.map b/dist/application/ecommerce/use-case/create-product.js.map new file mode 100644 index 0000000..aff4745 --- /dev/null +++ b/dist/application/ecommerce/use-case/create-product.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/create-product.ts"],"sourcesContent":["import { Product } from '@app/domain/ecommerce/product';\nimport { Injectable } from '@nestjs/common';\nimport { ProductRepository } from '../ports/product.repositoy';\n\ninterface CreateProductUseCaseCommand {\n title: string,\n price: number\n}\n\n@Injectable()\nexport class CreateProductUseCase {\n constructor(private productRepository: ProductRepository) { }\n\n async execute({\n title,\n price\n }: CreateProductUseCaseCommand): Promise {\n\n const product = new Product({\n title,\n price\n })\n\n const response = await this.productRepository.create(product)\n\n return response;\n }\n}\n"],"names":["CreateProductUseCase","execute","title","price","product","Product","response","productRepository","create","constructor","Injectable"],"mappings":";;;;+BAUaA;;;eAAAA;;;yBAVW;wBACG;kCACO;;;;;;;;;;AAQ3B,IAAA,AAAMA,uBAAN,MAAMA;IAGX,MAAMC,QAAQ,EACZC,KAAK,EACLC,KAAK,EACuB,EAAgB;QAE5C,MAAMC,UAAU,IAAIC,gBAAO,CAAC;YAC1BH;YACAC;QACF;QAEA,MAAMG,WAAW,MAAM,IAAI,CAACC,iBAAiB,CAACC,MAAM,CAACJ;QAErD,OAAOE;IACT;IAfAG,YAAY,AAAQF,iBAAoC,CAAE;aAAtCA,oBAAAA;IAAwC;AAgB9D;AAjBaP;IADZU,IAAAA,kBAAU;;;eAE8B,mCAAiB,4BAAjB,mCAAiB;;GAD7CV"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-user.js b/dist/application/ecommerce/use-case/create-user.js new file mode 100644 index 0000000..a295c3f --- /dev/null +++ b/dist/application/ecommerce/use-case/create-user.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateUserUseCase", { + enumerable: true, + get: function() { + return CreateUserUseCase; + } +}); +const _user = require("../../../domain/ecommerce/user"); +const _common = require("@nestjs/common"); +const _userrepositoy = require("../ports/user.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateUserUseCase = class CreateUserUseCase { + async execute({ name }) { + const user = new _user.User({ + name + }); + const response = await this.userRepository.create(user); + return response; + } + constructor(userRepository){ + this.userRepository = userRepository; + } +}; +CreateUserUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _userrepositoy.UserRepository === "undefined" ? Object : _userrepositoy.UserRepository + ]) +], CreateUserUseCase); + +//# sourceMappingURL=create-user.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/create-user.js.map b/dist/application/ecommerce/use-case/create-user.js.map new file mode 100644 index 0000000..816944c --- /dev/null +++ b/dist/application/ecommerce/use-case/create-user.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/create-user.ts"],"sourcesContent":["import { User } from '@app/domain/ecommerce/user';\nimport { Injectable } from '@nestjs/common';\nimport { UserRepository } from '../ports/user.repositoy';\n\ninterface CreateUserUseCaseCommand {\n name: string,\n}\n\n@Injectable()\nexport class CreateUserUseCase {\n constructor(private userRepository: UserRepository) { }\n\n async execute({\n name\n }: CreateUserUseCaseCommand): Promise {\n\n const user = new User({\n name\n })\n\n const response = await this.userRepository.create(user)\n\n return response;\n }\n}\n"],"names":["CreateUserUseCase","execute","name","user","User","response","userRepository","create","constructor","Injectable"],"mappings":";;;;+BASaA;;;eAAAA;;;sBATQ;wBACM;+BACI;;;;;;;;;;AAOxB,IAAA,AAAMA,oBAAN,MAAMA;IAGX,MAAMC,QAAQ,EACZC,IAAI,EACqB,EAAgB;QAEzC,MAAMC,OAAO,IAAIC,UAAI,CAAC;YACpBF;QACF;QAEA,MAAMG,WAAW,MAAM,IAAI,CAACC,cAAc,CAACC,MAAM,CAACJ;QAElD,OAAOE;IACT;IAbAG,YAAY,AAAQF,cAA8B,CAAE;aAAhCA,iBAAAA;IAAkC;AAcxD;AAfaN;IADZS,IAAAA,kBAAU;;;eAE2B,6BAAc,4BAAd,6BAAc;;GADvCT"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-order.js b/dist/application/ecommerce/use-case/get-order.js new file mode 100644 index 0000000..b07be21 --- /dev/null +++ b/dist/application/ecommerce/use-case/get-order.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "GetOrderUseCase", { + enumerable: true, + get: function() { + return GetOrderUseCase; + } +}); +const _common = require("@nestjs/common"); +const _orderrepositoy = require("../ports/order.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let GetOrderUseCase = class GetOrderUseCase { + async execute(id) { + const response = await this.orderRepository.findById(id); + return response; + } + constructor(orderRepository){ + this.orderRepository = orderRepository; + } +}; +GetOrderUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _orderrepositoy.OrderRepository === "undefined" ? Object : _orderrepositoy.OrderRepository + ]) +], GetOrderUseCase); + +//# sourceMappingURL=get-order.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-order.js.map b/dist/application/ecommerce/use-case/get-order.js.map new file mode 100644 index 0000000..aa05e38 --- /dev/null +++ b/dist/application/ecommerce/use-case/get-order.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/get-order.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { OrderRepository } from '../ports/order.repositoy';\n\n@Injectable()\nexport class GetOrderUseCase {\n constructor(private orderRepository: OrderRepository) { }\n\n async execute(id: string): Promise {\n const response = await this.orderRepository.findById(id)\n\n return response;\n }\n}\n"],"names":["GetOrderUseCase","execute","id","response","orderRepository","findById","constructor","Injectable"],"mappings":";;;;+BAIaA;;;eAAAA;;;wBAJc;gCACK;;;;;;;;;;AAGzB,IAAA,AAAMA,kBAAN,MAAMA;IAGX,MAAMC,QAAQC,EAAU,EAAgB;QACtC,MAAMC,WAAW,MAAM,IAAI,CAACC,eAAe,CAACC,QAAQ,CAACH;QAErD,OAAOC;IACT;IANAG,YAAY,AAAQF,eAAgC,CAAE;aAAlCA,kBAAAA;IAAoC;AAO1D;AARaJ;IADZO,IAAAA,kBAAU;;;eAE4B,+BAAe,4BAAf,+BAAe;;GADzCP"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-orders.js b/dist/application/ecommerce/use-case/get-orders.js new file mode 100644 index 0000000..0c324ec --- /dev/null +++ b/dist/application/ecommerce/use-case/get-orders.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "GetOrdersUseCase", { + enumerable: true, + get: function() { + return GetOrdersUseCase; + } +}); +const _common = require("@nestjs/common"); +const _orderrepositoy = require("../ports/order.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let GetOrdersUseCase = class GetOrdersUseCase { + async execute({}) { + const response = await this.orderRepository.findMany(); + return response; + } + constructor(orderRepository){ + this.orderRepository = orderRepository; + } +}; +GetOrdersUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _orderrepositoy.OrderRepository === "undefined" ? Object : _orderrepositoy.OrderRepository + ]) +], GetOrdersUseCase); + +//# sourceMappingURL=get-orders.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-orders.js.map b/dist/application/ecommerce/use-case/get-orders.js.map new file mode 100644 index 0000000..3f7b16d --- /dev/null +++ b/dist/application/ecommerce/use-case/get-orders.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/get-orders.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { OrderRepository } from '../ports/order.repositoy';\n\ninterface GetOrderUseCaseCommand { }\n\n@Injectable()\nexport class GetOrdersUseCase {\n constructor(private orderRepository: OrderRepository) { }\n\n async execute({ }: GetOrderUseCaseCommand): Promise {\n const response = await this.orderRepository.findMany()\n\n return response;\n }\n}\n"],"names":["GetOrdersUseCase","execute","response","orderRepository","findMany","constructor","Injectable"],"mappings":";;;;+BAMaA;;;eAAAA;;;wBANc;gCACK;;;;;;;;;;AAKzB,IAAA,AAAMA,mBAAN,MAAMA;IAGX,MAAMC,QAAQ,EAA2B,EAAgB;QACvD,MAAMC,WAAW,MAAM,IAAI,CAACC,eAAe,CAACC,QAAQ;QAEpD,OAAOF;IACT;IANAG,YAAY,AAAQF,eAAgC,CAAE;aAAlCA,kBAAAA;IAAoC;AAO1D;AARaH;IADZM,IAAAA,kBAAU;;;eAE4B,+BAAe,4BAAf,+BAAe;;GADzCN"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-product.js b/dist/application/ecommerce/use-case/get-product.js new file mode 100644 index 0000000..8188738 --- /dev/null +++ b/dist/application/ecommerce/use-case/get-product.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "GetProductUseCase", { + enumerable: true, + get: function() { + return GetProductUseCase; + } +}); +const _common = require("@nestjs/common"); +const _productrepositoy = require("../ports/product.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let GetProductUseCase = class GetProductUseCase { + async execute({}) { + const response = await this.productRepository.findMany(); + return response; + } + constructor(productRepository){ + this.productRepository = productRepository; + } +}; +GetProductUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _productrepositoy.ProductRepository === "undefined" ? Object : _productrepositoy.ProductRepository + ]) +], GetProductUseCase); + +//# sourceMappingURL=get-product.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-product.js.map b/dist/application/ecommerce/use-case/get-product.js.map new file mode 100644 index 0000000..a66db28 --- /dev/null +++ b/dist/application/ecommerce/use-case/get-product.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/get-product.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { ProductRepository } from '../ports/product.repositoy';\n\ninterface GetProductUseCaseCommand { }\n\n@Injectable()\nexport class GetProductUseCase {\n constructor(private productRepository: ProductRepository) { }\n\n async execute({ }: GetProductUseCaseCommand): Promise {\n const response = await this.productRepository.findMany()\n\n return response;\n }\n}\n"],"names":["GetProductUseCase","execute","response","productRepository","findMany","constructor","Injectable"],"mappings":";;;;+BAMaA;;;eAAAA;;;wBANc;kCACO;;;;;;;;;;AAK3B,IAAA,AAAMA,oBAAN,MAAMA;IAGX,MAAMC,QAAQ,EAA6B,EAAgB;QACzD,MAAMC,WAAW,MAAM,IAAI,CAACC,iBAAiB,CAACC,QAAQ;QAEtD,OAAOF;IACT;IANAG,YAAY,AAAQF,iBAAoC,CAAE;aAAtCA,oBAAAA;IAAwC;AAO9D;AARaH;IADZM,IAAAA,kBAAU;;;eAE8B,mCAAiB,4BAAjB,mCAAiB;;GAD7CN"} \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-user.js b/dist/application/ecommerce/use-case/get-user.js new file mode 100644 index 0000000..44a37bc --- /dev/null +++ b/dist/application/ecommerce/use-case/get-user.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "GetUserUseCase", { + enumerable: true, + get: function() { + return GetUserUseCase; + } +}); +const _common = require("@nestjs/common"); +const _userrepositoy = require("../ports/user.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let GetUserUseCase = class GetUserUseCase { + async execute({}) { + const response = await this.userRepository.findMany(); + return response; + } + constructor(userRepository){ + this.userRepository = userRepository; + } +}; +GetUserUseCase = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _userrepositoy.UserRepository === "undefined" ? Object : _userrepositoy.UserRepository + ]) +], GetUserUseCase); + +//# sourceMappingURL=get-user.js.map \ No newline at end of file diff --git a/dist/application/ecommerce/use-case/get-user.js.map b/dist/application/ecommerce/use-case/get-user.js.map new file mode 100644 index 0000000..b178b13 --- /dev/null +++ b/dist/application/ecommerce/use-case/get-user.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/application/ecommerce/use-case/get-user.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { UserRepository } from '../ports/user.repositoy';\n\ninterface GetUserUseCaseCommand { }\n\n@Injectable()\nexport class GetUserUseCase {\n constructor(private userRepository: UserRepository) { }\n\n async execute({ }: GetUserUseCaseCommand): Promise {\n const response = await this.userRepository.findMany()\n\n return response;\n }\n}\n"],"names":["GetUserUseCase","execute","response","userRepository","findMany","constructor","Injectable"],"mappings":";;;;+BAMaA;;;eAAAA;;;wBANc;+BACI;;;;;;;;;;AAKxB,IAAA,AAAMA,iBAAN,MAAMA;IAGX,MAAMC,QAAQ,EAA0B,EAAgB;QACtD,MAAMC,WAAW,MAAM,IAAI,CAACC,cAAc,CAACC,QAAQ;QAEnD,OAAOF;IACT;IANAG,YAAY,AAAQF,cAA8B,CAAE;aAAhCA,iBAAAA;IAAkC;AAOxD;AARaH;IADZM,IAAAA,kBAAU;;;eAE2B,6BAAc,4BAAd,6BAAc;;GADvCN"} \ No newline at end of file diff --git a/dist/core/entities/entity.js b/dist/core/entities/entity.js new file mode 100644 index 0000000..9f9da0f --- /dev/null +++ b/dist/core/entities/entity.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Entity", { + enumerable: true, + get: function() { + return Entity; + } +}); +let Entity = class Entity { + constructor(props){ + this.props = props; + } +}; + +//# sourceMappingURL=entity.js.map \ No newline at end of file diff --git a/dist/core/entities/entity.js.map b/dist/core/entities/entity.js.map new file mode 100644 index 0000000..da7611b --- /dev/null +++ b/dist/core/entities/entity.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/core/entities/entity.ts"],"sourcesContent":["\nexport abstract class Entity {\n protected props: Props\n\n protected constructor(props: Props) {\n this.props = props\n }\n}\n"],"names":["Entity","props"],"mappings":";;;;+BACsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,SAAf,MAAeA;IAGpB,YAAsBC,KAAY,CAAE;QAClC,IAAI,CAACA,KAAK,GAAGA;IACf;AACF"} \ No newline at end of file diff --git a/dist/core/entities/unique-entity-id.js b/dist/core/entities/unique-entity-id.js new file mode 100644 index 0000000..85ce567 --- /dev/null +++ b/dist/core/entities/unique-entity-id.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "UniqueEntityID", { + enumerable: true, + get: function() { + return UniqueEntityID; + } +}); +const _nodecrypto = require("node:crypto"); +let UniqueEntityID = class UniqueEntityID { + toString() { + return this.value; + } + toValue() { + return this.value; + } + equals(id) { + return id.toValue() === this.value; + } + constructor(value){ + this.value = value ?? (0, _nodecrypto.randomUUID)(); + } +}; + +//# sourceMappingURL=unique-entity-id.js.map \ No newline at end of file diff --git a/dist/core/entities/unique-entity-id.js.map b/dist/core/entities/unique-entity-id.js.map new file mode 100644 index 0000000..9d25aab --- /dev/null +++ b/dist/core/entities/unique-entity-id.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/core/entities/unique-entity-id.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto'\n\nexport class UniqueEntityID {\n private value: string\n\n toString() {\n return this.value\n }\n\n toValue() {\n return this.value\n }\n\n constructor(value?: string) {\n this.value = value ?? randomUUID()\n }\n\n public equals(id: UniqueEntityID) {\n return id.toValue() === this.value\n }\n}\n"],"names":["UniqueEntityID","toString","value","toValue","equals","id","constructor","randomUUID"],"mappings":";;;;+BAEaA;;;eAAAA;;;4BAFc;AAEpB,IAAA,AAAMA,iBAAN,MAAMA;IAGXC,WAAW;QACT,OAAO,IAAI,CAACC,KAAK;IACnB;IAEAC,UAAU;QACR,OAAO,IAAI,CAACD,KAAK;IACnB;IAMOE,OAAOC,EAAkB,EAAE;QAChC,OAAOA,GAAGF,OAAO,OAAO,IAAI,CAACD,KAAK;IACpC;IANAI,YAAYJ,KAAc,CAAE;QAC1B,IAAI,CAACA,KAAK,GAAGA,SAASK,IAAAA,sBAAU;IAClC;AAKF"} \ No newline at end of file diff --git a/dist/core/entities/value-object.js b/dist/core/entities/value-object.js new file mode 100644 index 0000000..548ee7e --- /dev/null +++ b/dist/core/entities/value-object.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ValueObject", { + enumerable: true, + get: function() { + return ValueObject; + } +}); +let ValueObject = class ValueObject { + constructor(props){ + this.props = props; + } +}; + +//# sourceMappingURL=value-object.js.map \ No newline at end of file diff --git a/dist/core/entities/value-object.js.map b/dist/core/entities/value-object.js.map new file mode 100644 index 0000000..d910acc --- /dev/null +++ b/dist/core/entities/value-object.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/core/entities/value-object.ts"],"sourcesContent":["export abstract class ValueObject {\n protected props: Props\n\n protected constructor(props: Props) {\n this.props = props\n }\n}\n"],"names":["ValueObject","props"],"mappings":";;;;+BAAsBA;;;eAAAA;;;AAAf,IAAA,AAAeA,cAAf,MAAeA;IAGpB,YAAsBC,KAAY,CAAE;QAClC,IAAI,CAACA,KAAK,GAAGA;IACf;AACF"} \ No newline at end of file diff --git a/dist/domain/ecommerce/order-product.js b/dist/domain/ecommerce/order-product.js new file mode 100644 index 0000000..54e6b22 --- /dev/null +++ b/dist/domain/ecommerce/order-product.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "OrderProduct", { + enumerable: true, + get: function() { + return OrderProduct; + } +}); +const _entity = require("../../core/entities/entity"); +let OrderProduct = class OrderProduct extends _entity.Entity { + get id() { + return this.props.id; + } + get product() { + return this.props.product; + } + get orderId() { + return this.props.orderId; + } + get price() { + return this.props.price; + } + get currentState() { + return this.props; + } + constructor(props){ + super(props); + } +}; + +//# sourceMappingURL=order-product.js.map \ No newline at end of file diff --git a/dist/domain/ecommerce/order-product.js.map b/dist/domain/ecommerce/order-product.js.map new file mode 100644 index 0000000..a2a5190 --- /dev/null +++ b/dist/domain/ecommerce/order-product.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/domain/ecommerce/order-product.ts"],"sourcesContent":["import { Entity } from \"@app/core/entities/entity\";\n\nexport interface OrderProductProps {\n id?: string\n orderId?: string\n product: string\n price: number\n}\n\nexport class OrderProduct extends Entity {\n constructor(props: OrderProductProps) {\n super(props);\n }\n\n get id(): string {\n return this.props.id;\n }\n\n get product(): string {\n return this.props.product;\n }\n\n get orderId(): string {\n return this.props.orderId;\n }\n\n get price(): number {\n return this.props.price;\n }\n\n get currentState(): OrderProductProps {\n return this.props;\n }\n}\n"],"names":["OrderProduct","Entity","id","props","product","orderId","price","currentState","constructor"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATU;AAShB,IAAA,AAAMA,eAAN,MAAMA,qBAAqBC,cAAM;IAKpC,IAAIC,KAAa;QACb,OAAO,IAAI,CAACC,KAAK,CAACD,EAAE;IACxB;IAEA,IAAIE,UAAkB;QAClB,OAAO,IAAI,CAACD,KAAK,CAACC,OAAO;IAC7B;IAEA,IAAIC,UAAkB;QAClB,OAAO,IAAI,CAACF,KAAK,CAACE,OAAO;IAC7B;IAEA,IAAIC,QAAgB;QAChB,OAAO,IAAI,CAACH,KAAK,CAACG,KAAK;IAC3B;IAEA,IAAIC,eAAkC;QAClC,OAAO,IAAI,CAACJ,KAAK;IACrB;IAtBAK,YAAYL,KAAwB,CAAE;QAClC,KAAK,CAACA;IACV;AAqBJ"} \ No newline at end of file diff --git a/dist/domain/ecommerce/order.js b/dist/domain/ecommerce/order.js new file mode 100644 index 0000000..c6989ba --- /dev/null +++ b/dist/domain/ecommerce/order.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Order", { + enumerable: true, + get: function() { + return Order; + } +}); +const _entity = require("../../core/entities/entity"); +let Order = class Order extends _entity.Entity { + get id() { + return this.props.id; + } + get user() { + return this.props.user; + } + get total() { + return this.props.total; + } + get orderProduct() { + return this.props.orderProduct; + } + get status() { + return this.props.status; + } + get paymentId() { + return this.props.paymentId; + } + get paymentMethod() { + return this.props.paymentMethod; + } + get currentState() { + return this.props; + } + set status(status) { + this.props.status = status; + } + set paymentId(paymentId) { + this.props.paymentId = paymentId; + } + set paymentMethod(paymentMethod) { + this.props.paymentMethod = paymentMethod; + } + set orderProduct(orderProduct) { + this.props.orderProduct = orderProduct; + } + set total(total) { + this.props.total = total; + } + constructor(props){ + props.total = props.total ?? 0; + props.status = props.status ?? "open"; + super(props); + } +}; + +//# sourceMappingURL=order.js.map \ No newline at end of file diff --git a/dist/domain/ecommerce/order.js.map b/dist/domain/ecommerce/order.js.map new file mode 100644 index 0000000..4df92a8 --- /dev/null +++ b/dist/domain/ecommerce/order.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/domain/ecommerce/order.ts"],"sourcesContent":["import { Entity } from \"@app/core/entities/entity\";\nimport { OrderProduct } from \"./order-product\";\n\nexport interface OrderProps {\n id?: string;\n user: string\n total?: number\n status?: \"paid\" | \"open\" | \"canceled\"\n paymentId?: string,\n paymentMethod?: \"stripe\" | \"paddle\" | \"paypal\" | \"other\", // It is only working with stripe for now\n orderProduct?: OrderProduct[]\n}\n\nexport class Order extends Entity {\n constructor(props: OrderProps) {\n props.total = props.total ?? 0;\n props.status = props.status ?? \"open\";\n\n super(props);\n }\n\n get id(): string {\n return this.props.id;\n }\n\n get user(): string {\n return this.props.user;\n }\n\n get total(): number {\n return this.props.total;\n }\n\n get orderProduct(): OrderProduct[] {\n return this.props.orderProduct\n }\n\n get status(): \"paid\" | \"open\" | \"canceled\" {\n return this.props.status;\n }\n\n get paymentId(): string {\n return this.props.paymentId;\n }\n\n get paymentMethod(): \"stripe\" | \"paddle\" | \"paypal\" | \"other\" {\n return this.props.paymentMethod;\n }\n\n get currentState(): OrderProps {\n return this.props;\n }\n\n set status(status: \"paid\" | \"open\" | \"canceled\") {\n this.props.status = status;\n }\n\n set paymentId(paymentId: string) {\n this.props.paymentId = paymentId;\n }\n\n set paymentMethod(paymentMethod: \"stripe\" | \"paddle\" | \"paypal\" | \"other\") {\n this.props.paymentMethod = paymentMethod\n }\n\n set orderProduct(orderProduct: OrderProduct[]) {\n this.props.orderProduct = orderProduct\n }\n\n set total(total: number) {\n this.props.total = total\n }\n}\n"],"names":["Order","Entity","id","props","user","total","orderProduct","status","paymentId","paymentMethod","currentState","constructor"],"mappings":";;;;+BAaaA;;;eAAAA;;;wBAbU;AAahB,IAAA,AAAMA,QAAN,MAAMA,cAAcC,cAAM;IAQ7B,IAAIC,KAAa;QACb,OAAO,IAAI,CAACC,KAAK,CAACD,EAAE;IACxB;IAEA,IAAIE,OAAe;QACf,OAAO,IAAI,CAACD,KAAK,CAACC,IAAI;IAC1B;IAEA,IAAIC,QAAgB;QAChB,OAAO,IAAI,CAACF,KAAK,CAACE,KAAK;IAC3B;IAEA,IAAIC,eAA+B;QAC/B,OAAO,IAAI,CAACH,KAAK,CAACG,YAAY;IAClC;IAEA,IAAIC,SAAuC;QACvC,OAAO,IAAI,CAACJ,KAAK,CAACI,MAAM;IAC5B;IAEA,IAAIC,YAAoB;QACpB,OAAO,IAAI,CAACL,KAAK,CAACK,SAAS;IAC/B;IAEA,IAAIC,gBAA0D;QAC1D,OAAO,IAAI,CAACN,KAAK,CAACM,aAAa;IACnC;IAEA,IAAIC,eAA2B;QAC3B,OAAO,IAAI,CAACP,KAAK;IACrB;IAEA,IAAII,OAAOA,MAAoC,EAAE;QAC7C,IAAI,CAACJ,KAAK,CAACI,MAAM,GAAGA;IACxB;IAEA,IAAIC,UAAUA,SAAiB,EAAE;QAC7B,IAAI,CAACL,KAAK,CAACK,SAAS,GAAGA;IAC3B;IAEA,IAAIC,cAAcA,aAAuD,EAAE;QACvE,IAAI,CAACN,KAAK,CAACM,aAAa,GAAGA;IAC/B;IAEA,IAAIH,aAAaA,YAA4B,EAAE;QAC3C,IAAI,CAACH,KAAK,CAACG,YAAY,GAAGA;IAC9B;IAEA,IAAID,MAAMA,KAAa,EAAE;QACrB,IAAI,CAACF,KAAK,CAACE,KAAK,GAAGA;IACvB;IAzDAM,YAAYR,KAAiB,CAAE;QAC3BA,MAAME,KAAK,GAAGF,MAAME,KAAK,IAAI;QAC7BF,MAAMI,MAAM,GAAGJ,MAAMI,MAAM,IAAI;QAE/B,KAAK,CAACJ;IACV;AAqDJ"} \ No newline at end of file diff --git a/dist/domain/ecommerce/product.js b/dist/domain/ecommerce/product.js new file mode 100644 index 0000000..ad9d03a --- /dev/null +++ b/dist/domain/ecommerce/product.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Product", { + enumerable: true, + get: function() { + return Product; + } +}); +const _entity = require("../../core/entities/entity"); +let Product = class Product extends _entity.Entity { + get id() { + return this.props.id; + } + get title() { + return this.props.title; + } + get price() { + return this.props.price; + } + constructor(props){ + super(props); + } +}; + +//# sourceMappingURL=product.js.map \ No newline at end of file diff --git a/dist/domain/ecommerce/product.js.map b/dist/domain/ecommerce/product.js.map new file mode 100644 index 0000000..a178f70 --- /dev/null +++ b/dist/domain/ecommerce/product.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/domain/ecommerce/product.ts"],"sourcesContent":["import { Entity } from \"@app/core/entities/entity\";\n\nexport interface ProductProps {\n id?: string\n title: string\n price: number\n}\n\nexport class Product extends Entity {\n constructor(props: ProductProps) {\n super(props);\n }\n\n get id(): string {\n return this.props.id;\n }\n\n get title(): string {\n return this.props.title;\n }\n\n get price(): number {\n return this.props.price;\n }\n}\n"],"names":["Product","Entity","id","props","title","price","constructor"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBARU;AAQhB,IAAA,AAAMA,UAAN,MAAMA,gBAAgBC,cAAM;IAK/B,IAAIC,KAAa;QACb,OAAO,IAAI,CAACC,KAAK,CAACD,EAAE;IACxB;IAEA,IAAIE,QAAgB;QAChB,OAAO,IAAI,CAACD,KAAK,CAACC,KAAK;IAC3B;IAEA,IAAIC,QAAgB;QAChB,OAAO,IAAI,CAACF,KAAK,CAACE,KAAK;IAC3B;IAdAC,YAAYH,KAAmB,CAAE;QAC7B,KAAK,CAACA;IACV;AAaJ"} \ No newline at end of file diff --git a/dist/domain/ecommerce/user.js b/dist/domain/ecommerce/user.js new file mode 100644 index 0000000..a07f866 --- /dev/null +++ b/dist/domain/ecommerce/user.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "User", { + enumerable: true, + get: function() { + return User; + } +}); +const _entity = require("../../core/entities/entity"); +let User = class User extends _entity.Entity { + get id() { + return this.props.id; + } + get name() { + return this.props.name; + } + get order() { + return this.order; + } + get currentState() { + return this.props; + } + constructor(props){ + super(props); + } +}; + +//# sourceMappingURL=user.js.map \ No newline at end of file diff --git a/dist/domain/ecommerce/user.js.map b/dist/domain/ecommerce/user.js.map new file mode 100644 index 0000000..a24140f --- /dev/null +++ b/dist/domain/ecommerce/user.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/domain/ecommerce/user.ts"],"sourcesContent":["import { Entity } from \"@app/core/entities/entity\";\nimport { Order } from \"./order\";\n\nexport interface UserProps {\n id?: string;\n name: string;\n orders?: Order[]\n}\n\nexport class User extends Entity {\n constructor(props: UserProps) {\n super(props);\n }\n\n get id(): string {\n return this.props.id;\n }\n\n get name(): string {\n return this.props.name;\n }\n\n get order(): string[] {\n return this.order;\n }\n\n get currentState(): UserProps {\n return this.props;\n }\n}\n"],"names":["User","Entity","id","props","name","order","currentState","constructor"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATU;AAShB,IAAA,AAAMA,OAAN,MAAMA,aAAaC,cAAM;IAK5B,IAAIC,KAAa;QACb,OAAO,IAAI,CAACC,KAAK,CAACD,EAAE;IACxB;IAEA,IAAIE,OAAe;QACf,OAAO,IAAI,CAACD,KAAK,CAACC,IAAI;IAC1B;IAEA,IAAIC,QAAkB;QAClB,OAAO,IAAI,CAACA,KAAK;IACrB;IAEA,IAAIC,eAA0B;QAC1B,OAAO,IAAI,CAACH,KAAK;IACrB;IAlBAI,YAAYJ,KAAgB,CAAE;QAC1B,KAAK,CAACA;IACV;AAiBJ"} \ No newline at end of file diff --git a/dist/infra/env/env.js b/dist/infra/env/env.js new file mode 100644 index 0000000..d5a1325 --- /dev/null +++ b/dist/infra/env/env.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "envSchema", { + enumerable: true, + get: function() { + return envSchema; + } +}); +const _zod = require("zod"); +const envSchema = _zod.z.object({ + DATABASE_URL: _zod.z.string().url(), + MONGODB_URL: _zod.z.string().url(), + PORT: _zod.z.coerce.number().optional().default(3000), + CACHE_TTL: _zod.z.coerce.number().optional().default(5), + CACHE_MAX: _zod.z.coerce.number().optional().default(10), + STRIPE_API_KEY: _zod.z.coerce.string(), + CHECKOUT_SUCCESS_URL: _zod.z.coerce.string(), + STRIPE_WEBHOOK_SECRET: _zod.z.coerce.string() +}); + +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/dist/infra/env/env.js.map b/dist/infra/env/env.js.map new file mode 100644 index 0000000..50a4805 --- /dev/null +++ b/dist/infra/env/env.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/env/env.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const envSchema = z.object({\n DATABASE_URL: z.string().url(),\n MONGODB_URL: z.string().url(),\n PORT: z.coerce.number().optional().default(3000),\n CACHE_TTL: z.coerce.number().optional().default(5),\n CACHE_MAX: z.coerce.number().optional().default(10),\n STRIPE_API_KEY: z.coerce.string(),\n CHECKOUT_SUCCESS_URL: z.coerce.string(),\n STRIPE_WEBHOOK_SECRET: z.coerce.string(),\n})\n\nexport type Env = z.infer\n"],"names":["envSchema","z","object","DATABASE_URL","string","url","MONGODB_URL","PORT","coerce","number","optional","default","CACHE_TTL","CACHE_MAX","STRIPE_API_KEY","CHECKOUT_SUCCESS_URL","STRIPE_WEBHOOK_SECRET"],"mappings":";;;;+BAEaA;;;eAAAA;;;qBAFK;AAEX,MAAMA,YAAYC,MAAC,CAACC,MAAM,CAAC;IAChCC,cAAcF,MAAC,CAACG,MAAM,GAAGC,GAAG;IAC5BC,aAAaL,MAAC,CAACG,MAAM,GAAGC,GAAG;IAC3BE,MAAMN,MAAC,CAACO,MAAM,CAACC,MAAM,GAAGC,QAAQ,GAAGC,OAAO,CAAC;IAC3CC,WAAWX,MAAC,CAACO,MAAM,CAACC,MAAM,GAAGC,QAAQ,GAAGC,OAAO,CAAC;IAChDE,WAAWZ,MAAC,CAACO,MAAM,CAACC,MAAM,GAAGC,QAAQ,GAAGC,OAAO,CAAC;IAChDG,gBAAgBb,MAAC,CAACO,MAAM,CAACJ,MAAM;IAC/BW,sBAAsBd,MAAC,CAACO,MAAM,CAACJ,MAAM;IACrCY,uBAAuBf,MAAC,CAACO,MAAM,CAACJ,MAAM;AACxC"} \ No newline at end of file diff --git a/dist/infra/env/env.module.js b/dist/infra/env/env.module.js new file mode 100644 index 0000000..4544fe5 --- /dev/null +++ b/dist/infra/env/env.module.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "EnvModule", { + enumerable: true, + get: function() { + return EnvModule; + } +}); +const _common = require("@nestjs/common"); +const _envservice = require("./env.service"); +const _env = require("./env"); +const _config = require("@nestjs/config"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let EnvModule = class EnvModule { +}; +EnvModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _config.ConfigModule.forRoot({ + envFilePath: process.env.NODE_ENV === 'test' ? '.env.example' : '.env', + validate: (env)=>_env.envSchema.parse(env), + isGlobal: false + }) + ], + providers: [ + _envservice.EnvService + ], + exports: [ + _envservice.EnvService + ] + }) +], EnvModule); + +//# sourceMappingURL=env.module.js.map \ No newline at end of file diff --git a/dist/infra/env/env.module.js.map b/dist/infra/env/env.module.js.map new file mode 100644 index 0000000..c53e544 --- /dev/null +++ b/dist/infra/env/env.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/env/env.module.ts"],"sourcesContent":["import { Module } from '@nestjs/common'\nimport { EnvService } from './env.service'\nimport { envSchema } from './env'\nimport { ConfigModule } from '@nestjs/config'\n\n@Module({\n imports: [\n ConfigModule.forRoot({\n envFilePath: process.env.NODE_ENV === 'test' ? '.env.example' : '.env',\n validate: (env) => envSchema.parse(env),\n isGlobal: false,\n }),\n ],\n providers: [EnvService],\n exports: [EnvService],\n})\nexport class EnvModule { }\n"],"names":["EnvModule","Module","imports","ConfigModule","forRoot","envFilePath","process","env","NODE_ENV","validate","envSchema","parse","isGlobal","providers","EnvService","exports"],"mappings":";;;;+BAgBaA;;;eAAAA;;;wBAhBU;4BACI;qBACD;wBACG;;;;;;;AAatB,IAAA,AAAMA,YAAN,MAAMA;AAAY;AAAZA;IAXZC,IAAAA,cAAM,EAAC;QACNC,SAAS;YACPC,oBAAY,CAACC,OAAO,CAAC;gBACnBC,aAAaC,QAAQC,GAAG,CAACC,QAAQ,KAAK,SAAS,iBAAiB;gBAChEC,UAAU,CAACF,MAAQG,cAAS,CAACC,KAAK,CAACJ;gBACnCK,UAAU;YACZ;SACD;QACDC,WAAW;YAACC,sBAAU;SAAC;QACvBC,SAAS;YAACD,sBAAU;SAAC;IACvB;GACad"} \ No newline at end of file diff --git a/dist/infra/env/env.service.js b/dist/infra/env/env.service.js new file mode 100644 index 0000000..e7a988f --- /dev/null +++ b/dist/infra/env/env.service.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "EnvService", { + enumerable: true, + get: function() { + return EnvService; + } +}); +const _common = require("@nestjs/common"); +const _config = require("@nestjs/config"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let EnvService = class EnvService { + get(key) { + return this.configService.get(key, { + infer: true + }); + } + constructor(configService){ + this.configService = configService; + } +}; +EnvService = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _config.ConfigService === "undefined" ? Object : _config.ConfigService + ]) +], EnvService); + +//# sourceMappingURL=env.service.js.map \ No newline at end of file diff --git a/dist/infra/env/env.service.js.map b/dist/infra/env/env.service.js.map new file mode 100644 index 0000000..ebfdbc4 --- /dev/null +++ b/dist/infra/env/env.service.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/env/env.service.ts"],"sourcesContent":["import { Injectable } from '@nestjs/common'\nimport { ConfigService } from '@nestjs/config'\nimport { Env } from './env'\n\n@Injectable()\nexport class EnvService {\n constructor(private configService: ConfigService) {}\n\n get(key: T) {\n return this.configService.get(key, { infer: true })\n }\n}\n"],"names":["EnvService","get","key","configService","infer","constructor","Injectable"],"mappings":";;;;+BAKaA;;;eAAAA;;;wBALc;wBACG;;;;;;;;;;AAIvB,IAAA,AAAMA,aAAN,MAAMA;IAGXC,IAAyBC,GAAM,EAAE;QAC/B,OAAO,IAAI,CAACC,aAAa,CAACF,GAAG,CAACC,KAAK;YAAEE,OAAO;QAAK;IACnD;IAJAC,YAAY,AAAQF,aAAuC,CAAE;aAAzCA,gBAAAA;IAA0C;AAKhE;AANaH;IADZM,IAAAA,kBAAU;;;eAE0B,qBAAa,4BAAb,qBAAa;;GADrCN"} \ No newline at end of file diff --git a/dist/infra/env/env.service.unit-spec.js b/dist/infra/env/env.service.unit-spec.js new file mode 100644 index 0000000..e815784 --- /dev/null +++ b/dist/infra/env/env.service.unit-spec.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _testing = require("@nestjs/testing"); +const _config = require("@nestjs/config"); +const _envservice = require("./env.service"); +describe('EnvService', ()=>{ + let service; + let configService; + beforeEach(async ()=>{ + const module = await _testing.Test.createTestingModule({ + providers: [ + _envservice.EnvService, + { + provide: _config.ConfigService, + useValue: { + get: jest.fn() + } + } + ] + }).compile(); + service = module.get(_envservice.EnvService); + configService = module.get(_config.ConfigService); + }); + it('should be defined', ()=>{ + expect(service).toBeDefined(); + }); + describe('exchangeApiKey', ()=>{ + it('should return the exchangeApiKey value', ()=>{ + const PORT = 3000; + jest.spyOn(configService, 'get').mockReturnValue(PORT); + expect(service.get('PORT')).toEqual(PORT); + expect(configService.get).toHaveBeenCalledWith('PORT', { + infer: true + }); + }); + }); +}); + +//# sourceMappingURL=env.service.unit-spec.js.map \ No newline at end of file diff --git a/dist/infra/env/env.service.unit-spec.js.map b/dist/infra/env/env.service.unit-spec.js.map new file mode 100644 index 0000000..9e16d36 --- /dev/null +++ b/dist/infra/env/env.service.unit-spec.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/env/env.service.unit-spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing';\nimport { ConfigService } from '@nestjs/config';\nimport { EnvService } from './env.service';\n\ndescribe('EnvService', () => {\n let service: EnvService;\n let configService: ConfigService;\n\n beforeEach(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n EnvService,\n {\n provide: ConfigService,\n useValue: {\n get: jest.fn(),\n },\n },\n ],\n }).compile();\n\n service = module.get(EnvService);\n configService = module.get(ConfigService);\n });\n\n it('should be defined', () => {\n expect(service).toBeDefined();\n });\n\n describe('exchangeApiKey', () => {\n it('should return the exchangeApiKey value', () => {\n const PORT = 3000;\n jest.spyOn(configService, 'get').mockReturnValue(PORT);\n\n expect(service.get('PORT')).toEqual(PORT);\n expect(configService.get).toHaveBeenCalledWith('PORT', { infer: true });\n });\n });\n});\n"],"names":["describe","service","configService","beforeEach","module","Test","createTestingModule","providers","EnvService","provide","ConfigService","useValue","get","jest","fn","compile","it","expect","toBeDefined","PORT","spyOn","mockReturnValue","toEqual","toHaveBeenCalledWith","infer"],"mappings":";;;;yBAAoC;wBACN;4BACH;AAE3BA,SAAS,cAAc;IACrB,IAAIC;IACJ,IAAIC;IAEJC,WAAW;QACT,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBACTC,sBAAU;gBACV;oBACEC,SAASC,qBAAa;oBACtBC,UAAU;wBACRC,KAAKC,KAAKC,EAAE;oBACd;gBACF;aACD;QACH,GAAGC,OAAO;QAEVd,UAAUG,OAAOQ,GAAG,CAAaJ,sBAAU;QAC3CN,gBAAgBE,OAAOQ,GAAG,CAAgBF,qBAAa;IACzD;IAEAM,GAAG,qBAAqB;QACtBC,OAAOhB,SAASiB,WAAW;IAC7B;IAEAlB,SAAS,kBAAkB;QACzBgB,GAAG,0CAA0C;YAC3C,MAAMG,OAAO;YACbN,KAAKO,KAAK,CAAClB,eAAe,OAAOmB,eAAe,CAACF;YAEjDF,OAAOhB,QAAQW,GAAG,CAAC,SAASU,OAAO,CAACH;YACpCF,OAAOf,cAAcU,GAAG,EAAEW,oBAAoB,CAAC,QAAQ;gBAAEC,OAAO;YAAK;QACvE;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/env/index.js b/dist/infra/env/index.js new file mode 100644 index 0000000..e34112e --- /dev/null +++ b/dist/infra/env/index.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +_export_star(require("./env"), exports); +_export_star(require("./env.module"), exports); +_export_star(require("./env.service"), exports); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/infra/env/index.js.map b/dist/infra/env/index.js.map new file mode 100644 index 0000000..1bbdd2f --- /dev/null +++ b/dist/infra/env/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/env/index.ts"],"sourcesContent":["export * from './env';\nexport * from './env.module';\nexport * from './env.service';"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA"} \ No newline at end of file diff --git a/dist/infra/http/app.controller.js b/dist/infra/http/app.controller.js new file mode 100644 index 0000000..16a08df --- /dev/null +++ b/dist/infra/http/app.controller.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppController", { + enumerable: true, + get: function() { + return AppController; + } +}); +const _common = require("@nestjs/common"); +const _swagger = require("@nestjs/swagger"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let AppController = class AppController { + getAll() { + return 'ok'; + } +}; +_ts_decorate([ + (0, _common.Get)(''), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", []), + _ts_metadata("design:returntype", void 0) +], AppController.prototype, "getAll", null); +AppController = _ts_decorate([ + (0, _common.Controller)('/'), + (0, _swagger.ApiTags)('App') +], AppController); + +//# sourceMappingURL=app.controller.js.map \ No newline at end of file diff --git a/dist/infra/http/app.controller.js.map b/dist/infra/http/app.controller.js.map new file mode 100644 index 0000000..4009549 --- /dev/null +++ b/dist/infra/http/app.controller.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/app.controller.ts"],"sourcesContent":["import {\n Controller,\n Get\n} from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\n\n@Controller('/')\n@ApiTags('App')\nexport class AppController {\n @Get('')\n getAll() {\n return 'ok';\n }\n}\n"],"names":["AppController","getAll","Get","Controller","ApiTags"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBALN;yBACiB;;;;;;;;;;AAIjB,IAAA,AAAMA,gBAAN,MAAMA;IAETC,SAAS;QACL,OAAO;IACX;AACJ;;IAJKC,IAAAA,WAAG,EAAC;;;;GADIF;AAAAA;IAFZG,IAAAA,kBAAU,EAAC;IACXC,IAAAA,gBAAO,EAAC;GACIJ"} \ No newline at end of file diff --git a/dist/infra/http/checkout.controller.js b/dist/infra/http/checkout.controller.js new file mode 100644 index 0000000..a51e0f5 --- /dev/null +++ b/dist/infra/http/checkout.controller.js @@ -0,0 +1,80 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CheckoutController", { + enumerable: true, + get: function() { + return CheckoutController; + } +}); +const _checkouturl = require("../../application/ecommerce/use-case/checkout-url"); +const _cachemanager = require("@nestjs/cache-manager"); +const _common = require("@nestjs/common"); +const _checkoutcomplete = require("../../application/ecommerce/use-case/checkout-complete"); +const _swagger = require("@nestjs/swagger"); +const _httpcacheinterceptor = require("../persistence/cache/interceptor/http-cache.interceptor"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let CheckoutController = class CheckoutController { + checkoutUrl(orderId) { + const response = this.checkoutUrlUseCase.execute(orderId); + return response; + } + checkoutComplete(requestHeaders, req) { + const response = this.checkoutCompleteUseCase.execute({ + headers: requestHeaders, + req: req + }); + return response; + } + constructor(checkoutUrlUseCase, checkoutCompleteUseCase){ + this.checkoutUrlUseCase = checkoutUrlUseCase; + this.checkoutCompleteUseCase = checkoutCompleteUseCase; + } +}; +_ts_decorate([ + (0, _common.Get)(':orderId/url'), + (0, _cachemanager.CacheKey)(':orderId/url'), + (0, _common.UseInterceptors)(_httpcacheinterceptor.HttpCacheInterceptor), + _ts_param(0, (0, _common.Param)('orderId')), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + String + ]), + _ts_metadata("design:returntype", void 0) +], CheckoutController.prototype, "checkoutUrl", null); +_ts_decorate([ + (0, _common.Post)('completed'), + _ts_param(0, (0, _common.Headers)()), + _ts_param(1, (0, _common.Req)()), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + Object, + typeof _common.RawBodyRequest === "undefined" ? Object : _common.RawBodyRequest + ]), + _ts_metadata("design:returntype", void 0) +], CheckoutController.prototype, "checkoutComplete", null); +CheckoutController = _ts_decorate([ + (0, _common.Controller)('/checkout'), + (0, _swagger.ApiTags)('Checkout'), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _checkouturl.CheckoutUrlUseCase === "undefined" ? Object : _checkouturl.CheckoutUrlUseCase, + typeof _checkoutcomplete.CheckoutCompleteUseCase === "undefined" ? Object : _checkoutcomplete.CheckoutCompleteUseCase + ]) +], CheckoutController); + +//# sourceMappingURL=checkout.controller.js.map \ No newline at end of file diff --git a/dist/infra/http/checkout.controller.js.map b/dist/infra/http/checkout.controller.js.map new file mode 100644 index 0000000..ba34aa0 --- /dev/null +++ b/dist/infra/http/checkout.controller.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/checkout.controller.ts"],"sourcesContent":["import { CheckoutUrlUseCase } from '@app/application/ecommerce/use-case/checkout-url';\nimport { CacheKey } from '@nestjs/cache-manager';\nimport {\n Controller,\n Get,\n Headers,\n Param,\n Post,\n RawBodyRequest,\n Req,\n UseInterceptors\n} from '@nestjs/common';\nimport { Request } from 'express';\nimport { CheckoutCompleteUseCase } from '@app/application/ecommerce/use-case/checkout-complete';\nimport { ApiTags } from '@nestjs/swagger';\nimport { HttpCacheInterceptor } from '../persistence/cache/interceptor/http-cache.interceptor';\n\n@Controller('/checkout')\n@ApiTags('Checkout')\nexport class CheckoutController {\n constructor(\n private checkoutUrlUseCase: CheckoutUrlUseCase,\n private checkoutCompleteUseCase: CheckoutCompleteUseCase,\n ) { }\n\n @Get(':orderId/url')\n @CacheKey(':orderId/url')\n @UseInterceptors(HttpCacheInterceptor)\n checkoutUrl(@Param('orderId') orderId: string) {\n const response = this.checkoutUrlUseCase.execute(orderId);\n return response;\n }\n\n @Post('completed')\n checkoutComplete(\n @Headers() requestHeaders: Request['headers'],\n @Req() req: RawBodyRequest\n ) {\n const response = this.checkoutCompleteUseCase.execute({\n headers: requestHeaders,\n req: req\n });\n return response;\n }\n}\n"],"names":["CheckoutController","checkoutUrl","orderId","response","checkoutUrlUseCase","execute","checkoutComplete","requestHeaders","req","checkoutCompleteUseCase","headers","constructor","Get","CacheKey","UseInterceptors","HttpCacheInterceptor","Param","Post","Headers","Req","Controller","ApiTags"],"mappings":";;;;+BAmBaA;;;eAAAA;;;6BAnBsB;8BACV;wBAUlB;kCAEiC;yBAChB;sCACa;;;;;;;;;;;;;;;AAI9B,IAAA,AAAMA,qBAAN,MAAMA;IASTC,YAAY,AAAkBC,OAAe,EAAE;QAC3C,MAAMC,WAAW,IAAI,CAACC,kBAAkB,CAACC,OAAO,CAACH;QACjD,OAAOC;IACX;IAGAG,iBACI,AAAWC,cAAkC,EAC7C,AAAOC,GAA4B,EACrC;QACE,MAAML,WAAW,IAAI,CAACM,uBAAuB,CAACJ,OAAO,CAAC;YAClDK,SAASH;YACTC,KAAKA;QACT;QACA,OAAOL;IACX;IAvBAQ,YACI,AAAQP,kBAAsC,EAC9C,AAAQK,uBAAgD,CAC1D;aAFUL,qBAAAA;aACAK,0BAAAA;IACR;AAqBR;;IAnBKG,IAAAA,WAAG,EAAC;IACJC,IAAAA,sBAAQ,EAAC;IACTC,IAAAA,uBAAe,EAACC,0CAAoB;IACxBC,aAAAA,IAAAA,aAAK,EAAC;;;;;;GATVhB;;IAcRiB,IAAAA,YAAI,EAAC;IAEDC,aAAAA,IAAAA,eAAO;IACPC,aAAAA,IAAAA,WAAG;;;;eAAQ,sBAAc,4BAAd,sBAAc;;;GAjBrBnB;AAAAA;IAFZoB,IAAAA,kBAAU,EAAC;IACXC,IAAAA,gBAAO,EAAC;;;eAG2B,+BAAkB,4BAAlB,+BAAkB;eACb,yCAAuB,4BAAvB,yCAAuB;;GAHnDrB"} \ No newline at end of file diff --git a/dist/infra/http/dto/create-order-product.dto.js b/dist/infra/http/dto/create-order-product.dto.js new file mode 100644 index 0000000..f19219a --- /dev/null +++ b/dist/infra/http/dto/create-order-product.dto.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateOrderProductDto", { + enumerable: true, + get: function() { + return CreateOrderProductDto; + } +}); +const _swagger = require("@nestjs/swagger"); +const _classvalidator = require("class-validator"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateOrderProductDto = class CreateOrderProductDto { +}; +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsString)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", String) +], CreateOrderProductDto.prototype, "product", void 0); +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsNumber)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", Number) +], CreateOrderProductDto.prototype, "price", void 0); + +//# sourceMappingURL=create-order-product.dto.js.map \ No newline at end of file diff --git a/dist/infra/http/dto/create-order-product.dto.js.map b/dist/infra/http/dto/create-order-product.dto.js.map new file mode 100644 index 0000000..43bc262 --- /dev/null +++ b/dist/infra/http/dto/create-order-product.dto.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/http/dto/create-order-product.dto.ts"],"sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport {\n IsNotEmpty,\n IsNumber,\n IsString\n} from 'class-validator';\n\nexport class CreateOrderProductDto {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n product: string;\n\n @ApiProperty()\n @IsNumber()\n @IsNotEmpty()\n price: number;\n}"],"names":["CreateOrderProductDto","ApiProperty","IsString","IsNotEmpty","IsNumber"],"mappings":";;;;+BAOaA;;;eAAAA;;;yBAPe;gCAKrB;;;;;;;;;;AAEA,IAAA,AAAMA,wBAAN,MAAMA;AAUb;;IATKC,IAAAA,oBAAW;IACXC,IAAAA,wBAAQ;IACRC,IAAAA,0BAAU;;GAHFH;;IAMRC,IAAAA,oBAAW;IACXG,IAAAA,wBAAQ;IACRD,IAAAA,0BAAU;;GARFH"} \ No newline at end of file diff --git a/dist/infra/http/dto/create-order.dto.js b/dist/infra/http/dto/create-order.dto.js new file mode 100644 index 0000000..09cf1d8 --- /dev/null +++ b/dist/infra/http/dto/create-order.dto.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateOrderDto", { + enumerable: true, + get: function() { + return CreateOrderDto; + } +}); +const _swagger = require("@nestjs/swagger"); +const _classvalidator = require("class-validator"); +const _createorderproductdto = require("./create-order-product.dto"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateOrderDto = class CreateOrderDto { +}; +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsString)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", String) +], CreateOrderDto.prototype, "user", void 0); +_ts_decorate([ + (0, _swagger.ApiProperty)({ + required: true, + type: _createorderproductdto.CreateOrderProductDto, + nullable: false, + isArray: true + }), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", Array) +], CreateOrderDto.prototype, "orderProduct", void 0); + +//# sourceMappingURL=create-order.dto.js.map \ No newline at end of file diff --git a/dist/infra/http/dto/create-order.dto.js.map b/dist/infra/http/dto/create-order.dto.js.map new file mode 100644 index 0000000..cfceb71 --- /dev/null +++ b/dist/infra/http/dto/create-order.dto.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/http/dto/create-order.dto.ts"],"sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport {\n IsNotEmpty,\n IsString\n} from 'class-validator';\nimport { CreateOrderProductDto } from './create-order-product.dto';\n\nexport class CreateOrderDto {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n user: string;\n\n @ApiProperty({\n required: true,\n type: CreateOrderProductDto,\n nullable: false,\n isArray: true,\n })\n @IsNotEmpty()\n orderProduct: CreateOrderProductDto[]\n}"],"names":["CreateOrderDto","ApiProperty","IsString","IsNotEmpty","required","type","CreateOrderProductDto","nullable","isArray"],"mappings":";;;;+BAOaA;;;eAAAA;;;yBAPe;gCAIrB;uCAC+B;;;;;;;;;;AAE/B,IAAA,AAAMA,iBAAN,MAAMA;AAcb;;IAbKC,IAAAA,oBAAW;IACXC,IAAAA,wBAAQ;IACRC,IAAAA,0BAAU;;GAHFH;;IAMRC,IAAAA,oBAAW,EAAC;QACTG,UAAU;QACVC,MAAMC,4CAAqB;QAC3BC,UAAU;QACVC,SAAS;IACb;IACCL,IAAAA,0BAAU;;GAZFH"} \ No newline at end of file diff --git a/dist/infra/http/dto/create-product.dto.js b/dist/infra/http/dto/create-product.dto.js new file mode 100644 index 0000000..74e7ec0 --- /dev/null +++ b/dist/infra/http/dto/create-product.dto.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateProductDto", { + enumerable: true, + get: function() { + return CreateProductDto; + } +}); +const _swagger = require("@nestjs/swagger"); +const _classvalidator = require("class-validator"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateProductDto = class CreateProductDto { +}; +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsString)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", String) +], CreateProductDto.prototype, "title", void 0); +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsNumber)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", Number) +], CreateProductDto.prototype, "price", void 0); + +//# sourceMappingURL=create-product.dto.js.map \ No newline at end of file diff --git a/dist/infra/http/dto/create-product.dto.js.map b/dist/infra/http/dto/create-product.dto.js.map new file mode 100644 index 0000000..dd8e27d --- /dev/null +++ b/dist/infra/http/dto/create-product.dto.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/http/dto/create-product.dto.ts"],"sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport {\n IsNotEmpty,\n IsNumber,\n IsString\n} from 'class-validator';\n\nexport class CreateProductDto {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n title: string;\n\n @ApiProperty()\n @IsNumber()\n @IsNotEmpty()\n price: number;\n}"],"names":["CreateProductDto","ApiProperty","IsString","IsNotEmpty","IsNumber"],"mappings":";;;;+BAOaA;;;eAAAA;;;yBAPe;gCAKrB;;;;;;;;;;AAEA,IAAA,AAAMA,mBAAN,MAAMA;AAUb;;IATKC,IAAAA,oBAAW;IACXC,IAAAA,wBAAQ;IACRC,IAAAA,0BAAU;;GAHFH;;IAMRC,IAAAA,oBAAW;IACXG,IAAAA,wBAAQ;IACRD,IAAAA,0BAAU;;GARFH"} \ No newline at end of file diff --git a/dist/infra/http/dto/create-user.dto.js b/dist/infra/http/dto/create-user.dto.js new file mode 100644 index 0000000..047cb71 --- /dev/null +++ b/dist/infra/http/dto/create-user.dto.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CreateUserDto", { + enumerable: true, + get: function() { + return CreateUserDto; + } +}); +const _swagger = require("@nestjs/swagger"); +const _classvalidator = require("class-validator"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let CreateUserDto = class CreateUserDto { +}; +_ts_decorate([ + (0, _swagger.ApiProperty)(), + (0, _classvalidator.IsString)(), + (0, _classvalidator.IsNotEmpty)(), + _ts_metadata("design:type", String) +], CreateUserDto.prototype, "name", void 0); + +//# sourceMappingURL=create-user.dto.js.map \ No newline at end of file diff --git a/dist/infra/http/dto/create-user.dto.js.map b/dist/infra/http/dto/create-user.dto.js.map new file mode 100644 index 0000000..d59aabf --- /dev/null +++ b/dist/infra/http/dto/create-user.dto.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/http/dto/create-user.dto.ts"],"sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport {\n IsNotEmpty,\n IsString\n} from 'class-validator';\n\nexport class CreateUserDto {\n @ApiProperty()\n @IsString()\n @IsNotEmpty()\n name: string;\n}"],"names":["CreateUserDto","ApiProperty","IsString","IsNotEmpty"],"mappings":";;;;+BAMaA;;;eAAAA;;;yBANe;gCAIrB;;;;;;;;;;AAEA,IAAA,AAAMA,gBAAN,MAAMA;AAKb;;IAJKC,IAAAA,oBAAW;IACXC,IAAAA,wBAAQ;IACRC,IAAAA,0BAAU;;GAHFH"} \ No newline at end of file diff --git a/dist/infra/http/http.module.js b/dist/infra/http/http.module.js new file mode 100644 index 0000000..25e60c1 --- /dev/null +++ b/dist/infra/http/http.module.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "HttpModule", { + enumerable: true, + get: function() { + return HttpModule; + } +}); +const _common = require("@nestjs/common"); +const _cachemodule = require("../persistence/cache/cache.module"); +const _ordercontroller = require("./order.controller"); +const _productcontroller = require("./product.controller"); +const _usercontroller = require("./user.controller"); +const _createorder = require("../../application/ecommerce/use-case/create-order"); +const _createproduct = require("../../application/ecommerce/use-case/create-product"); +const _createuser = require("../../application/ecommerce/use-case/create-user"); +const _getorder = require("../../application/ecommerce/use-case/get-order"); +const _getproduct = require("../../application/ecommerce/use-case/get-product"); +const _getuser = require("../../application/ecommerce/use-case/get-user"); +const _checkouturl = require("../../application/ecommerce/use-case/checkout-url"); +const _checkoutcontroller = require("./checkout.controller"); +const _paymentmodule = require("../payment/payment.module"); +const _getorders = require("../../application/ecommerce/use-case/get-orders"); +const _checkoutcomplete = require("../../application/ecommerce/use-case/checkout-complete"); +const _appcontroller = require("./app.controller"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let HttpModule = class HttpModule { +}; +HttpModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _paymentmodule.PaymentModule, + _cachemodule.CacheManagerModule + ], + controllers: [ + _appcontroller.AppController, + _productcontroller.ProductController, + _usercontroller.UserController, + _ordercontroller.OrderController, + _checkoutcontroller.CheckoutController + ], + providers: [ + _createproduct.CreateProductUseCase, + _getproduct.GetProductUseCase, + _createuser.CreateUserUseCase, + _getuser.GetUserUseCase, + _getorder.GetOrderUseCase, + _getorders.GetOrdersUseCase, + _createorder.CreateOrderUseCase, + _checkouturl.CheckoutUrlUseCase, + _checkoutcomplete.CheckoutCompleteUseCase + ], + exports: [] + }) +], HttpModule); + +//# sourceMappingURL=http.module.js.map \ No newline at end of file diff --git a/dist/infra/http/http.module.js.map b/dist/infra/http/http.module.js.map new file mode 100644 index 0000000..0b79119 --- /dev/null +++ b/dist/infra/http/http.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/http.module.ts"],"sourcesContent":["import { Module } from '@nestjs/common';\nimport { CacheManagerModule } from '@app/infra/persistence/cache/cache.module';\nimport { OrderController } from './order.controller';\nimport { ProductController } from './product.controller';\nimport { UserController } from './user.controller';\n\nimport { CreateOrderUseCase } from '@app/application/ecommerce/use-case/create-order';\nimport { CreateProductUseCase } from '@app/application/ecommerce/use-case/create-product';\nimport { CreateUserUseCase } from '@app/application/ecommerce/use-case/create-user';\nimport { GetOrderUseCase } from '@app/application/ecommerce/use-case/get-order';\nimport { GetProductUseCase } from '@app/application/ecommerce/use-case/get-product';\nimport { GetUserUseCase } from '@app/application/ecommerce/use-case/get-user';\nimport { CheckoutUrlUseCase } from '@app/application/ecommerce/use-case/checkout-url';\nimport { CheckoutController } from './checkout.controller';\nimport { PaymentModule } from '../payment/payment.module';\nimport { GetOrdersUseCase } from '@app/application/ecommerce/use-case/get-orders';\nimport { CheckoutCompleteUseCase } from '@app/application/ecommerce/use-case/checkout-complete';\nimport { AppController } from './app.controller';\n\n@Module({\n imports: [PaymentModule, CacheManagerModule],\n controllers: [AppController, ProductController, UserController, OrderController, CheckoutController],\n providers: [CreateProductUseCase, GetProductUseCase, CreateUserUseCase, GetUserUseCase, GetOrderUseCase, GetOrdersUseCase, CreateOrderUseCase, CheckoutUrlUseCase, CheckoutCompleteUseCase],\n exports: [],\n})\nexport class HttpModule { }\n"],"names":["HttpModule","Module","imports","PaymentModule","CacheManagerModule","controllers","AppController","ProductController","UserController","OrderController","CheckoutController","providers","CreateProductUseCase","GetProductUseCase","CreateUserUseCase","GetUserUseCase","GetOrderUseCase","GetOrdersUseCase","CreateOrderUseCase","CheckoutUrlUseCase","CheckoutCompleteUseCase","exports"],"mappings":";;;;+BAyBaA;;;eAAAA;;;wBAzBU;6BACY;iCACH;mCACE;gCACH;6BAEI;+BACE;4BACH;0BACF;4BACE;yBACH;6BACI;oCACA;+BACL;2BACG;kCACO;+BACV;;;;;;;AAQvB,IAAA,AAAMA,aAAN,MAAMA;AAAa;AAAbA;IANZC,IAAAA,cAAM,EAAC;QACNC,SAAS;YAACC,4BAAa;YAAEC,+BAAkB;SAAC;QAC5CC,aAAa;YAACC,4BAAa;YAAEC,oCAAiB;YAAEC,8BAAc;YAAEC,gCAAe;YAAEC,sCAAkB;SAAC;QACpGC,WAAW;YAACC,mCAAoB;YAAEC,6BAAiB;YAAEC,6BAAiB;YAAEC,uBAAc;YAAEC,yBAAe;YAAEC,2BAAgB;YAAEC,+BAAkB;YAAEC,+BAAkB;YAAEC,yCAAuB;SAAC;QAC3LC,SAAS,EAAE;IACb;GACarB"} \ No newline at end of file diff --git a/dist/infra/http/order.controller.js b/dist/infra/http/order.controller.js new file mode 100644 index 0000000..c399028 --- /dev/null +++ b/dist/infra/http/order.controller.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "OrderController", { + enumerable: true, + get: function() { + return OrderController; + } +}); +const _createorder = require("../../application/ecommerce/use-case/create-order"); +const _getorder = require("../../application/ecommerce/use-case/get-order"); +const _getorders = require("../../application/ecommerce/use-case/get-orders"); +const _httpcacheinterceptor = require("../persistence/cache/interceptor/http-cache.interceptor"); +const _cachemanager = require("@nestjs/cache-manager"); +const _common = require("@nestjs/common"); +const _swagger = require("@nestjs/swagger"); +const _createorderdto = require("./dto/create-order.dto"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let OrderController = class OrderController { + getOne(id) { + const response = this.getOrderUseCase.execute(id); + return response; + } + getAll() { + const response = this.getOrdersUseCase.execute({}); + return response; + } + create(createOrderDto) { + const response = this.createOrderUseCase.execute(createOrderDto); + return response; + } + constructor(createOrderUseCase, getOrderUseCase, getOrdersUseCase){ + this.createOrderUseCase = createOrderUseCase; + this.getOrderUseCase = getOrderUseCase; + this.getOrdersUseCase = getOrdersUseCase; + } +}; +_ts_decorate([ + (0, _common.Get)(':id'), + (0, _cachemanager.CacheKey)('order'), + (0, _common.UseInterceptors)(_httpcacheinterceptor.HttpCacheInterceptor), + _ts_param(0, (0, _common.Param)('id')), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + String + ]), + _ts_metadata("design:returntype", void 0) +], OrderController.prototype, "getOne", null); +_ts_decorate([ + (0, _common.Get)(''), + (0, _cachemanager.CacheKey)('orders'), + (0, _common.UseInterceptors)(_httpcacheinterceptor.HttpCacheInterceptor), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", []), + _ts_metadata("design:returntype", void 0) +], OrderController.prototype, "getAll", null); +_ts_decorate([ + (0, _common.Post)(''), + _ts_param(0, (0, _common.Body)()), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createorderdto.CreateOrderDto === "undefined" ? Object : _createorderdto.CreateOrderDto + ]), + _ts_metadata("design:returntype", void 0) +], OrderController.prototype, "create", null); +OrderController = _ts_decorate([ + (0, _common.Controller)('/order'), + (0, _swagger.ApiTags)('Order'), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createorder.CreateOrderUseCase === "undefined" ? Object : _createorder.CreateOrderUseCase, + typeof _getorder.GetOrderUseCase === "undefined" ? Object : _getorder.GetOrderUseCase, + typeof _getorders.GetOrdersUseCase === "undefined" ? Object : _getorders.GetOrdersUseCase + ]) +], OrderController); + +//# sourceMappingURL=order.controller.js.map \ No newline at end of file diff --git a/dist/infra/http/order.controller.js.map b/dist/infra/http/order.controller.js.map new file mode 100644 index 0000000..eb7868d --- /dev/null +++ b/dist/infra/http/order.controller.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/order.controller.ts"],"sourcesContent":["import { CreateOrderUseCase } from '@app/application/ecommerce/use-case/create-order';\nimport { GetOrderUseCase } from '@app/application/ecommerce/use-case/get-order';\nimport { GetOrdersUseCase } from '@app/application/ecommerce/use-case/get-orders';\nimport { HttpCacheInterceptor } from '@app/infra/persistence/cache/interceptor/http-cache.interceptor';\nimport { CacheKey } from '@nestjs/cache-manager';\nimport {\n Body,\n Controller,\n Get,\n Param,\n Post,\n UseInterceptors\n} from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { CreateOrderDto } from './dto/create-order.dto';\n\n@Controller('/order')\n@ApiTags('Order')\nexport class OrderController {\n constructor(\n private createOrderUseCase: CreateOrderUseCase,\n private getOrderUseCase: GetOrderUseCase,\n private getOrdersUseCase: GetOrdersUseCase,\n ) { }\n\n @Get(':id')\n @CacheKey('order')\n @UseInterceptors(HttpCacheInterceptor)\n getOne(@Param('id') id: string) {\n const response = this.getOrderUseCase.execute(id);\n return response;\n }\n\n @Get('')\n @CacheKey('orders')\n @UseInterceptors(HttpCacheInterceptor)\n getAll() {\n const response = this.getOrdersUseCase.execute({});\n return response;\n }\n\n @Post('')\n create(@Body() createOrderDto: CreateOrderDto) {\n const response = this.createOrderUseCase.execute(createOrderDto);\n return response;\n }\n}\n"],"names":["OrderController","getOne","id","response","getOrderUseCase","execute","getAll","getOrdersUseCase","create","createOrderDto","createOrderUseCase","constructor","Get","CacheKey","UseInterceptors","HttpCacheInterceptor","Param","Post","Body","Controller","ApiTags"],"mappings":";;;;+BAkBaA;;;eAAAA;;;6BAlBsB;0BACH;2BACC;sCACI;8BACZ;wBAQlB;yBACiB;gCACO;;;;;;;;;;;;;;;AAIxB,IAAA,AAAMA,kBAAN,MAAMA;IAUTC,OAAO,AAAaC,EAAU,EAAE;QAC5B,MAAMC,WAAW,IAAI,CAACC,eAAe,CAACC,OAAO,CAACH;QAC9C,OAAOC;IACX;IAKAG,SAAS;QACL,MAAMH,WAAW,IAAI,CAACI,gBAAgB,CAACF,OAAO,CAAC,CAAC;QAChD,OAAOF;IACX;IAGAK,OAAO,AAAQC,cAA8B,EAAE;QAC3C,MAAMN,WAAW,IAAI,CAACO,kBAAkB,CAACL,OAAO,CAACI;QACjD,OAAON;IACX;IA1BAQ,YACI,AAAQD,kBAAsC,EAC9C,AAAQN,eAAgC,EACxC,AAAQG,gBAAkC,CAC5C;aAHUG,qBAAAA;aACAN,kBAAAA;aACAG,mBAAAA;IACR;AAuBR;;IArBKK,IAAAA,WAAG,EAAC;IACJC,IAAAA,sBAAQ,EAAC;IACTC,IAAAA,uBAAe,EAACC,0CAAoB;IAC7BC,aAAAA,IAAAA,aAAK,EAAC;;;;;;GAVLhB;;IAeRY,IAAAA,WAAG,EAAC;IACJC,IAAAA,sBAAQ,EAAC;IACTC,IAAAA,uBAAe,EAACC,0CAAoB;;;;GAjB5Bf;;IAuBRiB,IAAAA,YAAI,EAAC;IACEC,aAAAA,IAAAA,YAAI;;;eAAmB,8BAAc,4BAAd,8BAAc;;;GAxBpClB;AAAAA;IAFZmB,IAAAA,kBAAU,EAAC;IACXC,IAAAA,gBAAO,EAAC;;;eAG2B,+BAAkB,4BAAlB,+BAAkB;eACrB,yBAAe,4BAAf,yBAAe;eACd,2BAAgB,4BAAhB,2BAAgB;;GAJrCpB"} \ No newline at end of file diff --git a/dist/infra/http/product.controller.js b/dist/infra/http/product.controller.js new file mode 100644 index 0000000..231cf28 --- /dev/null +++ b/dist/infra/http/product.controller.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ProductController", { + enumerable: true, + get: function() { + return ProductController; + } +}); +const _createproduct = require("../../application/ecommerce/use-case/create-product"); +const _getproduct = require("../../application/ecommerce/use-case/get-product"); +const _cachemanager = require("@nestjs/cache-manager"); +const _common = require("@nestjs/common"); +const _swagger = require("@nestjs/swagger"); +const _httpcacheinterceptor = require("../persistence/cache/interceptor/http-cache.interceptor"); +const _createproductdto = require("./dto/create-product.dto"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let ProductController = class ProductController { + async getAll() { + const response = this.getProductUseCase.execute({}); + return response; + } + create(createProductDto) { + const response = this.createProductUseCase.execute(createProductDto); + return response; + } + constructor(createProductUseCase, getProductUseCase){ + this.createProductUseCase = createProductUseCase; + this.getProductUseCase = getProductUseCase; + } +}; +_ts_decorate([ + (0, _common.Get)(''), + (0, _cachemanager.CacheKey)('products'), + (0, _common.UseInterceptors)(_httpcacheinterceptor.HttpCacheInterceptor), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", []), + _ts_metadata("design:returntype", Promise) +], ProductController.prototype, "getAll", null); +_ts_decorate([ + (0, _common.Post)(''), + _ts_param(0, (0, _common.Body)()), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createproductdto.CreateProductDto === "undefined" ? Object : _createproductdto.CreateProductDto + ]), + _ts_metadata("design:returntype", void 0) +], ProductController.prototype, "create", null); +ProductController = _ts_decorate([ + (0, _common.Controller)('/product'), + (0, _swagger.ApiTags)('Product'), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createproduct.CreateProductUseCase === "undefined" ? Object : _createproduct.CreateProductUseCase, + typeof _getproduct.GetProductUseCase === "undefined" ? Object : _getproduct.GetProductUseCase + ]) +], ProductController); + +//# sourceMappingURL=product.controller.js.map \ No newline at end of file diff --git a/dist/infra/http/product.controller.js.map b/dist/infra/http/product.controller.js.map new file mode 100644 index 0000000..f5ee96a --- /dev/null +++ b/dist/infra/http/product.controller.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/product.controller.ts"],"sourcesContent":["import { CreateProductUseCase } from '@app/application/ecommerce/use-case/create-product';\nimport { GetProductUseCase } from '@app/application/ecommerce/use-case/get-product';\nimport { CacheKey } from '@nestjs/cache-manager';\nimport {\n Body,\n Controller,\n Get,\n Post,\n UseInterceptors\n} from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { HttpCacheInterceptor } from '../persistence/cache/interceptor/http-cache.interceptor';\nimport { CreateProductDto } from './dto/create-product.dto';\n\n@Controller('/product')\n@ApiTags('Product')\nexport class ProductController {\n constructor(\n private createProductUseCase: CreateProductUseCase,\n private getProductUseCase: GetProductUseCase,\n ) { }\n\n @Get('')\n @CacheKey('products')\n @UseInterceptors(HttpCacheInterceptor)\n async getAll() {\n const response = this.getProductUseCase.execute({});\n return response;\n }\n\n @Post('')\n create(@Body() createProductDto: CreateProductDto) {\n const response = this.createProductUseCase.execute(createProductDto);\n return response;\n }\n}\n"],"names":["ProductController","getAll","response","getProductUseCase","execute","create","createProductDto","createProductUseCase","constructor","Get","CacheKey","UseInterceptors","HttpCacheInterceptor","Post","Body","Controller","ApiTags"],"mappings":";;;;+BAgBaA;;;eAAAA;;;+BAhBwB;4BACH;8BACT;wBAOlB;yBACiB;sCACa;kCACJ;;;;;;;;;;;;;;;AAI1B,IAAA,AAAMA,oBAAN,MAAMA;IAMT,MAGMC,SAAS;QACX,MAAMC,WAAW,IAAI,CAACC,iBAAiB,CAACC,OAAO,CAAC,CAAC;QACjD,OAAOF;IACX;IAGAG,OAAO,AAAQC,gBAAkC,EAAE;QAC/C,MAAMJ,WAAW,IAAI,CAACK,oBAAoB,CAACH,OAAO,CAACE;QACnD,OAAOJ;IACX;IAjBAM,YACI,AAAQD,oBAA0C,EAClD,AAAQJ,iBAAoC,CAC9C;aAFUI,uBAAAA;aACAJ,oBAAAA;IACR;AAeR;;IAbKM,IAAAA,WAAG,EAAC;IACJC,IAAAA,sBAAQ,EAAC;IACTC,IAAAA,uBAAe,EAACC,0CAAoB;;;;GAR5BZ;;IAcRa,IAAAA,YAAI,EAAC;IACEC,aAAAA,IAAAA,YAAI;;;eAAqB,kCAAgB,4BAAhB,kCAAgB;;;GAfxCd;AAAAA;IAFZe,IAAAA,kBAAU,EAAC;IACXC,IAAAA,gBAAO,EAAC;;;eAG6B,mCAAoB,4BAApB,mCAAoB;eACvB,6BAAiB,4BAAjB,6BAAiB;;GAHvChB"} \ No newline at end of file diff --git a/dist/infra/http/user.controller-e2e-spec.js b/dist/infra/http/user.controller-e2e-spec.js new file mode 100644 index 0000000..519c5e7 --- /dev/null +++ b/dist/infra/http/user.controller-e2e-spec.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _createuser = require("../../application/ecommerce/use-case/create-user"); +const _getuser = require("../../application/ecommerce/use-case/get-user"); +const _testing = require("@nestjs/testing"); +const _supertest = /*#__PURE__*/ _interop_require_default(require("supertest")); +const _cachemodule = require("../persistence/cache/cache.module"); +const _persistencemodule = require("../persistence/persistence.module"); +const _usercontroller = require("./user.controller"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +describe('UsersController', ()=>{ + let httpServer; + let app; + beforeAll(async ()=>{ + const moduleRef = await _testing.Test.createTestingModule({ + imports: [ + _cachemodule.CacheManagerModule, + _persistencemodule.PersistenceModule.register({ + type: 'mongoose', + global: true + }) + ], + controllers: [ + _usercontroller.UserController + ], + providers: [ + _createuser.CreateUserUseCase, + _getuser.GetUserUseCase + ] + }).compile(); + app = moduleRef.createNestApplication(); + await app.init(); + httpServer = app.getHttpServer(); + }); + afterAll(async ()=>{ + await app.close(); + }); + describe('UserController', ()=>{ + it('should create user', async ()=>{ + const createDto = { + name: 'Jonh Doe' + }; + const response = await (0, _supertest.default)(httpServer).post('/user').send(createDto); + expect(response.status).toBe(201); + expect(response.body.props.name).toEqual(createDto.name); + }); + }); +}); + +//# sourceMappingURL=user.controller-e2e-spec.js.map \ No newline at end of file diff --git a/dist/infra/http/user.controller-e2e-spec.js.map b/dist/infra/http/user.controller-e2e-spec.js.map new file mode 100644 index 0000000..fb8b5ed --- /dev/null +++ b/dist/infra/http/user.controller-e2e-spec.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/user.controller-e2e-spec.ts"],"sourcesContent":["import { CreateUserUseCase } from '@app/application/ecommerce/use-case/create-user';\nimport { GetUserUseCase } from '@app/application/ecommerce/use-case/get-user';\nimport { Test } from '@nestjs/testing';\nimport request from 'supertest';\nimport { CacheManagerModule } from '../persistence/cache/cache.module';\nimport { PersistenceModule } from '../persistence/persistence.module';\nimport { CreateUserDto } from './dto/create-user.dto';\nimport { UserController } from './user.controller';\n\ndescribe('UsersController', () => {\n let httpServer: any;\n let app: any;\n\n beforeAll(async () => {\n const moduleRef = await Test.createTestingModule({\n imports: [\n CacheManagerModule,\n PersistenceModule.register({\n type: 'mongoose',\n global: true,\n }),\n ],\n controllers: [UserController],\n providers: [CreateUserUseCase, GetUserUseCase],\n }).compile();\n\n app = moduleRef.createNestApplication();\n await app.init();\n\n httpServer = app.getHttpServer();\n });\n\n afterAll(async () => {\n await app.close();\n });\n\n describe('UserController', () => {\n it('should create user', async () => {\n const createDto: CreateUserDto = {\n name: 'Jonh Doe',\n };\n const response = await request(httpServer)\n .post('/user')\n .send(createDto);\n\n expect(response.status).toBe(201);\n expect(response.body.props.name).toEqual(createDto.name);\n });\n });\n});\n"],"names":["describe","httpServer","app","beforeAll","moduleRef","Test","createTestingModule","imports","CacheManagerModule","PersistenceModule","register","type","global","controllers","UserController","providers","CreateUserUseCase","GetUserUseCase","compile","createNestApplication","init","getHttpServer","afterAll","close","it","createDto","name","response","request","post","send","expect","status","toBe","body","props","toEqual"],"mappings":";;;;4BAAkC;yBACH;yBACV;kEACD;6BACe;mCACD;gCAEH;;;;;;AAE/BA,SAAS,mBAAmB;IACxB,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACN,MAAMC,YAAY,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC7CC,SAAS;gBACLC,+BAAkB;gBAClBC,oCAAiB,CAACC,QAAQ,CAAC;oBACvBC,MAAM;oBACNC,QAAQ;gBACZ;aACH;YACDC,aAAa;gBAACC,8BAAc;aAAC;YAC7BC,WAAW;gBAACC,6BAAiB;gBAAEC,uBAAc;aAAC;QAClD,GAAGC,OAAO;QAEVhB,MAAME,UAAUe,qBAAqB;QACrC,MAAMjB,IAAIkB,IAAI;QAEdnB,aAAaC,IAAImB,aAAa;IAClC;IAEAC,SAAS;QACL,MAAMpB,IAAIqB,KAAK;IACnB;IAEAvB,SAAS,kBAAkB;QACvBwB,GAAG,sBAAsB;YACrB,MAAMC,YAA2B;gBAC7BC,MAAM;YACV;YACA,MAAMC,WAAW,MAAMC,IAAAA,kBAAO,EAAC3B,YAC1B4B,IAAI,CAAC,SACLC,IAAI,CAACL;YAEVM,OAAOJ,SAASK,MAAM,EAAEC,IAAI,CAAC;YAC7BF,OAAOJ,SAASO,IAAI,CAACC,KAAK,CAACT,IAAI,EAAEU,OAAO,CAACX,UAAUC,IAAI;QAC3D;IACJ;AACJ"} \ No newline at end of file diff --git a/dist/infra/http/user.controller.js b/dist/infra/http/user.controller.js new file mode 100644 index 0000000..3d9417c --- /dev/null +++ b/dist/infra/http/user.controller.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "UserController", { + enumerable: true, + get: function() { + return UserController; + } +}); +const _createuser = require("../../application/ecommerce/use-case/create-user"); +const _common = require("@nestjs/common"); +const _createuserdto = require("./dto/create-user.dto"); +const _getuser = require("../../application/ecommerce/use-case/get-user"); +const _swagger = require("@nestjs/swagger"); +const _cachemanager = require("@nestjs/cache-manager"); +const _httpcacheinterceptor = require("../persistence/cache/interceptor/http-cache.interceptor"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let UserController = class UserController { + getAll() { + const response = this.getUserUseCase.execute({}); + return response; + } + create(createUserDto) { + const response = this.createUserUseCase.execute(createUserDto); + return response; + } + constructor(createUserUseCase, getUserUseCase){ + this.createUserUseCase = createUserUseCase; + this.getUserUseCase = getUserUseCase; + } +}; +_ts_decorate([ + (0, _common.Get)(''), + (0, _cachemanager.CacheKey)('users'), + (0, _common.UseInterceptors)(_httpcacheinterceptor.HttpCacheInterceptor), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", []), + _ts_metadata("design:returntype", void 0) +], UserController.prototype, "getAll", null); +_ts_decorate([ + (0, _common.Post)(''), + _ts_param(0, (0, _common.Body)()), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createuserdto.CreateUserDto === "undefined" ? Object : _createuserdto.CreateUserDto + ]), + _ts_metadata("design:returntype", void 0) +], UserController.prototype, "create", null); +UserController = _ts_decorate([ + (0, _common.Controller)('/user'), + (0, _swagger.ApiTags)('User'), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _createuser.CreateUserUseCase === "undefined" ? Object : _createuser.CreateUserUseCase, + typeof _getuser.GetUserUseCase === "undefined" ? Object : _getuser.GetUserUseCase + ]) +], UserController); + +//# sourceMappingURL=user.controller.js.map \ No newline at end of file diff --git a/dist/infra/http/user.controller.js.map b/dist/infra/http/user.controller.js.map new file mode 100644 index 0000000..d6fad5f --- /dev/null +++ b/dist/infra/http/user.controller.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/http/user.controller.ts"],"sourcesContent":["import { CreateUserUseCase } from '@app/application/ecommerce/use-case/create-user';\nimport {\n Body,\n Controller,\n Get,\n Post,\n UseInterceptors\n} from '@nestjs/common';\nimport { CreateUserDto } from './dto/create-user.dto';\nimport { GetUserUseCase } from '@app/application/ecommerce/use-case/get-user';\nimport { ApiTags } from '@nestjs/swagger';\nimport { CacheKey } from '@nestjs/cache-manager';\nimport { HttpCacheInterceptor } from '@app/infra/persistence/cache/interceptor/http-cache.interceptor';\n\n@Controller('/user')\n@ApiTags('User')\nexport class UserController {\n constructor(\n private createUserUseCase: CreateUserUseCase,\n private getUserUseCase: GetUserUseCase\n ) { }\n\n @Get('')\n @CacheKey('users')\n @UseInterceptors(HttpCacheInterceptor)\n getAll() {\n const response = this.getUserUseCase.execute({});\n return response;\n }\n\n @Post('')\n create(@Body() createUserDto: CreateUserDto) {\n const response = this.createUserUseCase.execute(createUserDto);\n return response;\n }\n}\n"],"names":["UserController","getAll","response","getUserUseCase","execute","create","createUserDto","createUserUseCase","constructor","Get","CacheKey","UseInterceptors","HttpCacheInterceptor","Post","Body","Controller","ApiTags"],"mappings":";;;;+BAgBaA;;;eAAAA;;;4BAhBqB;wBAO3B;+BACuB;yBACC;yBACP;8BACC;sCACY;;;;;;;;;;;;;;;AAI9B,IAAA,AAAMA,iBAAN,MAAMA;IASTC,SAAS;QACL,MAAMC,WAAW,IAAI,CAACC,cAAc,CAACC,OAAO,CAAC,CAAC;QAC9C,OAAOF;IACX;IAGAG,OAAO,AAAQC,aAA4B,EAAE;QACzC,MAAMJ,WAAW,IAAI,CAACK,iBAAiB,CAACH,OAAO,CAACE;QAChD,OAAOJ;IACX;IAjBAM,YACI,AAAQD,iBAAoC,EAC5C,AAAQJ,cAA8B,CACxC;aAFUI,oBAAAA;aACAJ,iBAAAA;IACR;AAeR;;IAbKM,IAAAA,WAAG,EAAC;IACJC,IAAAA,sBAAQ,EAAC;IACTC,IAAAA,uBAAe,EAACC,0CAAoB;;;;GAR5BZ;;IAcRa,IAAAA,YAAI,EAAC;IACEC,aAAAA,IAAAA,YAAI;;;eAAkB,4BAAa,4BAAb,4BAAa;;;GAflCd;AAAAA;IAFZe,IAAAA,kBAAU,EAAC;IACXC,IAAAA,gBAAO,EAAC;;;eAG0B,6BAAiB,4BAAjB,6BAAiB;eACpB,uBAAc,4BAAd,uBAAc;;GAHjChB"} \ No newline at end of file diff --git a/dist/infra/payment/payment.module.js b/dist/infra/payment/payment.module.js new file mode 100644 index 0000000..a81f86f --- /dev/null +++ b/dist/infra/payment/payment.module.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PaymentModule", { + enumerable: true, + get: function() { + return PaymentModule; + } +}); +const _common = require("@nestjs/common"); +const _stripemodule = require("./stripe/stripe.module"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let PaymentModule = class PaymentModule { +}; +PaymentModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _stripemodule.StripeModule + ], + exports: [ + _stripemodule.StripeModule + ] + }) +], PaymentModule); + +//# sourceMappingURL=payment.module.js.map \ No newline at end of file diff --git a/dist/infra/payment/payment.module.js.map b/dist/infra/payment/payment.module.js.map new file mode 100644 index 0000000..6785051 --- /dev/null +++ b/dist/infra/payment/payment.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/payment/payment.module.ts"],"sourcesContent":["import { Module } from '@nestjs/common';\nimport { StripeModule } from './stripe/stripe.module';\n\n@Module({\n imports: [StripeModule],\n exports: [StripeModule],\n})\nexport class PaymentModule { }\n"],"names":["PaymentModule","Module","imports","StripeModule","exports"],"mappings":";;;;+BAOaA;;;eAAAA;;;wBAPU;8BACM;;;;;;;AAMtB,IAAA,AAAMA,gBAAN,MAAMA;AAAgB;AAAhBA;IAJZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YAACC,0BAAY;SAAC;QACvBC,SAAS;YAACD,0BAAY;SAAC;IAC3B;GACaH"} \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe-payment.repositoy.js b/dist/infra/payment/stripe/stripe-payment.repositoy.js new file mode 100644 index 0000000..b8df926 --- /dev/null +++ b/dist/infra/payment/stripe/stripe-payment.repositoy.js @@ -0,0 +1,111 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "StripePaymentRepository", { + enumerable: true, + get: function() { + return StripePaymentRepository; + } +}); +const _orderrepositoy = require("../../../application/ecommerce/ports/order.repositoy"); +const _env = require("../../env"); +const _common = require("@nestjs/common"); +const _stripeservice = require("./stripe.service"); +const _order = require("../../../domain/ecommerce/order"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let StripePaymentRepository = class StripePaymentRepository { + async generateUrl(orderId) { + const order = await this.orderRepository.findById(orderId); + const settingsUrl = this.envService.get("CHECKOUT_SUCCESS_URL"); + if (!order) { + throw new Error("Order not found"); + } + const stripeSession = await this.stripe.checkout.sessions.create({ + success_url: settingsUrl, + cancel_url: settingsUrl, + payment_method_types: [ + "card" + ], + mode: "payment", + billing_address_collection: "auto", + // customer_email: 'test@gmail.com', // this system doesn't have email + line_items: order.orderProduct.map((item)=>{ + return { + price_data: { + currency: "USD", + product_data: { + name: item.product + }, + unit_amount: item.price * 100 + }, + quantity: 1 + }; + }), + metadata: { + orderId: order.id + } + }); + return stripeSession.url || ""; + } + constructEvent({ req, signature }) { + let event; + try { + event = this.stripe.webhooks.constructEvent(req, signature, this.envService.get("STRIPE_WEBHOOK_SECRET")); + } catch (error) { + throw new Error("Webhook error"); + } + return event; + } + async complete(orderData) { + const event = this.constructEvent(orderData); + const session = event.data.object; + if (event.type === "checkout.session.completed") { + try { + const paymentIntentId = await this.stripe.checkout.sessions.retrieve(session.id); + const orderId = session?.metadata?.orderId; + if (!orderId) { + throw new Error("Invalid event: orderId not found"); + } + const order = await this.orderRepository.findById(orderId); + if (order.status === "paid") { + throw new Error("Order already paid"); + } + const updatedOrder = await this.orderRepository.update(orderId, new _order.Order({ + ...order.currentState, + status: 'paid', + paymentId: paymentIntentId.id, + paymentMethod: "stripe" + })); + return updatedOrder; + } catch (error) { + throw new Error("Invalid event: subscription not found"); + } + } + } + constructor(orderRepository, stripeService, envService){ + this.orderRepository = orderRepository; + this.stripeService = stripeService; + this.envService = envService; + this.stripe = this.stripeService.getInstance(); + } +}; +StripePaymentRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _orderrepositoy.OrderRepository === "undefined" ? Object : _orderrepositoy.OrderRepository, + typeof _stripeservice.StripeService === "undefined" ? Object : _stripeservice.StripeService, + typeof _env.EnvService === "undefined" ? Object : _env.EnvService + ]) +], StripePaymentRepository); + +//# sourceMappingURL=stripe-payment.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe-payment.repositoy.js.map b/dist/infra/payment/stripe/stripe-payment.repositoy.js.map new file mode 100644 index 0000000..da54940 --- /dev/null +++ b/dist/infra/payment/stripe/stripe-payment.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/payment/stripe/stripe-payment.repositoy.ts"],"sourcesContent":["import { OrderRepository } from \"@app/application/ecommerce/ports/order.repositoy\";\nimport { PaymentRepository } from \"@app/application/ecommerce/ports/payment.repositoy\";\nimport { EnvService } from \"@app/infra/env\";\nimport { Injectable } from \"@nestjs/common\";\nimport Stripe from \"stripe\";\nimport { StripeService } from \"./stripe.service\";\nimport { Order } from \"@app/domain/ecommerce/order\";\n\n@Injectable()\nexport class StripePaymentRepository implements PaymentRepository {\n private stripe: Stripe;\n\n constructor(\n private orderRepository: OrderRepository,\n private stripeService: StripeService,\n private envService: EnvService\n ) {\n this.stripe = this.stripeService.getInstance();\n }\n\n async generateUrl(orderId: string): Promise {\n const order = await this.orderRepository.findById(orderId);\n const settingsUrl = this.envService.get(\"CHECKOUT_SUCCESS_URL\");\n\n if (!order) {\n throw new Error(\"Order not found\");\n }\n\n const stripeSession = await this.stripe.checkout.sessions.create({\n success_url: settingsUrl,\n cancel_url: settingsUrl,\n payment_method_types: [\"card\"],\n mode: \"payment\",\n billing_address_collection: \"auto\",\n // customer_email: 'test@gmail.com', // this system doesn't have email\n line_items: order.orderProduct.map((item) => {\n return {\n price_data: {\n currency: \"USD\",\n product_data: {\n name: item.product,\n },\n unit_amount: item.price * 100,\n },\n quantity: 1,\n };\n }),\n metadata: {\n orderId: order.id,\n },\n });\n\n return stripeSession.url || \"\";\n }\n\n private constructEvent({\n req,\n signature,\n }: {\n req: string | Buffer,\n signature: string,\n }): Stripe.Event {\n let event: Stripe.Event;\n\n try {\n event = this.stripe.webhooks.constructEvent(\n req,\n signature,\n this.envService.get(\"STRIPE_WEBHOOK_SECRET\")\n );\n } catch (error) {\n throw new Error(\"Webhook error\");\n }\n\n return event;\n }\n\n async complete(orderData: any): Promise {\n const event = this.constructEvent(orderData);\n const session = event.data.object as Stripe.Checkout.Session;\n\n if (event.type === \"checkout.session.completed\") {\n try {\n const paymentIntentId = await this.stripe.checkout.sessions.retrieve(session.id);\n\n const orderId = session?.metadata?.orderId;\n\n if (!orderId) {\n throw new Error(\"Invalid event: orderId not found\");\n }\n\n const order = await this.orderRepository.findById(orderId);\n\n if (order.status === \"paid\") {\n throw new Error(\"Order already paid\");\n }\n\n const updatedOrder = await this.orderRepository.update(\n orderId,\n new Order({\n ...order.currentState,\n status: 'paid',\n paymentId: paymentIntentId.id,\n paymentMethod: \"stripe\",\n })\n );\n\n return updatedOrder;\n } catch (error) {\n throw new Error(\"Invalid event: subscription not found\");\n }\n }\n\n }\n}"],"names":["StripePaymentRepository","generateUrl","orderId","order","orderRepository","findById","settingsUrl","envService","get","Error","stripeSession","stripe","checkout","sessions","create","success_url","cancel_url","payment_method_types","mode","billing_address_collection","line_items","orderProduct","map","item","price_data","currency","product_data","name","product","unit_amount","price","quantity","metadata","id","url","constructEvent","req","signature","event","webhooks","error","complete","orderData","session","data","object","type","paymentIntentId","retrieve","status","updatedOrder","update","Order","currentState","paymentId","paymentMethod","constructor","stripeService","getInstance","Injectable"],"mappings":";;;;+BASaA;;;eAAAA;;;gCATmB;qBAEL;wBACA;+BAEG;uBACR;;;;;;;;;;AAGf,IAAA,AAAMA,0BAAN,MAAMA;IAWX,MAAMC,YAAYC,OAAe,EAAmB;QAClD,MAAMC,QAAQ,MAAM,IAAI,CAACC,eAAe,CAACC,QAAQ,CAACH;QAClD,MAAMI,cAAc,IAAI,CAACC,UAAU,CAACC,GAAG,CAAC;QAExC,IAAI,CAACL,OAAO;YACV,MAAM,IAAIM,MAAM;QAClB;QAEA,MAAMC,gBAAgB,MAAM,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACC,MAAM,CAAC;YAC/DC,aAAaT;YACbU,YAAYV;YACZW,sBAAsB;gBAAC;aAAO;YAC9BC,MAAM;YACNC,4BAA4B;YAC5B,sEAAsE;YACtEC,YAAYjB,MAAMkB,YAAY,CAACC,GAAG,CAAC,CAACC;gBAClC,OAAO;oBACLC,YAAY;wBACVC,UAAU;wBACVC,cAAc;4BACZC,MAAMJ,KAAKK,OAAO;wBACpB;wBACAC,aAAaN,KAAKO,KAAK,GAAG;oBAC5B;oBACAC,UAAU;gBACZ;YACF;YACAC,UAAU;gBACR9B,SAASC,MAAM8B,EAAE;YACnB;QACF;QAEA,OAAOvB,cAAcwB,GAAG,IAAI;IAC9B;IAEQC,eAAe,EACrBC,GAAG,EACHC,SAAS,EAIV,EAAgB;QACf,IAAIC;QAEJ,IAAI;YACFA,QAAQ,IAAI,CAAC3B,MAAM,CAAC4B,QAAQ,CAACJ,cAAc,CACzCC,KACAC,WACA,IAAI,CAAC9B,UAAU,CAACC,GAAG,CAAC;QAExB,EAAE,OAAOgC,OAAO;YACd,MAAM,IAAI/B,MAAM;QAClB;QAEA,OAAO6B;IACT;IAEA,MAAMG,SAASC,SAAc,EAAkB;QAC7C,MAAMJ,QAAQ,IAAI,CAACH,cAAc,CAACO;QAClC,MAAMC,UAAUL,MAAMM,IAAI,CAACC,MAAM;QAEjC,IAAIP,MAAMQ,IAAI,KAAK,8BAA8B;YAC/C,IAAI;gBACF,MAAMC,kBAAkB,MAAM,IAAI,CAACpC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACmC,QAAQ,CAACL,QAAQV,EAAE;gBAE/E,MAAM/B,UAAUyC,SAASX,UAAU9B;gBAEnC,IAAI,CAACA,SAAS;oBACZ,MAAM,IAAIO,MAAM;gBAClB;gBAEA,MAAMN,QAAQ,MAAM,IAAI,CAACC,eAAe,CAACC,QAAQ,CAACH;gBAElD,IAAIC,MAAM8C,MAAM,KAAK,QAAQ;oBAC3B,MAAM,IAAIxC,MAAM;gBAClB;gBAEA,MAAMyC,eAAe,MAAM,IAAI,CAAC9C,eAAe,CAAC+C,MAAM,CACpDjD,SACA,IAAIkD,YAAK,CAAC;oBACR,GAAGjD,MAAMkD,YAAY;oBACrBJ,QAAQ;oBACRK,WAAWP,gBAAgBd,EAAE;oBAC7BsB,eAAe;gBACjB;gBAGF,OAAOL;YACT,EAAE,OAAOV,OAAO;gBACd,MAAM,IAAI/B,MAAM;YAClB;QACF;IAEF;IArGA+C,YACE,AAAQpD,eAAgC,EACxC,AAAQqD,aAA4B,EACpC,AAAQlD,UAAsB,CAC9B;aAHQH,kBAAAA;aACAqD,gBAAAA;aACAlD,aAAAA;QAER,IAAI,CAACI,MAAM,GAAG,IAAI,CAAC8C,aAAa,CAACC,WAAW;IAC9C;AAgGF;AAzGa1D;IADZ2D,IAAAA,kBAAU;;;eAKkB,+BAAe,4BAAf,+BAAe;eACjB,4BAAa,4BAAb,4BAAa;eAChB,eAAU,4BAAV,eAAU;;GANrB3D"} \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe.module.js b/dist/infra/payment/stripe/stripe.module.js new file mode 100644 index 0000000..59607e6 --- /dev/null +++ b/dist/infra/payment/stripe/stripe.module.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "StripeModule", { + enumerable: true, + get: function() { + return StripeModule; + } +}); +const _paymentrepositoy = require("../../../application/ecommerce/ports/payment.repositoy"); +const _common = require("@nestjs/common"); +const _stripepaymentrepositoy = require("./stripe-payment.repositoy"); +const _env = require("../../env"); +const _stripeservice = require("./stripe.service"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let StripeModule = class StripeModule { +}; +StripeModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _env.EnvModule + ], + providers: [ + _stripeservice.StripeService, + { + provide: _paymentrepositoy.PaymentRepository, + useClass: _stripepaymentrepositoy.StripePaymentRepository + } + ], + exports: [ + _paymentrepositoy.PaymentRepository + ] + }) +], StripeModule); + +//# sourceMappingURL=stripe.module.js.map \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe.module.js.map b/dist/infra/payment/stripe/stripe.module.js.map new file mode 100644 index 0000000..bfc5edc --- /dev/null +++ b/dist/infra/payment/stripe/stripe.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/payment/stripe/stripe.module.ts"],"sourcesContent":["import { PaymentRepository } from '@app/application/ecommerce/ports/payment.repositoy';\nimport { Module } from '@nestjs/common';\n\n// Non exported\nimport { StripePaymentRepository } from './stripe-payment.repositoy';\nimport { EnvModule } from '@app/infra/env';\nimport { StripeService } from './stripe.service';\n\n@Module({\n imports: [\n EnvModule\n ],\n providers: [\n StripeService,\n {\n provide: PaymentRepository,\n useClass: StripePaymentRepository\n },\n ],\n exports: [PaymentRepository],\n})\nexport class StripeModule { }\n"],"names":["StripeModule","Module","imports","EnvModule","providers","StripeService","provide","PaymentRepository","useClass","StripePaymentRepository","exports"],"mappings":";;;;+BAqBaA;;;eAAAA;;;kCArBqB;wBACX;wCAGiB;qBACd;+BACI;;;;;;;AAevB,IAAA,AAAMA,eAAN,MAAMA;AAAe;AAAfA;IAbZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YACLC,cAAS;SACZ;QACDC,WAAW;YACPC,4BAAa;YACb;gBACIC,SAASC,mCAAiB;gBAC1BC,UAAUC,+CAAuB;YACrC;SACH;QACDC,SAAS;YAACH,mCAAiB;SAAC;IAChC;GACaP"} \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe.service.js b/dist/infra/payment/stripe/stripe.service.js new file mode 100644 index 0000000..9faa4e2 --- /dev/null +++ b/dist/infra/payment/stripe/stripe.service.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "StripeService", { + enumerable: true, + get: function() { + return StripeService; + } +}); +const _env = require("../../env"); +const _common = require("@nestjs/common"); +const _stripe = /*#__PURE__*/ _interop_require_default(require("stripe")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let StripeService = class StripeService { + getInstance() { + const STRIPE_API_KEY = this.envService.get("STRIPE_API_KEY"); + const stripe = new _stripe.default(STRIPE_API_KEY, { + apiVersion: "2023-10-16", + typescript: true + }); + return stripe; + } + constructor(envService){ + this.envService = envService; + } +}; +StripeService = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _env.EnvService === "undefined" ? Object : _env.EnvService + ]) +], StripeService); + +//# sourceMappingURL=stripe.service.js.map \ No newline at end of file diff --git a/dist/infra/payment/stripe/stripe.service.js.map b/dist/infra/payment/stripe/stripe.service.js.map new file mode 100644 index 0000000..d7bccbf --- /dev/null +++ b/dist/infra/payment/stripe/stripe.service.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/payment/stripe/stripe.service.ts"],"sourcesContent":["import { EnvService } from '@app/infra/env';\nimport { Injectable } from '@nestjs/common';\nimport Stripe from \"stripe\";\n\n@Injectable()\nexport class StripeService {\n constructor(\n private envService: EnvService\n ) { }\n\n getInstance(): Stripe {\n const STRIPE_API_KEY = this.envService.get(\"STRIPE_API_KEY\");\n\n const stripe = new Stripe(STRIPE_API_KEY, {\n apiVersion: \"2023-10-16\",\n typescript: true,\n });\n\n return stripe\n }\n}\n"],"names":["StripeService","getInstance","STRIPE_API_KEY","envService","get","stripe","Stripe","apiVersion","typescript","constructor","Injectable"],"mappings":";;;;+BAKaA;;;eAAAA;;;qBALc;wBACA;+DACR;;;;;;;;;;;;;;;AAGZ,IAAA,AAAMA,gBAAN,MAAMA;IAKTC,cAAsB;QAClB,MAAMC,iBAAiB,IAAI,CAACC,UAAU,CAACC,GAAG,CAAC;QAE3C,MAAMC,SAAS,IAAIC,eAAM,CAACJ,gBAAgB;YACtCK,YAAY;YACZC,YAAY;QAChB;QAEA,OAAOH;IACX;IAbAI,YACI,AAAQN,UAAsB,CAChC;aADUA,aAAAA;IACR;AAYR;AAfaH;IADZU,IAAAA,kBAAU;;;eAGiB,eAAU,4BAAV,eAAU;;GAFzBV"} \ No newline at end of file diff --git a/dist/infra/persistence/cache/cache.module.js b/dist/infra/persistence/cache/cache.module.js new file mode 100644 index 0000000..b8f5d39 --- /dev/null +++ b/dist/infra/persistence/cache/cache.module.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CacheManagerModule", { + enumerable: true, + get: function() { + return CacheManagerModule; + } +}); +const _env = require("../../env"); +const _cachemanager = require("@nestjs/cache-manager"); +const _common = require("@nestjs/common"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let CacheManagerModule = class CacheManagerModule { +}; +CacheManagerModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _cachemanager.CacheModule.registerAsync({ + isGlobal: false, + imports: [ + _env.EnvModule + ], + useFactory: async (configService)=>({ + ttl: configService.get('CACHE_TTL'), + max: configService.get('CACHE_MAX') + }), + inject: [ + _env.EnvService + ] + }) + ], + exports: [ + _cachemanager.CacheModule + ] + }) +], CacheManagerModule); + +//# sourceMappingURL=cache.module.js.map \ No newline at end of file diff --git a/dist/infra/persistence/cache/cache.module.js.map b/dist/infra/persistence/cache/cache.module.js.map new file mode 100644 index 0000000..bc4db86 --- /dev/null +++ b/dist/infra/persistence/cache/cache.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/persistence/cache/cache.module.ts"],"sourcesContent":["import { EnvModule, EnvService } from '@app/infra/env';\nimport { CacheModule } from '@nestjs/cache-manager';\nimport { Module } from '@nestjs/common';\n\n@Module({\n imports: [\n CacheModule.registerAsync({\n isGlobal: false,\n imports: [EnvModule],\n useFactory: async (configService: EnvService) => ({\n ttl: configService.get('CACHE_TTL'),\n max: configService.get('CACHE_MAX'),\n }),\n inject: [EnvService],\n }),\n ],\n exports: [CacheModule],\n})\nexport class CacheManagerModule { }\n"],"names":["CacheManagerModule","Module","imports","CacheModule","registerAsync","isGlobal","EnvModule","useFactory","configService","ttl","get","max","inject","EnvService","exports"],"mappings":";;;;+BAkBaA;;;eAAAA;;;qBAlByB;8BACV;wBACL;;;;;;;AAgBhB,IAAA,AAAMA,qBAAN,MAAMA;AAAqB;AAArBA;IAdZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YACLC,yBAAW,CAACC,aAAa,CAAC;gBACtBC,UAAU;gBACVH,SAAS;oBAACI,cAAS;iBAAC;gBACpBC,YAAY,OAAOC,gBAA+B,CAAA;wBAC9CC,KAAKD,cAAcE,GAAG,CAAC;wBACvBC,KAAKH,cAAcE,GAAG,CAAC;oBAC3B,CAAA;gBACAE,QAAQ;oBAACC,eAAU;iBAAC;YACxB;SACH;QACDC,SAAS;YAACX,yBAAW;SAAC;IAC1B;GACaH"} \ No newline at end of file diff --git a/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js b/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js new file mode 100644 index 0000000..f1c0675 --- /dev/null +++ b/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "HttpCacheInterceptor", { + enumerable: true, + get: function() { + return HttpCacheInterceptor; + } +}); +const _cachemanager = require("@nestjs/cache-manager"); +const _common = require("@nestjs/common"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let HttpCacheInterceptor = class HttpCacheInterceptor extends _cachemanager.CacheInterceptor { + trackBy(context) { + const request = context.switchToHttp().getRequest(); + const { httpAdapter } = this.httpAdapterHost; + const isGetRequest = httpAdapter.getRequestMethod(request) === 'GET'; + const excludePaths = []; + if (!isGetRequest || isGetRequest && excludePaths.includes(httpAdapter.getRequestUrl(request))) { + return undefined; + } + return httpAdapter.getRequestUrl(request); + } +}; +HttpCacheInterceptor = _ts_decorate([ + (0, _common.Injectable)() +], HttpCacheInterceptor); + +//# sourceMappingURL=http-cache.interceptor.js.map \ No newline at end of file diff --git a/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js.map b/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js.map new file mode 100644 index 0000000..2732fa6 --- /dev/null +++ b/dist/infra/persistence/cache/interceptor/http-cache.interceptor.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/cache/interceptor/http-cache.interceptor.ts"],"sourcesContent":["import { CacheInterceptor } from '@nestjs/cache-manager';\nimport { ExecutionContext, Injectable } from '@nestjs/common';\n\n@Injectable()\nexport class HttpCacheInterceptor extends CacheInterceptor {\n trackBy(context: ExecutionContext): string | undefined {\n const request = context.switchToHttp().getRequest();\n const { httpAdapter } = this.httpAdapterHost;\n\n const isGetRequest = httpAdapter.getRequestMethod(request) === 'GET';\n const excludePaths = [\n // Routes to be excluded\n ];\n if (\n !isGetRequest ||\n (isGetRequest &&\n excludePaths.includes(httpAdapter.getRequestUrl(request)))\n ) {\n return undefined;\n }\n return httpAdapter.getRequestUrl(request);\n }\n}"],"names":["HttpCacheInterceptor","CacheInterceptor","trackBy","context","request","switchToHttp","getRequest","httpAdapter","httpAdapterHost","isGetRequest","getRequestMethod","excludePaths","includes","getRequestUrl","undefined","Injectable"],"mappings":";;;;+BAIaA;;;eAAAA;;;8BAJoB;wBACY;;;;;;;AAGtC,IAAA,AAAMA,uBAAN,MAAMA,6BAA6BC,8BAAgB;IACtDC,QAAQC,OAAyB,EAAsB;QACnD,MAAMC,UAAUD,QAAQE,YAAY,GAAGC,UAAU;QACjD,MAAM,EAAEC,WAAW,EAAE,GAAG,IAAI,CAACC,eAAe;QAE5C,MAAMC,eAAeF,YAAYG,gBAAgB,CAACN,aAAa;QAC/D,MAAMO,eAAe,EAEpB;QACD,IACI,CAACF,gBACAA,gBACGE,aAAaC,QAAQ,CAACL,YAAYM,aAAa,CAACT,WACtD;YACE,OAAOU;QACX;QACA,OAAOP,YAAYM,aAAa,CAACT;IACrC;AACJ;AAlBaJ;IADZe,IAAAA,kBAAU;GACEf"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/order-product.entity.js b/dist/infra/persistence/mongoose/entities/order-product.entity.js new file mode 100644 index 0000000..61ca925 --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/order-product.entity.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + OrderProduct: function() { + return OrderProduct; + }, + OrderProductSchema: function() { + return OrderProductSchema; + } +}); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_default(require("mongoose")); +const _productentity = require("./product.entity"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let OrderProduct = class OrderProduct { +}; +_ts_decorate([ + (0, _mongoose.Prop)({ + type: _mongoose1.default.Schema.Types.ObjectId, + ref: _productentity.Product.name + }), + _ts_metadata("design:type", typeof _productentity.Product === "undefined" ? Object : _productentity.Product) +], OrderProduct.prototype, "product", void 0); +_ts_decorate([ + (0, _mongoose.Prop)(), + _ts_metadata("design:type", Number) +], OrderProduct.prototype, "price", void 0); +OrderProduct = _ts_decorate([ + (0, _mongoose.Schema)() +], OrderProduct); +const OrderProductSchema = _mongoose.SchemaFactory.createForClass(OrderProduct); + +//# sourceMappingURL=order-product.entity.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/order-product.entity.js.map b/dist/infra/persistence/mongoose/entities/order-product.entity.js.map new file mode 100644 index 0000000..e99eb45 --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/order-product.entity.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/entities/order-product.entity.ts"],"sourcesContent":["import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';\nimport mongoose, { HydratedDocument } from 'mongoose';\nimport { Product } from './product.entity';\n\nexport type OrderProductDocument = HydratedDocument;\n\n@Schema()\nexport class OrderProduct {\n _id: mongoose.Schema.Types.ObjectId;\n\n @Prop({ type: mongoose.Schema.Types.ObjectId, ref: Product.name })\n product: Product;\n\n @Prop()\n price: number;\n}\n\nexport const OrderProductSchema = SchemaFactory.createForClass(OrderProduct);\n"],"names":["OrderProduct","OrderProductSchema","Prop","type","mongoose","Schema","Types","ObjectId","ref","Product","name","SchemaFactory","createForClass"],"mappings":";;;;;;;;;;;IAOaA,YAAY;eAAZA;;IAUAC,kBAAkB;eAAlBA;;;0BAjB+B;kEACD;+BACnB;;;;;;;;;;;;;;;AAKjB,IAAA,AAAMD,eAAN,MAAMA;AAQb;;IALGE,IAAAA,cAAI,EAAC;QAAEC,MAAMC,kBAAQ,CAACC,MAAM,CAACC,KAAK,CAACC,QAAQ;QAAEC,KAAKC,sBAAO,CAACC,IAAI;IAAC;uCACvD,sBAAO,4BAAP,sBAAO;GAJLV;;IAMVE,IAAAA,cAAI;;GANMF;AAAAA;IADZK,IAAAA,gBAAM;GACML;AAUN,MAAMC,qBAAqBU,uBAAa,CAACC,cAAc,CAACZ"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/order.entity.js b/dist/infra/persistence/mongoose/entities/order.entity.js new file mode 100644 index 0000000..3a86e14 --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/order.entity.js @@ -0,0 +1,86 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Order: function() { + return Order; + }, + OrderSchema: function() { + return OrderSchema; + } +}); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_default(require("mongoose")); +const _classtransformer = require("class-transformer"); +const _orderproductentity = require("./order-product.entity"); +const _userentity = require("./user.entity"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let Order = class Order { +}; +_ts_decorate([ + (0, _mongoose.Prop)({ + type: _mongoose1.default.Schema.Types.ObjectId, + ref: _userentity.User.name + }), + (0, _classtransformer.Type)(()=>_userentity.User), + _ts_metadata("design:type", typeof _userentity.User === "undefined" ? Object : _userentity.User) +], Order.prototype, "user", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + type: [ + { + type: _mongoose1.default.Schema.Types.ObjectId, + ref: _orderproductentity.OrderProduct.name + } + ] + }), + _ts_metadata("design:type", Array) +], Order.prototype, "orderProduct", void 0); +_ts_decorate([ + (0, _mongoose.Prop)(), + _ts_metadata("design:type", Number) +], Order.prototype, "total", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + default: 'open' + }), + _ts_metadata("design:type", String) +], Order.prototype, "status", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + index: true + }), + _ts_metadata("design:type", String) +], Order.prototype, "paymentId", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + index: true + }), + _ts_metadata("design:type", String) +], Order.prototype, "paymentMethod", void 0); +Order = _ts_decorate([ + (0, _mongoose.Schema)() +], Order); +const OrderSchema = _mongoose.SchemaFactory.createForClass(Order); + +//# sourceMappingURL=order.entity.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/order.entity.js.map b/dist/infra/persistence/mongoose/entities/order.entity.js.map new file mode 100644 index 0000000..e999661 --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/order.entity.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/entities/order.entity.ts"],"sourcesContent":["import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';\nimport mongoose, { HydratedDocument } from 'mongoose';\nimport { Type } from 'class-transformer';\nimport { OrderProduct } from './order-product.entity';\nimport { User } from './user.entity';\n\nexport type OrderDocument = HydratedDocument;\n\n@Schema()\nexport class Order {\n _id: mongoose.Schema.Types.ObjectId;\n\n @Prop({ type: mongoose.Schema.Types.ObjectId, ref: User.name, })\n @Type(() => User)\n user: User;\n\n @Prop({\n type: [{ type: mongoose.Schema.Types.ObjectId, ref: OrderProduct.name }],\n })\n orderProduct: OrderProduct[];\n\n @Prop()\n total: number;\n\n @Prop({ default: 'open' })\n status: 'paid' | 'open' | 'canceled';\n\n @Prop({ index: true })\n paymentId?: string;\n\n @Prop({ index: true })\n paymentMethod?: 'stripe' | 'paddle' | 'paypal' | 'other';\n}\n\nconst OrderSchema = SchemaFactory.createForClass(Order);\n\nexport { OrderSchema };\n"],"names":["Order","OrderSchema","Prop","type","mongoose","Schema","Types","ObjectId","ref","User","name","Type","OrderProduct","default","index","SchemaFactory","createForClass"],"mappings":";;;;;;;;;;;IASaA,KAAK;eAALA;;IA2BJC,WAAW;eAAXA;;;0BApCmC;kEACD;kCACtB;oCACQ;4BACR;;;;;;;;;;;;;;;AAKd,IAAA,AAAMD,QAAN,MAAMA;AAuBb;;IApBGE,IAAAA,cAAI,EAAC;QAAEC,MAAMC,kBAAQ,CAACC,MAAM,CAACC,KAAK,CAACC,QAAQ;QAAEC,KAAKC,gBAAI,CAACC,IAAI;IAAE;IAC7DC,IAAAA,sBAAI,EAAC,IAAMF,gBAAI;uCACV,gBAAI,4BAAJ,gBAAI;GALCT;;IAOVE,IAAAA,cAAI,EAAC;QACJC,MAAM;YAAC;gBAAEA,MAAMC,kBAAQ,CAACC,MAAM,CAACC,KAAK,CAACC,QAAQ;gBAAEC,KAAKI,gCAAY,CAACF,IAAI;YAAC;SAAE;IAC1E;;GATWV;;IAYVE,IAAAA,cAAI;;GAZMF;;IAeVE,IAAAA,cAAI,EAAC;QAAEW,SAAS;IAAO;;GAfbb;;IAkBVE,IAAAA,cAAI,EAAC;QAAEY,OAAO;IAAK;;GAlBTd;;IAqBVE,IAAAA,cAAI,EAAC;QAAEY,OAAO;IAAK;;GArBTd;AAAAA;IADZK,IAAAA,gBAAM;GACML;AAyBb,MAAMC,cAAcc,uBAAa,CAACC,cAAc,CAAChB"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/product.entity.js b/dist/infra/persistence/mongoose/entities/product.entity.js new file mode 100644 index 0000000..cacb06d --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/product.entity.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Product: function() { + return Product; + }, + ProductSchema: function() { + return ProductSchema; + } +}); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_default(require("mongoose")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let Product = class Product { +}; +_ts_decorate([ + (0, _mongoose.Prop)(), + _ts_metadata("design:type", String) +], Product.prototype, "title", void 0); +_ts_decorate([ + (0, _mongoose.Prop)(), + _ts_metadata("design:type", Number) +], Product.prototype, "price", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + type: [ + { + type: _mongoose1.default.Schema.Types.ObjectId, + ref: 'OrderProduct' + } + ] + }), + _ts_metadata("design:type", Array) +], Product.prototype, "orderProduct", void 0); +Product = _ts_decorate([ + (0, _mongoose.Schema)() +], Product); +const ProductSchema = _mongoose.SchemaFactory.createForClass(Product); + +//# sourceMappingURL=product.entity.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/product.entity.js.map b/dist/infra/persistence/mongoose/entities/product.entity.js.map new file mode 100644 index 0000000..0d49f8a --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/product.entity.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/entities/product.entity.ts"],"sourcesContent":["import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';\nimport mongoose, { HydratedDocument } from 'mongoose';\nimport { OrderProduct } from './order-product.entity';\n\nexport type ProductDocument = HydratedDocument;\n\n@Schema()\nexport class Product {\n _id: mongoose.Schema.Types.ObjectId;\n\n @Prop()\n title: string;\n\n @Prop()\n price: number;\n\n @Prop({ type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'OrderProduct' }] })\n orderProduct: OrderProduct[];\n}\n\nexport const ProductSchema = SchemaFactory.createForClass(Product);\n"],"names":["Product","ProductSchema","Prop","type","mongoose","Schema","Types","ObjectId","ref","SchemaFactory","createForClass"],"mappings":";;;;;;;;;;;IAOaA,OAAO;eAAPA;;IAaAC,aAAa;eAAbA;;;0BApB+B;kEACD;;;;;;;;;;;;;;;AAMpC,IAAA,AAAMD,UAAN,MAAMA;AAWb;;IARGE,IAAAA,cAAI;;GAHMF;;IAMVE,IAAAA,cAAI;;GANMF;;IASVE,IAAAA,cAAI,EAAC;QAAEC,MAAM;YAAC;gBAAEA,MAAMC,kBAAQ,CAACC,MAAM,CAACC,KAAK,CAACC,QAAQ;gBAAEC,KAAK;YAAe;SAAE;IAAC;;GATnER;AAAAA;IADZK,IAAAA,gBAAM;GACML;AAaN,MAAMC,gBAAgBQ,uBAAa,CAACC,cAAc,CAACV"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/user.entity.js b/dist/infra/persistence/mongoose/entities/user.entity.js new file mode 100644 index 0000000..35c7f2b --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/user.entity.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + User: function() { + return User; + }, + UserSchema: function() { + return UserSchema; + } +}); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_default(require("mongoose")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let User = class User { +}; +_ts_decorate([ + (0, _mongoose.Prop)(), + _ts_metadata("design:type", String) +], User.prototype, "name", void 0); +_ts_decorate([ + (0, _mongoose.Prop)({ + type: [ + { + type: _mongoose1.default.Schema.Types.ObjectId, + ref: 'Order' + } + ] + }), + _ts_metadata("design:type", Array) +], User.prototype, "orders", void 0); +User = _ts_decorate([ + (0, _mongoose.Schema)() +], User); +const UserSchema = _mongoose.SchemaFactory.createForClass(User); + +//# sourceMappingURL=user.entity.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/entities/user.entity.js.map b/dist/infra/persistence/mongoose/entities/user.entity.js.map new file mode 100644 index 0000000..440a6cf --- /dev/null +++ b/dist/infra/persistence/mongoose/entities/user.entity.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/entities/user.entity.ts"],"sourcesContent":["import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';\nimport mongoose, { HydratedDocument } from 'mongoose';\nimport { Order } from './order.entity';\n\nexport type UserDocument = HydratedDocument;\n\n@Schema()\nexport class User {\n _id: mongoose.Schema.Types.ObjectId;\n\n @Prop()\n name: string;\n\n @Prop({ type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Order' }] })\n orders: Order[];\n}\n\nconst UserSchema = SchemaFactory.createForClass(User);\n\nexport { UserSchema };\n"],"names":["User","UserSchema","Prop","type","mongoose","Schema","Types","ObjectId","ref","SchemaFactory","createForClass"],"mappings":";;;;;;;;;;;IAOaA,IAAI;eAAJA;;IAYJC,UAAU;eAAVA;;;0BAnBmC;kEACD;;;;;;;;;;;;;;;AAMpC,IAAA,AAAMD,OAAN,MAAMA;AAQb;;IALGE,IAAAA,cAAI;;GAHMF;;IAMVE,IAAAA,cAAI,EAAC;QAAEC,MAAM;YAAC;gBAAEA,MAAMC,kBAAQ,CAACC,MAAM,CAACC,KAAK,CAACC,QAAQ;gBAAEC,KAAK;YAAQ;SAAE;IAAC;;GAN5DR;AAAAA;IADZK,IAAAA,gBAAM;GACML;AAUb,MAAMC,aAAaQ,uBAAa,CAACC,cAAc,CAACV"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js new file mode 100644 index 0000000..23106ee --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseOrderDetailsMapper", { + enumerable: true, + get: function() { + return MongooseOrderDetailsMapper; + } +}); +const _order = require("../../../../domain/ecommerce/order"); +const _mongooseorderproductmapper = require("./mongoose-order-product-mapper"); +let MongooseOrderDetailsMapper = class MongooseOrderDetailsMapper { + static toDomain(entity) { + const model = new _order.Order({ + id: entity._id.toString(), + user: entity.user.toString(), + total: entity.total, + orderProduct: !!entity.orderProduct ? entity.orderProduct.map((order)=>_mongooseorderproductmapper.MongooseOrderProductMapper.toDomain(order)) : [], + status: entity.status, + paymentId: entity.paymentId, + paymentMethod: entity.paymentMethod + }); + return model; + } +}; + +//# sourceMappingURL=mongoose-order-details-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js.map new file mode 100644 index 0000000..8c5ae7b --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-order-details-mapper.ts"],"sourcesContent":["import { Order } from '@app/domain/ecommerce/order';\nimport { Order as OrderDocument } from '../entities/order.entity';\nimport { OrderProduct as OrderProductDocument } from '../entities/order-product.entity';\nimport { MongooseOrderProductMapper } from './mongoose-order-product-mapper';\n\ntype OrderWithOrderProductsDocument = OrderDocument & { orderProduct?: OrderProductDocument[] }\n\nexport class MongooseOrderDetailsMapper {\n static toDomain(entity: OrderWithOrderProductsDocument): Order {\n const model = new Order({\n id: entity._id.toString(),\n user: entity.user.toString(),\n total: entity.total,\n orderProduct: !!entity.orderProduct ? entity.orderProduct.map((order) => MongooseOrderProductMapper.toDomain(order)) : [],\n status: entity.status,\n paymentId: entity.paymentId,\n paymentMethod: entity.paymentMethod,\n });\n return model;\n }\n}\n"],"names":["MongooseOrderDetailsMapper","toDomain","entity","model","Order","id","_id","toString","user","total","orderProduct","map","order","MongooseOrderProductMapper","status","paymentId","paymentMethod"],"mappings":";;;;+BAOaA;;;eAAAA;;;uBAPS;4CAGqB;AAIpC,IAAA,AAAMA,6BAAN,MAAMA;IACX,OAAOC,SAASC,MAAsC,EAAS;QAC7D,MAAMC,QAAQ,IAAIC,YAAK,CAAC;YACtBC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,MAAMN,OAAOM,IAAI,CAACD,QAAQ;YAC1BE,OAAOP,OAAOO,KAAK;YACnBC,cAAc,CAAC,CAACR,OAAOQ,YAAY,GAAGR,OAAOQ,YAAY,CAACC,GAAG,CAAC,CAACC,QAAUC,sDAA0B,CAACZ,QAAQ,CAACW,UAAU,EAAE;YACzHE,QAAQZ,OAAOY,MAAM;YACrBC,WAAWb,OAAOa,SAAS;YAC3BC,eAAed,OAAOc,aAAa;QACrC;QACA,OAAOb;IACT;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js new file mode 100644 index 0000000..7f3caba --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseOrderMapper", { + enumerable: true, + get: function() { + return MongooseOrderMapper; + } +}); +const _order = require("../../../../domain/ecommerce/order"); +let MongooseOrderMapper = class MongooseOrderMapper { + static toDomain(entity) { + const model = new _order.Order({ + id: entity._id.toString(), + user: entity.user.toString(), + total: entity.total, + status: entity.status, + paymentId: entity.paymentId, + paymentMethod: entity.paymentMethod + }); + return model; + } + static toMongoose(order) { + return { + total: order.total, + user: order.user, + status: order.status, + paymentId: order?.paymentId, + paymentMethod: order?.paymentMethod + }; + } +}; + +//# sourceMappingURL=mongoose-order-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js.map new file mode 100644 index 0000000..3ef2239 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-order-mapper.ts"],"sourcesContent":["import { Order } from '@app/domain/ecommerce/order';\nimport { Order as OrderDocument } from '../entities/order.entity';\n\nexport class MongooseOrderMapper {\n static toDomain(entity: OrderDocument): Order {\n const model = new Order({\n id: entity._id.toString(),\n user: entity.user.toString(),\n total: entity.total,\n status: entity.status,\n paymentId: entity.paymentId,\n paymentMethod: entity.paymentMethod,\n });\n return model;\n }\n\n static toMongoose(order: Order) {\n return {\n total: order.total,\n user: order.user,\n status: order.status,\n paymentId: order?.paymentId,\n paymentMethod: order?.paymentMethod,\n }\n }\n}\n"],"names":["MongooseOrderMapper","toDomain","entity","model","Order","id","_id","toString","user","total","status","paymentId","paymentMethod","toMongoose","order"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAHS;AAGf,IAAA,AAAMA,sBAAN,MAAMA;IACX,OAAOC,SAASC,MAAqB,EAAS;QAC5C,MAAMC,QAAQ,IAAIC,YAAK,CAAC;YACtBC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,MAAMN,OAAOM,IAAI,CAACD,QAAQ;YAC1BE,OAAOP,OAAOO,KAAK;YACnBC,QAAQR,OAAOQ,MAAM;YACrBC,WAAWT,OAAOS,SAAS;YAC3BC,eAAeV,OAAOU,aAAa;QACrC;QACA,OAAOT;IACT;IAEA,OAAOU,WAAWC,KAAY,EAAE;QAC9B,OAAO;YACLL,OAAOK,MAAML,KAAK;YAClBD,MAAMM,MAAMN,IAAI;YAChBE,QAAQI,MAAMJ,MAAM;YACpBC,WAAWG,OAAOH;YAClBC,eAAeE,OAAOF;QACxB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js new file mode 100644 index 0000000..58d6551 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseOrderProductMapper", { + enumerable: true, + get: function() { + return MongooseOrderProductMapper; + } +}); +const _orderproduct = require("../../../../domain/ecommerce/order-product"); +let MongooseOrderProductMapper = class MongooseOrderProductMapper { + static toDomain(entity) { + const model = new _orderproduct.OrderProduct({ + id: entity._id.toString(), + product: entity.product.toString(), + price: entity.price + }); + return model; + } + static toMongoose(orderProducts) { + return { + price: orderProducts.price, + product: orderProducts.product + }; + } +}; + +//# sourceMappingURL=mongoose-order-product-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js.map new file mode 100644 index 0000000..ef85cd9 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-order-product-mapper.ts"],"sourcesContent":["import { OrderProduct } from '@app/domain/ecommerce/order-product';\nimport { OrderProduct as OrderProductDocument } from '../entities/order-product.entity';\n\nexport class MongooseOrderProductMapper {\n static toDomain(entity: OrderProductDocument): OrderProduct {\n const model = new OrderProduct({\n id: entity._id.toString(),\n product: entity.product.toString(),\n price: entity.price,\n });\n return model;\n }\n\n static toMongoose(\n orderProducts: OrderProduct,\n ): any {\n return {\n price: orderProducts.price,\n product: orderProducts.product,\n }\n }\n}\n"],"names":["MongooseOrderProductMapper","toDomain","entity","model","OrderProduct","id","_id","toString","product","price","toMongoose","orderProducts"],"mappings":";;;;+BAGaA;;;eAAAA;;;8BAHgB;AAGtB,IAAA,AAAMA,6BAAN,MAAMA;IACX,OAAOC,SAASC,MAA4B,EAAgB;QAC1D,MAAMC,QAAQ,IAAIC,0BAAY,CAAC;YAC7BC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,SAASN,OAAOM,OAAO,CAACD,QAAQ;YAChCE,OAAOP,OAAOO,KAAK;QACrB;QACA,OAAON;IACT;IAEA,OAAOO,WACLC,aAA2B,EACtB;QACL,OAAO;YACLF,OAAOE,cAAcF,KAAK;YAC1BD,SAASG,cAAcH,OAAO;QAChC;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js new file mode 100644 index 0000000..56f64f2 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseProductMapper", { + enumerable: true, + get: function() { + return MongooseProductMapper; + } +}); +const _product = require("../../../../domain/ecommerce/product"); +let MongooseProductMapper = class MongooseProductMapper { + static toDomain(entity) { + const model = new _product.Product({ + id: entity._id.toString(), + title: entity.title, + price: entity.price + }); + return model; + } + static toMongoose(product) { + return { + title: product.title, + price: product.price + }; + } +}; + +//# sourceMappingURL=mongoose-product-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js.map new file mode 100644 index 0000000..376b741 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-product-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-product-mapper.ts"],"sourcesContent":["import { Product } from '@app/domain/ecommerce/product';\nimport { Product as ProductDocument } from \"../entities/product.entity\";\n\nexport class MongooseProductMapper {\n static toDomain(entity: ProductDocument): Product {\n const model = new Product({\n id: entity._id.toString(),\n title: entity.title,\n price: entity.price,\n });\n return model;\n }\n\n static toMongoose(product: Product) {\n return {\n title: product.title,\n price: product.price,\n }\n }\n}\n"],"names":["MongooseProductMapper","toDomain","entity","model","Product","id","_id","toString","title","price","toMongoose","product"],"mappings":";;;;+BAGaA;;;eAAAA;;;yBAHW;AAGjB,IAAA,AAAMA,wBAAN,MAAMA;IACX,OAAOC,SAASC,MAAuB,EAAW;QAChD,MAAMC,QAAQ,IAAIC,gBAAO,CAAC;YACxBC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,OAAON,OAAOM,KAAK;YACnBC,OAAOP,OAAOO,KAAK;QACrB;QACA,OAAON;IACT;IAEA,OAAOO,WAAWC,OAAgB,EAAE;QAClC,OAAO;YACLH,OAAOG,QAAQH,KAAK;YACpBC,OAAOE,QAAQF,KAAK;QACtB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js new file mode 100644 index 0000000..ef2ea71 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseUserDetailsMapper", { + enumerable: true, + get: function() { + return MongooseUserDetailsMapper; + } +}); +const _user = require("../../../../domain/ecommerce/user"); +const _mongooseordermapper = require("./mongoose-order-mapper"); +let MongooseUserDetailsMapper = class MongooseUserDetailsMapper { + static toDomain(entity) { + const model = new _user.User({ + id: entity._id.toString(), + name: entity.name, + orders: !!entity.orders ? entity.orders.map((order)=>_mongooseordermapper.MongooseOrderMapper.toDomain(order)) : [] + }); + return model; + } +}; + +//# sourceMappingURL=mongoose-user-details-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js.map new file mode 100644 index 0000000..78b3161 --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-user-details-mapper.ts"],"sourcesContent":["import { User } from '@app/domain/ecommerce/user';\nimport { Order } from '../entities/order.entity';\nimport { User as UserDocument } from '../entities/user.entity';\nimport { MongooseOrderMapper } from './mongoose-order-mapper';\n\ntype UserWithOrderDocument = UserDocument & { orders?: Order[] }\n\nexport class MongooseUserDetailsMapper {\n static toDomain(entity: UserWithOrderDocument): User {\n const model = new User({\n id: entity._id.toString(),\n name: entity.name,\n orders: !!entity.orders ? entity.orders.map((order) => MongooseOrderMapper.toDomain(order)) : [],\n });\n return model;\n }\n}\n"],"names":["MongooseUserDetailsMapper","toDomain","entity","model","User","id","_id","toString","name","orders","map","order","MongooseOrderMapper"],"mappings":";;;;+BAOaA;;;eAAAA;;;sBAPQ;qCAGe;AAI7B,IAAA,AAAMA,4BAAN,MAAMA;IACX,OAAOC,SAASC,MAA6B,EAAQ;QACnD,MAAMC,QAAQ,IAAIC,UAAI,CAAC;YACrBC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,MAAMN,OAAOM,IAAI;YACjBC,QAAQ,CAAC,CAACP,OAAOO,MAAM,GAAGP,OAAOO,MAAM,CAACC,GAAG,CAAC,CAACC,QAAUC,wCAAmB,CAACX,QAAQ,CAACU,UAAU,EAAE;QAClG;QACA,OAAOR;IACT;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js b/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js new file mode 100644 index 0000000..33e555b --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseUserMapper", { + enumerable: true, + get: function() { + return MongooseUserMapper; + } +}); +const _user = require("../../../../domain/ecommerce/user"); +let MongooseUserMapper = class MongooseUserMapper { + static toDomain(entity) { + const model = new _user.User({ + id: entity._id.toString(), + name: entity.name + }); + return model; + } + static toMongoose(user) { + return { + name: user.name + }; + } +}; + +//# sourceMappingURL=mongoose-user-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js.map b/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js.map new file mode 100644 index 0000000..36d277a --- /dev/null +++ b/dist/infra/persistence/mongoose/mapper/mongoose-user-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/mapper/mongoose-user-mapper.ts"],"sourcesContent":["import { User } from '@app/domain/ecommerce/user';\nimport { User as UserDocument } from '../entities/user.entity';\n\nexport class MongooseUserMapper {\n static toDomain(entity: UserDocument): User {\n const model = new User({\n id: entity._id.toString(),\n name: entity.name,\n });\n return model;\n }\n\n static toMongoose(user: User) {\n return {\n name: user.name,\n }\n }\n}\n"],"names":["MongooseUserMapper","toDomain","entity","model","User","id","_id","toString","name","toMongoose","user"],"mappings":";;;;+BAGaA;;;eAAAA;;;sBAHQ;AAGd,IAAA,AAAMA,qBAAN,MAAMA;IACX,OAAOC,SAASC,MAAoB,EAAQ;QAC1C,MAAMC,QAAQ,IAAIC,UAAI,CAAC;YACrBC,IAAIH,OAAOI,GAAG,CAACC,QAAQ;YACvBC,MAAMN,OAAOM,IAAI;QACnB;QACA,OAAOL;IACT;IAEA,OAAOM,WAAWC,IAAU,EAAE;QAC5B,OAAO;YACLF,MAAME,KAAKF,IAAI;QACjB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mongoose.module.js b/dist/infra/persistence/mongoose/mongoose.module.js new file mode 100644 index 0000000..79f2961 --- /dev/null +++ b/dist/infra/persistence/mongoose/mongoose.module.js @@ -0,0 +1,94 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseModule", { + enumerable: true, + get: function() { + return MongooseModule; + } +}); +const _orderproductrepositoy = require("../../../application/ecommerce/ports/order-product.repositoy"); +const _orderrepositoy = require("../../../application/ecommerce/ports/order.repositoy"); +const _productrepositoy = require("../../../application/ecommerce/ports/product.repositoy"); +const _userrepositoy = require("../../../application/ecommerce/ports/user.repositoy"); +const _env = require("../../env"); +const _common = require("@nestjs/common"); +const _mongoose = require("@nestjs/mongoose"); +const _orderproductentity = require("./entities/order-product.entity"); +const _orderentity = require("./entities/order.entity"); +const _productentity = require("./entities/product.entity"); +const _userentity = require("./entities/user.entity"); +const _mongooseorderproductrepositoy = require("./repositories/mongoose-order-product.repositoy"); +const _mongooseorderrepositoy = require("./repositories/mongoose-order.repositoy"); +const _mongooseproductrepositoy = require("./repositories/mongoose-product.repositoy"); +const _mongooseuserrepositoy = require("./repositories/mongoose-user.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let MongooseModule = class MongooseModule { +}; +MongooseModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _mongoose.MongooseModule.forRootAsync({ + imports: [ + _env.EnvModule + ], + useFactory: (envService)=>({ + uri: envService.get('MONGODB_URL') + }), + inject: [ + _env.EnvService + ] + }), + _mongoose.MongooseModule.forFeature([ + { + name: _userentity.User.name, + schema: _userentity.UserSchema + }, + { + name: _productentity.Product.name, + schema: _productentity.ProductSchema + }, + { + name: _orderentity.Order.name, + schema: _orderentity.OrderSchema + }, + { + name: _orderproductentity.OrderProduct.name, + schema: _orderproductentity.OrderProductSchema + } + ]) + ], + providers: [ + { + provide: _productrepositoy.ProductRepository, + useClass: _mongooseproductrepositoy.MongooseProductRepository + }, + { + provide: _userrepositoy.UserRepository, + useClass: _mongooseuserrepositoy.MongooseUserRepository + }, + { + provide: _orderrepositoy.OrderRepository, + useClass: _mongooseorderrepositoy.MongooseOrderRepository + }, + { + provide: _orderproductrepositoy.OrderProductRepository, + useClass: _mongooseorderproductrepositoy.MongooseOrderProductRepository + } + ], + exports: [ + _productrepositoy.ProductRepository, + _userrepositoy.UserRepository, + _orderrepositoy.OrderRepository, + _orderproductrepositoy.OrderProductRepository + ] + }) +], MongooseModule); + +//# sourceMappingURL=mongoose.module.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/mongoose.module.js.map b/dist/infra/persistence/mongoose/mongoose.module.js.map new file mode 100644 index 0000000..69b2319 --- /dev/null +++ b/dist/infra/persistence/mongoose/mongoose.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/persistence/mongoose/mongoose.module.ts"],"sourcesContent":["import { OrderProductRepository } from '@app/application/ecommerce/ports/order-product.repositoy';\nimport { OrderRepository } from '@app/application/ecommerce/ports/order.repositoy';\nimport { ProductRepository } from '@app/application/ecommerce/ports/product.repositoy';\nimport { UserRepository } from '@app/application/ecommerce/ports/user.repositoy';\nimport { EnvModule, EnvService } from '@app/infra/env';\nimport { Module } from '@nestjs/common';\nimport { MongooseModule as MongooseModuleLib } from '@nestjs/mongoose';\nimport { OrderProduct, OrderProductSchema } from './entities/order-product.entity';\nimport { Order, OrderSchema } from './entities/order.entity';\nimport { Product, ProductSchema } from './entities/product.entity';\nimport { User, UserSchema } from './entities/user.entity';\n\n// Non exported\nimport { MongooseOrderProductRepository } from './repositories/mongoose-order-product.repositoy';\nimport { MongooseOrderRepository } from './repositories/mongoose-order.repositoy';\nimport { MongooseProductRepository } from './repositories/mongoose-product.repositoy';\nimport { MongooseUserRepository } from './repositories/mongoose-user.repositoy';\n\n@Module({\n imports: [\n MongooseModuleLib.forRootAsync({\n imports: [EnvModule],\n useFactory: (envService: EnvService) => ({\n uri: envService.get('MONGODB_URL'),\n }),\n inject: [EnvService],\n }),\n MongooseModuleLib.forFeature([\n { name: User.name, schema: UserSchema },\n { name: Product.name, schema: ProductSchema },\n { name: Order.name, schema: OrderSchema },\n { name: OrderProduct.name, schema: OrderProductSchema },\n ]),\n ],\n providers: [\n {\n provide: ProductRepository,\n useClass: MongooseProductRepository\n },\n {\n provide: UserRepository,\n useClass: MongooseUserRepository\n },\n {\n provide: OrderRepository,\n useClass: MongooseOrderRepository\n },\n {\n provide: OrderProductRepository,\n useClass: MongooseOrderProductRepository\n },\n ],\n exports: [ProductRepository, UserRepository, OrderRepository, OrderProductRepository],\n})\nexport class MongooseModule { }\n"],"names":["MongooseModule","Module","imports","MongooseModuleLib","forRootAsync","EnvModule","useFactory","envService","uri","get","inject","EnvService","forFeature","name","User","schema","UserSchema","Product","ProductSchema","Order","OrderSchema","OrderProduct","OrderProductSchema","providers","provide","ProductRepository","useClass","MongooseProductRepository","UserRepository","MongooseUserRepository","OrderRepository","MongooseOrderRepository","OrderProductRepository","MongooseOrderProductRepository","exports"],"mappings":";;;;+BAsDaA;;;eAAAA;;;uCAtD0B;gCACP;kCACE;+BACH;qBACO;wBACf;0BAC6B;oCACH;6BACd;+BACI;4BACN;+CAGc;wCACP;0CACE;uCACH;;;;;;;AAsChC,IAAA,AAAMA,iBAAN,MAAMA;AAAiB;AAAjBA;IApCZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YACLC,wBAAiB,CAACC,YAAY,CAAC;gBAC3BF,SAAS;oBAACG,cAAS;iBAAC;gBACpBC,YAAY,CAACC,aAA4B,CAAA;wBACrCC,KAAKD,WAAWE,GAAG,CAAC;oBACxB,CAAA;gBACAC,QAAQ;oBAACC,eAAU;iBAAC;YACxB;YACAR,wBAAiB,CAACS,UAAU,CAAC;gBACzB;oBAAEC,MAAMC,gBAAI,CAACD,IAAI;oBAAEE,QAAQC,sBAAU;gBAAC;gBACtC;oBAAEH,MAAMI,sBAAO,CAACJ,IAAI;oBAAEE,QAAQG,4BAAa;gBAAC;gBAC5C;oBAAEL,MAAMM,kBAAK,CAACN,IAAI;oBAAEE,QAAQK,wBAAW;gBAAC;gBACxC;oBAAEP,MAAMQ,gCAAY,CAACR,IAAI;oBAAEE,QAAQO,sCAAkB;gBAAC;aACzD;SACJ;QACDC,WAAW;YACP;gBACIC,SAASC,mCAAiB;gBAC1BC,UAAUC,mDAAyB;YACvC;YACA;gBACIH,SAASI,6BAAc;gBACvBF,UAAUG,6CAAsB;YACpC;YACA;gBACIL,SAASM,+BAAe;gBACxBJ,UAAUK,+CAAuB;YACrC;YACA;gBACIP,SAASQ,6CAAsB;gBAC/BN,UAAUO,6DAA8B;YAC5C;SACH;QACDC,SAAS;YAACT,mCAAiB;YAAEG,6BAAc;YAAEE,+BAAe;YAAEE,6CAAsB;SAAC;IACzF;GACahC"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js b/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js new file mode 100644 index 0000000..6bb2960 --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseOrderProductRepository", { + enumerable: true, + get: function() { + return MongooseOrderProductRepository; + } +}); +const _orderproductentity = require("../entities/order-product.entity"); +const _common = require("@nestjs/common"); +const _mongooseorderproductmapper = require("../mapper/mongoose-order-product-mapper"); +const _mongoose = require("mongoose"); +const _mongoose1 = require("@nestjs/mongoose"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let MongooseOrderProductRepository = class MongooseOrderProductRepository { + async create(orderProduct) { + const data = _mongooseorderproductmapper.MongooseOrderProductMapper.toMongoose(orderProduct); + const createdOrderProduct = await this.productOrderModel.create(data); + return _mongooseorderproductmapper.MongooseOrderProductMapper.toDomain(createdOrderProduct); + } + async createMany(orderProducts) { + if (orderProducts.length === 0) { + return []; + } + const data = orderProducts.map((product)=>_mongooseorderproductmapper.MongooseOrderProductMapper.toMongoose(product)); + const createdOrderProductProducts = await this.productOrderModel.create(data); + return createdOrderProductProducts.map(_mongooseorderproductmapper.MongooseOrderProductMapper.toDomain); + } + constructor(productOrderModel){ + this.productOrderModel = productOrderModel; + } +}; +MongooseOrderProductRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_param(0, (0, _mongoose1.InjectModel)(_orderproductentity.OrderProduct.name)), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _mongoose.Model === "undefined" ? Object : _mongoose.Model + ]) +], MongooseOrderProductRepository); + +//# sourceMappingURL=mongoose-order-product.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js.map b/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js.map new file mode 100644 index 0000000..9f327db --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/repositories/mongoose-order-product.repositoy.ts"],"sourcesContent":["import { OrderProductRepository } from \"@app/application/ecommerce/ports/order-product.repositoy\";\nimport { OrderProduct } from \"@app/domain/ecommerce/order-product\";\nimport { OrderProduct as OrderProductMongoose } from \"../entities/order-product.entity\";\nimport { Injectable } from \"@nestjs/common\";\nimport { MongooseOrderProductMapper } from \"../mapper/mongoose-order-product-mapper\";\nimport { Model } from \"mongoose\";\nimport { InjectModel } from \"@nestjs/mongoose\";\n\n@Injectable()\nexport class MongooseOrderProductRepository implements OrderProductRepository {\n constructor(\n @InjectModel(OrderProductMongoose.name) private readonly productOrderModel: Model\n ) { }\n\n async create(orderProduct: OrderProduct): Promise {\n const data = MongooseOrderProductMapper.toMongoose(orderProduct);\n const createdOrderProduct = await this.productOrderModel.create(data);\n\n return MongooseOrderProductMapper.toDomain(createdOrderProduct);\n }\n\n async createMany(orderProducts: OrderProduct[]): Promise {\n if (orderProducts.length === 0) {\n return [];\n }\n\n const data = orderProducts.map((product) => MongooseOrderProductMapper.toMongoose(product));\n const createdOrderProductProducts = await this.productOrderModel.create(data);\n\n return createdOrderProductProducts.map(MongooseOrderProductMapper.toDomain);\n }\n}"],"names":["MongooseOrderProductRepository","create","orderProduct","data","MongooseOrderProductMapper","toMongoose","createdOrderProduct","productOrderModel","toDomain","createMany","orderProducts","length","map","product","createdOrderProductProducts","constructor","Injectable","InjectModel","OrderProductMongoose","name"],"mappings":";;;;+BASaA;;;eAAAA;;;oCAPwC;wBAC1B;4CACgB;0BACrB;2BACM;;;;;;;;;;;;;;;AAGrB,IAAA,AAAMA,iCAAN,MAAMA;IAKT,MAAMC,OAAOC,YAA0B,EAAyB;QAC5D,MAAMC,OAAOC,sDAA0B,CAACC,UAAU,CAACH;QACnD,MAAMI,sBAAsB,MAAM,IAAI,CAACC,iBAAiB,CAACN,MAAM,CAACE;QAEhE,OAAOC,sDAA0B,CAACI,QAAQ,CAACF;IAC/C;IAEA,MAAMG,WAAWC,aAA6B,EAA2B;QACrE,IAAIA,cAAcC,MAAM,KAAK,GAAG;YAC5B,OAAO,EAAE;QACb;QAEA,MAAMR,OAAOO,cAAcE,GAAG,CAAC,CAACC,UAAYT,sDAA0B,CAACC,UAAU,CAACQ;QAClF,MAAMC,8BAA8B,MAAM,IAAI,CAACP,iBAAiB,CAACN,MAAM,CAACE;QAExE,OAAOW,4BAA4BF,GAAG,CAACR,sDAA0B,CAACI,QAAQ;IAC9E;IApBAO,YACI,AAAyDR,iBAA8C,CACzG;aAD2DA,oBAAAA;IACzD;AAmBR;AAtBaP;IADZgB,IAAAA,kBAAU;IAGFC,aAAAA,IAAAA,sBAAW,EAACC,gCAAoB,CAACC,IAAI;;;eAAsC,eAAK,4BAAL,eAAK;;GAF5EnB"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js b/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js new file mode 100644 index 0000000..145defc --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js @@ -0,0 +1,133 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseOrderRepository", { + enumerable: true, + get: function() { + return MongooseOrderRepository; + } +}); +const _orderproductrepositoy = require("../../../../application/ecommerce/ports/order-product.repositoy"); +const _userrepositoy = require("../../../../application/ecommerce/ports/user.repositoy"); +const _common = require("@nestjs/common"); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_wildcard(require("mongoose")); +const _orderentity = require("../entities/order.entity"); +const _mongooseordermapper = require("../mapper/mongoose-order-mapper"); +const _mongooseorderdetailsmapper = require("../mapper/mongoose-order-details-mapper"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let MongooseOrderRepository = class MongooseOrderRepository { + async findMany() { + const findQuery = await this.orderModel.find().populate([ + 'orderProduct' + ]); + return findQuery.map((item)=>_mongooseorderdetailsmapper.MongooseOrderDetailsMapper.toDomain(item)); + } + async findById(id) { + const findQuery = await this.orderModel.findById(id).populate([ + 'orderProduct' + ]); + return _mongooseorderdetailsmapper.MongooseOrderDetailsMapper.toDomain(findQuery); + } + async create(orderInput) { + let orderProductIds = []; + if (orderInput?.orderProduct.length) { + orderProductIds = await Promise.all(orderInput.orderProduct.map(async (orderProduct)=>{ + const orderProductCreated = await this.orderProductRepository.create(orderProduct); + return orderProductCreated.id; + })); + } + const data = _mongooseordermapper.MongooseOrderMapper.toMongoose(orderInput); + const order = new this.orderModel({ + ...data, + user: { + "_id": new _mongoose1.default.Types.ObjectId(orderInput.user) + }, + orderProduct: orderProductIds + }); + await this.userRepository.appendOrder(orderInput.user, order.id); + const savedOrder = await order.save(); + return _mongooseordermapper.MongooseOrderMapper.toDomain(savedOrder); + } + async update(orderId, orderInput) { + const preparedData = _mongooseordermapper.MongooseOrderMapper.toMongoose(orderInput); + const order = await this.orderModel.findOneAndUpdate({ + _id: orderId + }, preparedData, { + new: true + }).exec(); + return _mongooseordermapper.MongooseOrderMapper.toDomain(order); + } + constructor(orderModel, orderProductRepository, userRepository){ + this.orderModel = orderModel; + this.orderProductRepository = orderProductRepository; + this.userRepository = userRepository; + } +}; +MongooseOrderRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_param(0, (0, _mongoose.InjectModel)(_orderentity.Order.name)), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _mongoose1.Model === "undefined" ? Object : _mongoose1.Model, + typeof _orderproductrepositoy.OrderProductRepository === "undefined" ? Object : _orderproductrepositoy.OrderProductRepository, + typeof _userrepositoy.UserRepository === "undefined" ? Object : _userrepositoy.UserRepository + ]) +], MongooseOrderRepository); + +//# sourceMappingURL=mongoose-order.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js.map b/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js.map new file mode 100644 index 0000000..1d48e92 --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-order.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/repositories/mongoose-order.repositoy.ts"],"sourcesContent":["import { OrderProductRepository } from \"@app/application/ecommerce/ports/order-product.repositoy\";\nimport { OrderRepository } from \"@app/application/ecommerce/ports/order.repositoy\";\nimport { UserRepository } from \"@app/application/ecommerce/ports/user.repositoy\";\nimport { Order } from \"@app/domain/ecommerce/order\";\nimport { Injectable } from \"@nestjs/common\";\nimport { InjectModel } from \"@nestjs/mongoose\";\nimport mongoose, { Model } from \"mongoose\";\nimport { Order as OrderMongoose } from \"../entities/order.entity\";\nimport { MongooseOrderMapper } from \"../mapper/mongoose-order-mapper\";\nimport { MongooseOrderDetailsMapper } from \"../mapper/mongoose-order-details-mapper\";\n\n@Injectable()\nexport class MongooseOrderRepository implements OrderRepository {\n constructor(\n @InjectModel(OrderMongoose.name) private readonly orderModel: Model,\n private orderProductRepository: OrderProductRepository,\n private userRepository: UserRepository\n ) { }\n\n async findMany(): Promise {\n const findQuery = await this.orderModel\n .find()\n .populate(['orderProduct']);\n\n return findQuery.map((item) => MongooseOrderDetailsMapper.toDomain(item));\n }\n\n async findById(id: string): Promise {\n const findQuery = await this.orderModel\n .findById(id)\n .populate(['orderProduct']);\n\n return MongooseOrderDetailsMapper.toDomain(findQuery);\n }\n\n async create(orderInput: Order): Promise {\n let orderProductIds = [];\n\n if (orderInput?.orderProduct.length) {\n orderProductIds = await Promise.all(\n orderInput.orderProduct.map(async (orderProduct) => {\n const orderProductCreated = await this.orderProductRepository.create(orderProduct);\n return orderProductCreated.id;\n })\n );\n }\n\n const data = MongooseOrderMapper.toMongoose(orderInput);\n const order = new this.orderModel({\n ...data,\n user: {\n \"_id\": new mongoose.Types.ObjectId(orderInput.user),\n },\n orderProduct: orderProductIds,\n });\n\n await this.userRepository.appendOrder(orderInput.user, order.id);\n\n const savedOrder = await order.save();\n\n return MongooseOrderMapper.toDomain(savedOrder);\n }\n\n async update(orderId: string, orderInput: Order): Promise {\n const preparedData = MongooseOrderMapper.toMongoose(orderInput);\n\n const order = await this.orderModel\n .findOneAndUpdate(\n {\n _id: orderId,\n },\n preparedData,\n {\n new: true,\n },\n )\n .exec();\n\n return MongooseOrderMapper.toDomain(order);\n }\n}"],"names":["MongooseOrderRepository","findMany","findQuery","orderModel","find","populate","map","item","MongooseOrderDetailsMapper","toDomain","findById","id","create","orderInput","orderProductIds","orderProduct","length","Promise","all","orderProductCreated","orderProductRepository","data","MongooseOrderMapper","toMongoose","order","user","mongoose","Types","ObjectId","userRepository","appendOrder","savedOrder","save","update","orderId","preparedData","findOneAndUpdate","_id","new","exec","constructor","Injectable","InjectModel","OrderMongoose","name"],"mappings":";;;;+BAYaA;;;eAAAA;;;uCAZ0B;+BAER;wBAEJ;0BACC;mEACI;6BACO;qCACH;4CACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGpC,IAAA,AAAMA,0BAAN,MAAMA;IAOT,MAAMC,WAA6B;QAC/B,MAAMC,YAAY,MAAM,IAAI,CAACC,UAAU,CAClCC,IAAI,GACJC,QAAQ,CAAC;YAAC;SAAe;QAE9B,OAAOH,UAAUI,GAAG,CAAC,CAACC,OAASC,sDAA0B,CAACC,QAAQ,CAACF;IACvE;IAEA,MAAMG,SAASC,EAAU,EAAkB;QACvC,MAAMT,YAAY,MAAM,IAAI,CAACC,UAAU,CAClCO,QAAQ,CAACC,IACTN,QAAQ,CAAC;YAAC;SAAe;QAE9B,OAAOG,sDAA0B,CAACC,QAAQ,CAACP;IAC/C;IAEA,MAAMU,OAAOC,UAAiB,EAAkB;QAC5C,IAAIC,kBAAkB,EAAE;QAExB,IAAID,YAAYE,aAAaC,QAAQ;YACjCF,kBAAkB,MAAMG,QAAQC,GAAG,CAC/BL,WAAWE,YAAY,CAACT,GAAG,CAAC,OAAOS;gBAC/B,MAAMI,sBAAsB,MAAM,IAAI,CAACC,sBAAsB,CAACR,MAAM,CAACG;gBACrE,OAAOI,oBAAoBR,EAAE;YACjC;QAER;QAEA,MAAMU,OAAOC,wCAAmB,CAACC,UAAU,CAACV;QAC5C,MAAMW,QAAQ,IAAI,IAAI,CAACrB,UAAU,CAAC;YAC9B,GAAGkB,IAAI;YACPI,MAAM;gBACF,OAAO,IAAIC,kBAAQ,CAACC,KAAK,CAACC,QAAQ,CAACf,WAAWY,IAAI;YACtD;YACAV,cAAcD;QAClB;QAEA,MAAM,IAAI,CAACe,cAAc,CAACC,WAAW,CAACjB,WAAWY,IAAI,EAAED,MAAMb,EAAE;QAE/D,MAAMoB,aAAa,MAAMP,MAAMQ,IAAI;QAEnC,OAAOV,wCAAmB,CAACb,QAAQ,CAACsB;IACxC;IAEA,MAAME,OAAOC,OAAe,EAAErB,UAAiB,EAAkB;QAC7D,MAAMsB,eAAeb,wCAAmB,CAACC,UAAU,CAACV;QAEpD,MAAMW,QAAQ,MAAM,IAAI,CAACrB,UAAU,CAC9BiC,gBAAgB,CACb;YACIC,KAAKH;QACT,GACAC,cACA;YACIG,KAAK;QACT,GAEHC,IAAI;QAET,OAAOjB,wCAAmB,CAACb,QAAQ,CAACe;IACxC;IAlEAgB,YACI,AAAkDrC,UAAgC,EAClF,AAAQiB,sBAA8C,EACtD,AAAQS,cAA8B,CACxC;aAHoD1B,aAAAA;aAC1CiB,yBAAAA;aACAS,iBAAAA;IACR;AA+DR;AApEa7B;IADZyC,IAAAA,kBAAU;IAGFC,aAAAA,IAAAA,qBAAW,EAACC,kBAAa,CAACC,IAAI;;;eAA+B,gBAAK,4BAAL,gBAAK;eACnC,6CAAsB,4BAAtB,6CAAsB;eAC9B,6BAAc,4BAAd,6BAAc;;GAJjC5C"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js b/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js new file mode 100644 index 0000000..9054f3e --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseProductRepository", { + enumerable: true, + get: function() { + return MongooseProductRepository; + } +}); +const _productentity = require("../entities/product.entity"); +const _common = require("@nestjs/common"); +const _mongooseproductmapper = require("../mapper/mongoose-product-mapper"); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = require("mongoose"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let MongooseProductRepository = class MongooseProductRepository { + async findMany() { + const products = await this.productModel.find(); + return products.map((item)=>_mongooseproductmapper.MongooseProductMapper.toDomain(item)); + } + async create(product) { + const data = _mongooseproductmapper.MongooseProductMapper.toMongoose(product); + const entity = await this.productModel.create(data); + return _mongooseproductmapper.MongooseProductMapper.toDomain(entity); + } + constructor(productModel){ + this.productModel = productModel; + } +}; +MongooseProductRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_param(0, (0, _mongoose.InjectModel)(_productentity.Product.name)), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _mongoose1.Model === "undefined" ? Object : _mongoose1.Model + ]) +], MongooseProductRepository); + +//# sourceMappingURL=mongoose-product.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js.map b/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js.map new file mode 100644 index 0000000..0b9e73f --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/repositories/mongoose-product.repositoy.ts"],"sourcesContent":["import { ProductRepository } from \"@app/application/ecommerce/ports/product.repositoy\";\nimport { Product } from \"@app/domain/ecommerce/product\";\nimport { Product as ProductMongoose } from \"../entities/product.entity\";\nimport { Injectable } from \"@nestjs/common\";\nimport { MongooseProductMapper } from \"../mapper/mongoose-product-mapper\";\nimport { InjectModel } from \"@nestjs/mongoose\";\nimport { Model } from \"mongoose\";\n\n@Injectable()\nexport class MongooseProductRepository implements ProductRepository {\n constructor(\n @InjectModel(ProductMongoose.name) private readonly productModel: Model,\n ) { }\n\n async findMany(): Promise {\n const products = await this.productModel.find();\n\n return products.map((item) => MongooseProductMapper.toDomain(item));\n }\n\n async create(product: Product): Promise {\n const data = MongooseProductMapper.toMongoose(product);\n const entity = await this.productModel.create(data);\n\n return MongooseProductMapper.toDomain(entity);\n }\n}"],"names":["MongooseProductRepository","findMany","products","productModel","find","map","item","MongooseProductMapper","toDomain","create","product","data","toMongoose","entity","constructor","Injectable","InjectModel","ProductMongoose","name"],"mappings":";;;;+BASaA;;;eAAAA;;;+BAP8B;wBAChB;uCACW;0BACV;2BACN;;;;;;;;;;;;;;;AAGf,IAAA,AAAMA,4BAAN,MAAMA;IAKT,MAAMC,WAA+B;QACjC,MAAMC,WAAW,MAAM,IAAI,CAACC,YAAY,CAACC,IAAI;QAE7C,OAAOF,SAASG,GAAG,CAAC,CAACC,OAASC,4CAAqB,CAACC,QAAQ,CAACF;IACjE;IAEA,MAAMG,OAAOC,OAAgB,EAAoB;QAC7C,MAAMC,OAAOJ,4CAAqB,CAACK,UAAU,CAACF;QAC9C,MAAMG,SAAS,MAAM,IAAI,CAACV,YAAY,CAACM,MAAM,CAACE;QAE9C,OAAOJ,4CAAqB,CAACC,QAAQ,CAACK;IAC1C;IAfAC,YACI,AAAoDX,YAAoC,CAC1F;aADsDA,eAAAA;IACpD;AAcR;AAjBaH;IADZe,IAAAA,kBAAU;IAGFC,aAAAA,IAAAA,qBAAW,EAACC,sBAAe,CAACC,IAAI;;;eAAiC,gBAAK,4BAAL,gBAAK;;GAFlElB"} \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js b/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js new file mode 100644 index 0000000..3e83eb6 --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js @@ -0,0 +1,110 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MongooseUserRepository", { + enumerable: true, + get: function() { + return MongooseUserRepository; + } +}); +const _common = require("@nestjs/common"); +const _mongoose = require("@nestjs/mongoose"); +const _mongoose1 = /*#__PURE__*/ _interop_require_wildcard(require("mongoose")); +const _userentity = require("../entities/user.entity"); +const _mongooseusermapper = require("../mapper/mongoose-user-mapper"); +const _mongooseuserdetailsmapper = require("../mapper/mongoose-user-details-mapper"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +function _ts_param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +let MongooseUserRepository = class MongooseUserRepository { + async findMany() { + const findQuery = await this.userModel.find().populate([ + 'orders' + ]); + return findQuery.map((item)=>_mongooseuserdetailsmapper.MongooseUserDetailsMapper.toDomain(item)); + } + async create(user) { + const data = _mongooseusermapper.MongooseUserMapper.toMongoose(user); + const entity = new this.userModel({ + ...data + }); + await entity.save(); + return _mongooseusermapper.MongooseUserMapper.toDomain(entity); + } + async appendOrder(id, order) { + const updatedUser = await this.userModel.findByIdAndUpdate(id, { + $push: { + orders: new _mongoose1.default.Types.ObjectId(order) + } + }, { + new: true + }); + return _mongooseusermapper.MongooseUserMapper.toDomain(updatedUser); + } + constructor(userModel){ + this.userModel = userModel; + } +}; +MongooseUserRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_param(0, (0, _mongoose.InjectModel)(_userentity.User.name)), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _mongoose1.Model === "undefined" ? Object : _mongoose1.Model + ]) +], MongooseUserRepository); + +//# sourceMappingURL=mongoose-user.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js.map b/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js.map new file mode 100644 index 0000000..a8e41e2 --- /dev/null +++ b/dist/infra/persistence/mongoose/repositories/mongoose-user.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/mongoose/repositories/mongoose-user.repositoy.ts"],"sourcesContent":["import { UserRepository } from \"@app/application/ecommerce/ports/user.repositoy\";\nimport { User } from \"@app/domain/ecommerce/user\";\nimport { Injectable } from \"@nestjs/common\";\nimport { InjectModel } from \"@nestjs/mongoose\";\nimport mongoose, { Model } from \"mongoose\";\nimport { User as UserMongoose } from \"../entities/user.entity\";\nimport { MongooseUserMapper } from \"../mapper/mongoose-user-mapper\";\nimport { MongooseUserDetailsMapper } from \"../mapper/mongoose-user-details-mapper\";\n\n@Injectable()\nexport class MongooseUserRepository implements UserRepository {\n constructor(\n @InjectModel(UserMongoose.name) private readonly userModel: Model,\n ) { }\n\n async findMany(): Promise {\n const findQuery = await this.userModel\n .find()\n .populate(['orders']);\n\n return findQuery.map((item) => MongooseUserDetailsMapper.toDomain(item));\n }\n\n async create(user: User): Promise {\n const data = MongooseUserMapper.toMongoose(user);\n const entity = new this.userModel({ ...data })\n await entity.save();\n\n return MongooseUserMapper.toDomain(entity);\n }\n\n async appendOrder(id: string, order: string): Promise {\n const updatedUser = await this.userModel.findByIdAndUpdate(\n id,\n {\n $push: { orders: new mongoose.Types.ObjectId(order) },\n },\n { new: true }\n );\n\n return MongooseUserMapper.toDomain(updatedUser);\n }\n}"],"names":["MongooseUserRepository","findMany","findQuery","userModel","find","populate","map","item","MongooseUserDetailsMapper","toDomain","create","user","data","MongooseUserMapper","toMongoose","entity","save","appendOrder","id","order","updatedUser","findByIdAndUpdate","$push","orders","mongoose","Types","ObjectId","new","constructor","Injectable","InjectModel","UserMongoose","name"],"mappings":";;;;+BAUaA;;;eAAAA;;;wBARc;0BACC;mEACI;4BACK;oCACF;2CACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnC,IAAA,AAAMA,yBAAN,MAAMA;IAKT,MAAMC,WAA4B;QAC9B,MAAMC,YAAY,MAAM,IAAI,CAACC,SAAS,CACjCC,IAAI,GACJC,QAAQ,CAAC;YAAC;SAAS;QAExB,OAAOH,UAAUI,GAAG,CAAC,CAACC,OAASC,oDAAyB,CAACC,QAAQ,CAACF;IACtE;IAEA,MAAMG,OAAOC,IAAU,EAAiB;QACpC,MAAMC,OAAOC,sCAAkB,CAACC,UAAU,CAACH;QAC3C,MAAMI,SAAS,IAAI,IAAI,CAACZ,SAAS,CAAC;YAAE,GAAGS,IAAI;QAAC;QAC5C,MAAMG,OAAOC,IAAI;QAEjB,OAAOH,sCAAkB,CAACJ,QAAQ,CAACM;IACvC;IAEA,MAAME,YAAYC,EAAU,EAAEC,KAAa,EAAiB;QACxD,MAAMC,cAAc,MAAM,IAAI,CAACjB,SAAS,CAACkB,iBAAiB,CACtDH,IACA;YACII,OAAO;gBAAEC,QAAQ,IAAIC,kBAAQ,CAACC,KAAK,CAACC,QAAQ,CAACP;YAAO;QACxD,GACA;YAAEQ,KAAK;QAAK;QAGhB,OAAOd,sCAAkB,CAACJ,QAAQ,CAACW;IACvC;IA9BAQ,YACI,AAAiDzB,SAA8B,CACjF;aADmDA,YAAAA;IACjD;AA6BR;AAhCaH;IADZ6B,IAAAA,kBAAU;IAGFC,aAAAA,IAAAA,qBAAW,EAACC,gBAAY,CAACC,IAAI;;;eAA8B,gBAAK,4BAAL,gBAAK;;GAF5DhC"} \ No newline at end of file diff --git a/dist/infra/persistence/persistence.module.js b/dist/infra/persistence/persistence.module.js new file mode 100644 index 0000000..cec6dd5 --- /dev/null +++ b/dist/infra/persistence/persistence.module.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PersistenceModule", { + enumerable: true, + get: function() { + return PersistenceModule; + } +}); +const _common = require("@nestjs/common"); +const _mongoosemodule = require("./mongoose/mongoose.module"); +const _prismamodule = require("./prisma/prisma.module"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let PersistenceModule = class PersistenceModule { + static async register({ global = false, type }) { + return { + global, + module: PersistenceModule, + imports: [ + type === 'mongoose' ? _mongoosemodule.MongooseModule : _prismamodule.PrismaModule + ], + exports: [ + type === 'mongoose' ? _mongoosemodule.MongooseModule : _prismamodule.PrismaModule + ] + }; + } +}; +PersistenceModule = _ts_decorate([ + (0, _common.Module)({}) +], PersistenceModule); + +//# sourceMappingURL=persistence.module.js.map \ No newline at end of file diff --git a/dist/infra/persistence/persistence.module.js.map b/dist/infra/persistence/persistence.module.js.map new file mode 100644 index 0000000..de78414 --- /dev/null +++ b/dist/infra/persistence/persistence.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../src/infra/persistence/persistence.module.ts"],"sourcesContent":["import { DynamicModule, Module } from '@nestjs/common';\nimport { MongooseModule } from './mongoose/mongoose.module';\nimport { PrismaModule } from './prisma/prisma.module';\n\ninterface DatabaseOptions {\n type: 'prisma' | 'mongoose';\n global?: boolean;\n}\n\n@Module({})\nexport class PersistenceModule {\n static async register({ global = false, type }: DatabaseOptions): Promise {\n return {\n global,\n module: PersistenceModule,\n imports: [type === 'mongoose' ? MongooseModule : PrismaModule],\n exports: [type === 'mongoose' ? MongooseModule : PrismaModule],\n };\n };\n}\n"],"names":["PersistenceModule","register","global","type","module","imports","MongooseModule","PrismaModule","exports","Module"],"mappings":";;;;+BAUaA;;;eAAAA;;;wBAVyB;gCACP;8BACF;;;;;;;AAQtB,IAAA,AAAMA,oBAAN,MAAMA;IACT,aAAaC,SAAS,EAAEC,SAAS,KAAK,EAAEC,IAAI,EAAmB,EAA0B;QACrF,OAAO;YACHD;YACAE,QAAQJ;YACRK,SAAS;gBAACF,SAAS,aAAaG,8BAAc,GAAGC,0BAAY;aAAC;YAC9DC,SAAS;gBAACL,SAAS,aAAaG,8BAAc,GAAGC,0BAAY;aAAC;QAClE;IACJ;AACJ;AATaP;IADZS,IAAAA,cAAM,EAAC,CAAC;GACIT"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js new file mode 100644 index 0000000..844f655 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaOrderDetailsMapper", { + enumerable: true, + get: function() { + return PrismaOrderDetailsMapper; + } +}); +const _order = require("../../../../domain/ecommerce/order"); +const _prismaorderproductmapper = require("./prisma-order-product-mapper"); +let PrismaOrderDetailsMapper = class PrismaOrderDetailsMapper { + static toDomain(entity) { + const model = new _order.Order({ + id: entity.id, + user: entity.user, + total: entity.total, + orderProduct: !!entity.orderProduct ? entity.orderProduct.map((item)=>_prismaorderproductmapper.PrismaOrderProductMapper.toDomain(item)) : [], + status: entity.status, + paymentId: entity.paymentId, + paymentMethod: entity.paymentMethod + }); + return model; + } +}; + +//# sourceMappingURL=prisma-order-details-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js.map new file mode 100644 index 0000000..74508e4 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-details-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-order-details-mapper.ts"],"sourcesContent":["import { Order } from '@app/domain/ecommerce/order';\nimport { OrderProduct, Order as PrismaOrder } from '@prisma/client';\nimport { PrismaOrderProductMapper } from './prisma-order-product-mapper';\n\ntype OrderWithOrderProduct = PrismaOrder & { orderProduct?: OrderProduct[] };\n\nexport class PrismaOrderDetailsMapper {\n static toDomain(entity: OrderWithOrderProduct): Order {\n const model = new Order({\n id: entity.id,\n user: entity.user,\n total: entity.total,\n orderProduct: !!entity.orderProduct ? entity.orderProduct.map((item) => PrismaOrderProductMapper.toDomain(item)) : [],\n status: entity.status,\n paymentId: entity.paymentId,\n paymentMethod: entity.paymentMethod,\n });\n return model;\n }\n}\n"],"names":["PrismaOrderDetailsMapper","toDomain","entity","model","Order","id","user","total","orderProduct","map","item","PrismaOrderProductMapper","status","paymentId","paymentMethod"],"mappings":";;;;+BAMaA;;;eAAAA;;;uBANS;0CAEmB;AAIlC,IAAA,AAAMA,2BAAN,MAAMA;IACX,OAAOC,SAASC,MAA6B,EAAS;QACpD,MAAMC,QAAQ,IAAIC,YAAK,CAAC;YACtBC,IAAIH,OAAOG,EAAE;YACbC,MAAMJ,OAAOI,IAAI;YACjBC,OAAOL,OAAOK,KAAK;YACnBC,cAAc,CAAC,CAACN,OAAOM,YAAY,GAAGN,OAAOM,YAAY,CAACC,GAAG,CAAC,CAACC,OAASC,kDAAwB,CAACV,QAAQ,CAACS,SAAS,EAAE;YACrHE,QAAQV,OAAOU,MAAM;YACrBC,WAAWX,OAAOW,SAAS;YAC3BC,eAAeZ,OAAOY,aAAa;QACrC;QACA,OAAOX;IACT;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js new file mode 100644 index 0000000..5cf2346 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaOrderMapper", { + enumerable: true, + get: function() { + return PrismaOrderMapper; + } +}); +const _order = require("../../../../domain/ecommerce/order"); +let PrismaOrderMapper = class PrismaOrderMapper { + static toDomain(entity) { + const model = new _order.Order({ + id: entity.id, + user: entity.user, + total: entity.total, + paymentId: entity.paymentId, + paymentMethod: entity.paymentMethod + }); + return model; + } + static toPrisma(order) { + return { + user: order.user, + total: order.total, + id: order.id, + paymentId: order?.paymentId, + paymentMethod: order?.paymentMethod + }; + } +}; + +//# sourceMappingURL=prisma-order-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js.map new file mode 100644 index 0000000..3c0351a --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-order-mapper.ts"],"sourcesContent":["import { Order } from '@app/domain/ecommerce/order';\nimport { Prisma, Order as PrismaOrder } from '@prisma/client';\n\nexport class PrismaOrderMapper {\n static toDomain(entity: PrismaOrder): Order {\n const model = new Order({\n id: entity.id,\n user: entity.user,\n total: entity.total,\n paymentId: entity.paymentId,\n paymentMethod: entity.paymentMethod\n });\n return model;\n }\n\n static toPrisma(order: Order): Prisma.OrderUncheckedCreateInput {\n return {\n user: order.user,\n total: order.total,\n id: order.id,\n paymentId: order?.paymentId,\n paymentMethod: order?.paymentMethod\n }\n }\n}\n"],"names":["PrismaOrderMapper","toDomain","entity","model","Order","id","user","total","paymentId","paymentMethod","toPrisma","order"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAHS;AAGf,IAAA,AAAMA,oBAAN,MAAMA;IACX,OAAOC,SAASC,MAAmB,EAAS;QAC1C,MAAMC,QAAQ,IAAIC,YAAK,CAAC;YACtBC,IAAIH,OAAOG,EAAE;YACbC,MAAMJ,OAAOI,IAAI;YACjBC,OAAOL,OAAOK,KAAK;YACnBC,WAAWN,OAAOM,SAAS;YAC3BC,eAAeP,OAAOO,aAAa;QACrC;QACA,OAAON;IACT;IAEA,OAAOO,SAASC,KAAY,EAAoC;QAC9D,OAAO;YACLL,MAAMK,MAAML,IAAI;YAChBC,OAAOI,MAAMJ,KAAK;YAClBF,IAAIM,MAAMN,EAAE;YACZG,WAAWG,OAAOH;YAClBC,eAAeE,OAAOF;QACxB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js new file mode 100644 index 0000000..e6dc16f --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaOrderProductMapper", { + enumerable: true, + get: function() { + return PrismaOrderProductMapper; + } +}); +const _orderproduct = require("../../../../domain/ecommerce/order-product"); +let PrismaOrderProductMapper = class PrismaOrderProductMapper { + static toDomain(entity) { + const model = new _orderproduct.OrderProduct({ + id: entity.id, + product: entity.productId, + orderId: entity.orderId, + price: entity.price + }); + return model; + } + static toPrisma(orderProducts) { + return { + productId: orderProducts.product, + orderId: orderProducts.orderId, + price: orderProducts.price + }; + } + static toPrismaCreateMany(orderProducts) { + return orderProducts.map((product)=>({ + productId: product.product, + orderId: product.orderId, + price: product.price + })); + } +}; + +//# sourceMappingURL=prisma-order-product-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js.map new file mode 100644 index 0000000..54cb9e9 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-order-product-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-order-product-mapper.ts"],"sourcesContent":["import { OrderProduct } from '@app/domain/ecommerce/order-product'\nimport { Prisma, OrderProduct as PrismaOrderProduct } from '@prisma/client'\n\nexport class PrismaOrderProductMapper {\n static toDomain(entity: PrismaOrderProduct): OrderProduct {\n const model = new OrderProduct({\n id: entity.id,\n product: entity.productId,\n orderId: entity.orderId,\n price: entity.price,\n });\n return model;\n }\n\n static toPrisma(\n orderProducts: OrderProduct,\n ): Prisma.OrderProductUncheckedCreateInput {\n return {\n productId: orderProducts.product,\n orderId: orderProducts.orderId,\n price: orderProducts.price,\n }\n }\n\n static toPrismaCreateMany(\n orderProducts: OrderProduct[],\n ): Prisma.OrderProductCreateManyInput[] {\n return orderProducts.map((product) => ({\n productId: product.product,\n orderId: product.orderId,\n price: product.price,\n }));\n }\n}\n"],"names":["PrismaOrderProductMapper","toDomain","entity","model","OrderProduct","id","product","productId","orderId","price","toPrisma","orderProducts","toPrismaCreateMany","map"],"mappings":";;;;+BAGaA;;;eAAAA;;;8BAHgB;AAGtB,IAAA,AAAMA,2BAAN,MAAMA;IACX,OAAOC,SAASC,MAA0B,EAAgB;QACxD,MAAMC,QAAQ,IAAIC,0BAAY,CAAC;YAC7BC,IAAIH,OAAOG,EAAE;YACbC,SAASJ,OAAOK,SAAS;YACzBC,SAASN,OAAOM,OAAO;YACvBC,OAAOP,OAAOO,KAAK;QACrB;QACA,OAAON;IACT;IAEA,OAAOO,SACLC,aAA2B,EACc;QACzC,OAAO;YACLJ,WAAWI,cAAcL,OAAO;YAChCE,SAASG,cAAcH,OAAO;YAC9BC,OAAOE,cAAcF,KAAK;QAC5B;IACF;IAEA,OAAOG,mBACLD,aAA6B,EACS;QACtC,OAAOA,cAAcE,GAAG,CAAC,CAACP,UAAa,CAAA;gBACrCC,WAAWD,QAAQA,OAAO;gBAC1BE,SAASF,QAAQE,OAAO;gBACxBC,OAAOH,QAAQG,KAAK;YACtB,CAAA;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js new file mode 100644 index 0000000..6939830 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaProductMapper", { + enumerable: true, + get: function() { + return PrismaProductMapper; + } +}); +const _product = require("../../../../domain/ecommerce/product"); +let PrismaProductMapper = class PrismaProductMapper { + static toDomain(entity) { + const model = new _product.Product({ + id: entity.id, + title: entity.title, + price: entity.price + }); + return model; + } + static toPrisma(product) { + return { + title: product.title, + price: product.price + }; + } +}; + +//# sourceMappingURL=prisma-product-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js.map new file mode 100644 index 0000000..3d9a0bc --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-product-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-product-mapper.ts"],"sourcesContent":["import { Product } from '@app/domain/ecommerce/product'\nimport { Prisma, Product as PrismaProduct } from '@prisma/client'\n\nexport class PrismaProductMapper {\n static toDomain(entity: PrismaProduct): Product {\n const model = new Product({\n id: entity.id,\n title: entity.title,\n price: entity.price,\n });\n return model;\n }\n\n static toPrisma(product: Product): Prisma.ProductUncheckedCreateInput {\n return {\n title: product.title,\n price: product.price,\n }\n }\n}\n"],"names":["PrismaProductMapper","toDomain","entity","model","Product","id","title","price","toPrisma","product"],"mappings":";;;;+BAGaA;;;eAAAA;;;yBAHW;AAGjB,IAAA,AAAMA,sBAAN,MAAMA;IACX,OAAOC,SAASC,MAAqB,EAAW;QAC9C,MAAMC,QAAQ,IAAIC,gBAAO,CAAC;YACxBC,IAAIH,OAAOG,EAAE;YACbC,OAAOJ,OAAOI,KAAK;YACnBC,OAAOL,OAAOK,KAAK;QACrB;QACA,OAAOJ;IACT;IAEA,OAAOK,SAASC,OAAgB,EAAsC;QACpE,OAAO;YACLH,OAAOG,QAAQH,KAAK;YACpBC,OAAOE,QAAQF,KAAK;QACtB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js new file mode 100644 index 0000000..056df8a --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaUserDetailsMapper", { + enumerable: true, + get: function() { + return PrismaUserDetailsMapper; + } +}); +const _user = require("../../../../domain/ecommerce/user"); +const _prismaordermapper = require("./prisma-order-mapper"); +let PrismaUserDetailsMapper = class PrismaUserDetailsMapper { + static toDomain(entity) { + const model = new _user.User({ + id: entity.id, + name: entity.name, + orders: !!entity.orders ? entity.orders.map((item)=>_prismaordermapper.PrismaOrderMapper.toDomain(item)) : [] + }); + return model; + } +}; + +//# sourceMappingURL=prisma-user-details-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js.map new file mode 100644 index 0000000..6f2d03f --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-user-details-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-user-details-mapper.ts"],"sourcesContent":["import { User } from '@app/domain/ecommerce/user';\nimport { Order, User as PrismaUser } from '@prisma/client';\nimport { PrismaOrderMapper } from './prisma-order-mapper';\n\ntype UserWithOrder = PrismaUser & { orders?: Order[] };\n\nexport class PrismaUserDetailsMapper {\n static toDomain(entity: UserWithOrder): User {\n const model = new User({\n id: entity.id,\n name: entity.name,\n orders: !!entity.orders ? entity.orders.map((item) => PrismaOrderMapper.toDomain(item)) : []\n });\n return model;\n }\n}\n"],"names":["PrismaUserDetailsMapper","toDomain","entity","model","User","id","name","orders","map","item","PrismaOrderMapper"],"mappings":";;;;+BAMaA;;;eAAAA;;;sBANQ;mCAEa;AAI3B,IAAA,AAAMA,0BAAN,MAAMA;IACX,OAAOC,SAASC,MAAqB,EAAQ;QAC3C,MAAMC,QAAQ,IAAIC,UAAI,CAAC;YACrBC,IAAIH,OAAOG,EAAE;YACbC,MAAMJ,OAAOI,IAAI;YACjBC,QAAQ,CAAC,CAACL,OAAOK,MAAM,GAAGL,OAAOK,MAAM,CAACC,GAAG,CAAC,CAACC,OAASC,oCAAiB,CAACT,QAAQ,CAACQ,SAAS,EAAE;QAC9F;QACA,OAAON;IACT;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js b/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js new file mode 100644 index 0000000..6b021d0 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaUserMapper", { + enumerable: true, + get: function() { + return PrismaUserMapper; + } +}); +const _user = require("../../../../domain/ecommerce/user"); +let PrismaUserMapper = class PrismaUserMapper { + static toDomain(entity) { + const model = new _user.User({ + id: entity.id, + name: entity.name + }); + return model; + } + static toPrisma(user) { + return { + name: user.name + }; + } +}; + +//# sourceMappingURL=prisma-user-mapper.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js.map b/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js.map new file mode 100644 index 0000000..4637f44 --- /dev/null +++ b/dist/infra/persistence/prisma/mapper/prisma-user-mapper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/mapper/prisma-user-mapper.ts"],"sourcesContent":["import { User } from '@app/domain/ecommerce/user'\nimport { Prisma, User as PrismaUser } from '@prisma/client'\n\nexport class PrismaUserMapper {\n static toDomain(entity: PrismaUser): User {\n const model = new User({\n id: entity.id,\n name: entity.name,\n });\n return model;\n }\n\n static toPrisma(user: User): Prisma.UserUncheckedCreateInput {\n return {\n name: user.name,\n }\n }\n}\n"],"names":["PrismaUserMapper","toDomain","entity","model","User","id","name","toPrisma","user"],"mappings":";;;;+BAGaA;;;eAAAA;;;sBAHQ;AAGd,IAAA,AAAMA,mBAAN,MAAMA;IACX,OAAOC,SAASC,MAAkB,EAAQ;QACxC,MAAMC,QAAQ,IAAIC,UAAI,CAAC;YACrBC,IAAIH,OAAOG,EAAE;YACbC,MAAMJ,OAAOI,IAAI;QACnB;QACA,OAAOH;IACT;IAEA,OAAOI,SAASC,IAAU,EAAmC;QAC3D,OAAO;YACLF,MAAME,KAAKF,IAAI;QACjB;IACF;AACF"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/prisma.module.js b/dist/infra/persistence/prisma/prisma.module.js new file mode 100644 index 0000000..bde833c --- /dev/null +++ b/dist/infra/persistence/prisma/prisma.module.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaModule", { + enumerable: true, + get: function() { + return PrismaModule; + } +}); +const _productrepositoy = require("../../../application/ecommerce/ports/product.repositoy"); +const _common = require("@nestjs/common"); +const _prismaservice = require("./prisma.service"); +const _env = require("../../env"); +const _orderproductrepositoy = require("../../../application/ecommerce/ports/order-product.repositoy"); +const _userrepositoy = require("../../../application/ecommerce/ports/user.repositoy"); +const _orderrepositoy = require("../../../application/ecommerce/ports/order.repositoy"); +const _prismaproductrepositoy = require("./repositories/prisma-product.repositoy"); +const _prismauserrepositoy = require("./repositories/prisma-user.repositoy"); +const _prismaorderrepositoy = require("./repositories/prisma-order.repositoy"); +const _prismaorderproductrepositoy = require("./repositories/prisma-order-product.repositoy"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +let PrismaModule = class PrismaModule { +}; +PrismaModule = _ts_decorate([ + (0, _common.Module)({ + imports: [ + _env.EnvModule + ], + providers: [ + _prismaservice.PrismaService, + { + provide: _productrepositoy.ProductRepository, + useClass: _prismaproductrepositoy.PrismaProductRepository + }, + { + provide: _userrepositoy.UserRepository, + useClass: _prismauserrepositoy.PrismaUserRepository + }, + { + provide: _orderrepositoy.OrderRepository, + useClass: _prismaorderrepositoy.PrismaOrderRepository + }, + { + provide: _orderproductrepositoy.OrderProductRepository, + useClass: _prismaorderproductrepositoy.PrismaOrderProductRepository + } + ], + exports: [ + _prismaservice.PrismaService, + _productrepositoy.ProductRepository, + _userrepositoy.UserRepository, + _orderrepositoy.OrderRepository, + _orderproductrepositoy.OrderProductRepository + ] + }) +], PrismaModule); + +//# sourceMappingURL=prisma.module.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/prisma.module.js.map b/dist/infra/persistence/prisma/prisma.module.js.map new file mode 100644 index 0000000..25ba707 --- /dev/null +++ b/dist/infra/persistence/prisma/prisma.module.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/persistence/prisma/prisma.module.ts"],"sourcesContent":["import { ProductRepository } from '@app/application/ecommerce/ports/product.repositoy';\nimport { Module } from '@nestjs/common';\nimport { PrismaService } from './prisma.service';\nimport { EnvModule } from '@app/infra/env';\nimport { OrderProductRepository } from '@app/application/ecommerce/ports/order-product.repositoy';\nimport { UserRepository } from '@app/application/ecommerce/ports/user.repositoy';\nimport { OrderRepository } from '@app/application/ecommerce/ports/order.repositoy';\n\n// Non exported\nimport { PrismaProductRepository } from './repositories/prisma-product.repositoy';\nimport { PrismaUserRepository } from './repositories/prisma-user.repositoy';\nimport { PrismaOrderRepository } from './repositories/prisma-order.repositoy';\nimport { PrismaOrderProductRepository } from './repositories/prisma-order-product.repositoy';\n\n@Module({\n imports: [EnvModule],\n providers: [\n PrismaService,\n {\n provide: ProductRepository,\n useClass: PrismaProductRepository\n },\n {\n provide: UserRepository,\n useClass: PrismaUserRepository\n },\n {\n provide: OrderRepository,\n useClass: PrismaOrderRepository\n },\n {\n provide: OrderProductRepository,\n useClass: PrismaOrderProductRepository\n },\n ],\n exports: [PrismaService, ProductRepository, UserRepository, OrderRepository, OrderProductRepository],\n})\nexport class PrismaModule { }\n"],"names":["PrismaModule","Module","imports","EnvModule","providers","PrismaService","provide","ProductRepository","useClass","PrismaProductRepository","UserRepository","PrismaUserRepository","OrderRepository","PrismaOrderRepository","OrderProductRepository","PrismaOrderProductRepository","exports"],"mappings":";;;;+BAqCaA;;;eAAAA;;;kCArCqB;wBACX;+BACO;qBACJ;uCACa;+BACR;gCACC;wCAGQ;qCACH;sCACC;6CACO;;;;;;;AAyBtC,IAAA,AAAMA,eAAN,MAAMA;AAAe;AAAfA;IAvBZC,IAAAA,cAAM,EAAC;QACJC,SAAS;YAACC,cAAS;SAAC;QACpBC,WAAW;YACPC,4BAAa;YACb;gBACIC,SAASC,mCAAiB;gBAC1BC,UAAUC,+CAAuB;YACrC;YACA;gBACIH,SAASI,6BAAc;gBACvBF,UAAUG,yCAAoB;YAClC;YACA;gBACIL,SAASM,+BAAe;gBACxBJ,UAAUK,2CAAqB;YACnC;YACA;gBACIP,SAASQ,6CAAsB;gBAC/BN,UAAUO,yDAA4B;YAC1C;SACH;QACDC,SAAS;YAACX,4BAAa;YAAEE,mCAAiB;YAAEG,6BAAc;YAAEE,+BAAe;YAAEE,6CAAsB;SAAC;IACxG;GACad"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/prisma.service.js b/dist/infra/persistence/prisma/prisma.service.js new file mode 100644 index 0000000..3b1c8b7 --- /dev/null +++ b/dist/infra/persistence/prisma/prisma.service.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaService", { + enumerable: true, + get: function() { + return PrismaService; + } +}); +const _common = require("@nestjs/common"); +const _client = require("@prisma/client"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let PrismaService = class PrismaService extends _client.PrismaClient { + onModuleInit() { + return this.$connect(); + } + onModuleDestroy() { + return this.$disconnect(); + } + constructor(){ + super({ + log: [ + 'warn', + 'error' + ] + }); + } +}; +PrismaService = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", []) +], PrismaService); + +//# sourceMappingURL=prisma.service.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/prisma.service.js.map b/dist/infra/persistence/prisma/prisma.service.js.map new file mode 100644 index 0000000..56e146f --- /dev/null +++ b/dist/infra/persistence/prisma/prisma.service.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../src/infra/persistence/prisma/prisma.service.ts"],"sourcesContent":["import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'\nimport { PrismaClient } from '@prisma/client'\n\n@Injectable()\nexport class PrismaService\n extends PrismaClient\n implements OnModuleInit, OnModuleDestroy {\n constructor() {\n super({\n log: ['warn', 'error'],\n })\n }\n\n onModuleInit() {\n return this.$connect()\n }\n\n onModuleDestroy() {\n return this.$disconnect()\n }\n}\n"],"names":["PrismaService","PrismaClient","onModuleInit","$connect","onModuleDestroy","$disconnect","constructor","log","Injectable"],"mappings":";;;;+BAIaA;;;eAAAA;;;wBAJ6C;wBAC7B;;;;;;;;;;AAGtB,IAAA,AAAMA,gBAAN,MAAMA,sBACDC,oBAAY;IAQpBC,eAAe;QACX,OAAO,IAAI,CAACC,QAAQ;IACxB;IAEAC,kBAAkB;QACd,OAAO,IAAI,CAACC,WAAW;IAC3B;IAZAC,aAAc;QACV,KAAK,CAAC;YACFC,KAAK;gBAAC;gBAAQ;aAAQ;QAC1B;IACJ;AASJ;AAhBaP;IADZQ,IAAAA,kBAAU;;;GACER"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js b/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js new file mode 100644 index 0000000..ebff9cd --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaOrderProductRepository", { + enumerable: true, + get: function() { + return PrismaOrderProductRepository; + } +}); +const _common = require("@nestjs/common"); +const _prismaorderproductmapper = require("../mapper/prisma-order-product-mapper"); +const _prismaservice = require("../prisma.service"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let PrismaOrderProductRepository = class PrismaOrderProductRepository { + async create(orderProduct) { + const data = _prismaorderproductmapper.PrismaOrderProductMapper.toPrisma(orderProduct); + const createdOrderProduct = await this.prisma.orderProduct.create({ + data + }); + return _prismaorderproductmapper.PrismaOrderProductMapper.toDomain(createdOrderProduct); + } + async createMany(orderProducts) { + if (orderProducts.length === 0) { + return []; + } + const data = _prismaorderproductmapper.PrismaOrderProductMapper.toPrismaCreateMany(orderProducts); + const createdOrderProducts = await this.prisma.$transaction(data.map((item)=>this.prisma.orderProduct.create({ + data: item + }))); + return createdOrderProducts.map(_prismaorderproductmapper.PrismaOrderProductMapper.toDomain); + } + constructor(prisma){ + this.prisma = prisma; + } +}; +PrismaOrderProductRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _prismaservice.PrismaService === "undefined" ? Object : _prismaservice.PrismaService + ]) +], PrismaOrderProductRepository); + +//# sourceMappingURL=prisma-order-product.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js.map b/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js.map new file mode 100644 index 0000000..9bb2fe7 --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-order-product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/repositories/prisma-order-product.repositoy.ts"],"sourcesContent":["import { OrderProductRepository } from \"@app/application/ecommerce/ports/order-product.repositoy\";\nimport { OrderProduct } from \"@app/domain/ecommerce/order-product\";\nimport { Injectable } from \"@nestjs/common\";\nimport { PrismaOrderProductMapper } from \"../mapper/prisma-order-product-mapper\";\nimport { PrismaService } from \"../prisma.service\";\n\n@Injectable()\nexport class PrismaOrderProductRepository implements OrderProductRepository {\n constructor(\n private prisma: PrismaService,\n ) { }\n\n async create(orderProduct: OrderProduct): Promise {\n const data = PrismaOrderProductMapper.toPrisma(orderProduct);\n const createdOrderProduct = await this.prisma.orderProduct.create({ data });\n\n return PrismaOrderProductMapper.toDomain(createdOrderProduct);\n }\n\n async createMany(orderProducts: OrderProduct[]): Promise {\n if (orderProducts.length === 0) {\n return [];\n }\n\n const data = PrismaOrderProductMapper.toPrismaCreateMany(orderProducts);\n\n const createdOrderProducts = await this.prisma.$transaction(\n data.map((item) => this.prisma.orderProduct.create({ data: item }))\n );\n\n return createdOrderProducts.map(PrismaOrderProductMapper.toDomain);\n }\n}"],"names":["PrismaOrderProductRepository","create","orderProduct","data","PrismaOrderProductMapper","toPrisma","createdOrderProduct","prisma","toDomain","createMany","orderProducts","length","toPrismaCreateMany","createdOrderProducts","$transaction","map","item","constructor","Injectable"],"mappings":";;;;+BAOaA;;;eAAAA;;;wBALc;0CACc;+BACX;;;;;;;;;;AAGvB,IAAA,AAAMA,+BAAN,MAAMA;IAKT,MAAMC,OAAOC,YAA0B,EAAyB;QAC5D,MAAMC,OAAOC,kDAAwB,CAACC,QAAQ,CAACH;QAC/C,MAAMI,sBAAsB,MAAM,IAAI,CAACC,MAAM,CAACL,YAAY,CAACD,MAAM,CAAC;YAAEE;QAAK;QAEzE,OAAOC,kDAAwB,CAACI,QAAQ,CAACF;IAC7C;IAEA,MAAMG,WAAWC,aAA6B,EAA2B;QACrE,IAAIA,cAAcC,MAAM,KAAK,GAAG;YAC5B,OAAO,EAAE;QACb;QAEA,MAAMR,OAAOC,kDAAwB,CAACQ,kBAAkB,CAACF;QAEzD,MAAMG,uBAAuB,MAAM,IAAI,CAACN,MAAM,CAACO,YAAY,CACvDX,KAAKY,GAAG,CAAC,CAACC,OAAS,IAAI,CAACT,MAAM,CAACL,YAAY,CAACD,MAAM,CAAC;gBAAEE,MAAMa;YAAK;QAGpE,OAAOH,qBAAqBE,GAAG,CAACX,kDAAwB,CAACI,QAAQ;IACrE;IAvBAS,YACI,AAAQV,MAAqB,CAC/B;aADUA,SAAAA;IACR;AAsBR;AAzBaP;IADZkB,IAAAA,kBAAU;;;eAGa,4BAAa,4BAAb,4BAAa;;GAFxBlB"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js b/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js new file mode 100644 index 0000000..2a237a9 --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js @@ -0,0 +1,85 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaOrderRepository", { + enumerable: true, + get: function() { + return PrismaOrderRepository; + } +}); +const _common = require("@nestjs/common"); +const _prismaorderdetailsmapper = require("../mapper/prisma-order-details-mapper"); +const _prismaordermapper = require("../mapper/prisma-order-mapper"); +const _prismaservice = require("../prisma.service"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let PrismaOrderRepository = class PrismaOrderRepository { + async findMany() { + const orders = await this.prisma.order.findMany({ + include: { + orderProduct: true + } + }); + return orders.map((item)=>_prismaorderdetailsmapper.PrismaOrderDetailsMapper.toDomain(item)); + } + async findById(id) { + const order = await this.prisma.order.findFirst({ + where: { + id + }, + include: { + orderProduct: true + } + }); + return _prismaorderdetailsmapper.PrismaOrderDetailsMapper.toDomain(order); + } + async create(orderInput) { + const data = _prismaordermapper.PrismaOrderMapper.toPrisma(orderInput); + const orderProducts = orderInput.orderProduct.map((orderProduct)=>({ + productId: orderProduct.product, + price: orderProduct.price + })); + const order = await this.prisma.order.create({ + data: { + ...data, + orderProduct: { + create: orderProducts + } + }, + include: { + orderProduct: true + } + }); + return _prismaordermapper.PrismaOrderMapper.toDomain(order); + } + async update(orderId, orderInput) { + const data = _prismaordermapper.PrismaOrderMapper.toPrisma(orderInput); + const order = await this.prisma.order.update({ + where: { + id: orderId + }, + data + }); + return _prismaordermapper.PrismaOrderMapper.toDomain(order); + } + constructor(prisma){ + this.prisma = prisma; + } +}; +PrismaOrderRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _prismaservice.PrismaService === "undefined" ? Object : _prismaservice.PrismaService + ]) +], PrismaOrderRepository); + +//# sourceMappingURL=prisma-order.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js.map b/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js.map new file mode 100644 index 0000000..6baf872 --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-order.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/repositories/prisma-order.repositoy.ts"],"sourcesContent":["import { OrderRepository } from \"@app/application/ecommerce/ports/order.repositoy\";\nimport { Order } from \"@app/domain/ecommerce/order\";\nimport { Injectable } from \"@nestjs/common\";\nimport { PrismaOrderDetailsMapper } from \"../mapper/prisma-order-details-mapper\";\nimport { PrismaOrderMapper } from \"../mapper/prisma-order-mapper\";\nimport { PrismaService } from \"../prisma.service\";\n\n@Injectable()\nexport class PrismaOrderRepository implements OrderRepository {\n constructor(\n private prisma: PrismaService,\n ) { }\n\n async findMany(): Promise {\n const orders = await this.prisma.order.findMany({\n include: {\n orderProduct: true\n }\n });\n\n return orders.map((item) => PrismaOrderDetailsMapper.toDomain(item));\n }\n\n async findById(id: string): Promise {\n const order = await this.prisma.order.findFirst({\n where: {\n id\n },\n include: {\n orderProduct: true\n }\n });\n\n return PrismaOrderDetailsMapper.toDomain(order);\n }\n\n async create(orderInput: Order): Promise {\n const data = PrismaOrderMapper.toPrisma(orderInput);\n\n const orderProducts = orderInput.orderProduct.map(orderProduct => ({\n productId: orderProduct.product,\n price: orderProduct.price\n }));\n\n const order = await this.prisma.order.create({\n data: {\n ...data,\n orderProduct: {\n create: orderProducts\n }\n },\n include: {\n orderProduct: true\n }\n });\n\n return PrismaOrderMapper.toDomain(order);\n }\n\n async update(orderId: string, orderInput: Order): Promise {\n const data = PrismaOrderMapper.toPrisma(orderInput);\n\n const order = await this.prisma.order.update({\n where: {\n id: orderId\n },\n data,\n });\n\n return PrismaOrderMapper.toDomain(order);\n }\n}"],"names":["PrismaOrderRepository","findMany","orders","prisma","order","include","orderProduct","map","item","PrismaOrderDetailsMapper","toDomain","findById","id","findFirst","where","create","orderInput","data","PrismaOrderMapper","toPrisma","orderProducts","productId","product","price","update","orderId","constructor","Injectable"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBANc;0CACc;mCACP;+BACJ;;;;;;;;;;AAGvB,IAAA,AAAMA,wBAAN,MAAMA;IAKT,MAAMC,WAA6B;QAC/B,MAAMC,SAAS,MAAM,IAAI,CAACC,MAAM,CAACC,KAAK,CAACH,QAAQ,CAAC;YAC5CI,SAAS;gBACLC,cAAc;YAClB;QACJ;QAEA,OAAOJ,OAAOK,GAAG,CAAC,CAACC,OAASC,kDAAwB,CAACC,QAAQ,CAACF;IAClE;IAEA,MAAMG,SAASC,EAAU,EAAkB;QACvC,MAAMR,QAAQ,MAAM,IAAI,CAACD,MAAM,CAACC,KAAK,CAACS,SAAS,CAAC;YAC5CC,OAAO;gBACHF;YACJ;YACAP,SAAS;gBACLC,cAAc;YAClB;QACJ;QAEA,OAAOG,kDAAwB,CAACC,QAAQ,CAACN;IAC7C;IAEA,MAAMW,OAAOC,UAAiB,EAAkB;QAC5C,MAAMC,OAAOC,oCAAiB,CAACC,QAAQ,CAACH;QAExC,MAAMI,gBAAgBJ,WAAWV,YAAY,CAACC,GAAG,CAACD,CAAAA,eAAiB,CAAA;gBAC/De,WAAWf,aAAagB,OAAO;gBAC/BC,OAAOjB,aAAaiB,KAAK;YAC7B,CAAA;QAEA,MAAMnB,QAAQ,MAAM,IAAI,CAACD,MAAM,CAACC,KAAK,CAACW,MAAM,CAAC;YACzCE,MAAM;gBACF,GAAGA,IAAI;gBACPX,cAAc;oBACVS,QAAQK;gBACZ;YACJ;YACAf,SAAS;gBACLC,cAAc;YAClB;QACJ;QAEA,OAAOY,oCAAiB,CAACR,QAAQ,CAACN;IACtC;IAEA,MAAMoB,OAAOC,OAAe,EAAET,UAAiB,EAAkB;QAC7D,MAAMC,OAAOC,oCAAiB,CAACC,QAAQ,CAACH;QAExC,MAAMZ,QAAQ,MAAM,IAAI,CAACD,MAAM,CAACC,KAAK,CAACoB,MAAM,CAAC;YACzCV,OAAO;gBACHF,IAAIa;YACR;YACAR;QACJ;QAEA,OAAOC,oCAAiB,CAACR,QAAQ,CAACN;IACtC;IA7DAsB,YACI,AAAQvB,MAAqB,CAC/B;aADUA,SAAAA;IACR;AA4DR;AA/DaH;IADZ2B,IAAAA,kBAAU;;;eAGa,4BAAa,4BAAb,4BAAa;;GAFxB3B"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js b/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js new file mode 100644 index 0000000..9ea0efb --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaProductRepository", { + enumerable: true, + get: function() { + return PrismaProductRepository; + } +}); +const _common = require("@nestjs/common"); +const _prismaproductmapper = require("../mapper/prisma-product-mapper"); +const _prismaservice = require("../prisma.service"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let PrismaProductRepository = class PrismaProductRepository { + async findMany() { + const products = await this.prisma.product.findMany(); + return products.map((item)=>_prismaproductmapper.PrismaProductMapper.toDomain(item)); + } + async create(product) { + const data = _prismaproductmapper.PrismaProductMapper.toPrisma(product); + const entity = await this.prisma.product.create({ + data + }); + return _prismaproductmapper.PrismaProductMapper.toDomain(entity); + } + constructor(prisma){ + this.prisma = prisma; + } +}; +PrismaProductRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _prismaservice.PrismaService === "undefined" ? Object : _prismaservice.PrismaService + ]) +], PrismaProductRepository); + +//# sourceMappingURL=prisma-product.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js.map b/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js.map new file mode 100644 index 0000000..dced3e4 --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-product.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/repositories/prisma-product.repositoy.ts"],"sourcesContent":["import { ProductRepository } from \"@app/application/ecommerce/ports/product.repositoy\";\nimport { Product } from \"@app/domain/ecommerce/product\";\nimport { Injectable } from \"@nestjs/common\";\nimport { PrismaProductMapper } from \"../mapper/prisma-product-mapper\";\nimport { PrismaService } from \"../prisma.service\";\n\n@Injectable()\nexport class PrismaProductRepository implements ProductRepository {\n constructor(private prisma: PrismaService) { }\n\n async findMany(): Promise {\n const products = await this.prisma.product.findMany();\n\n return products.map((item) => PrismaProductMapper.toDomain(item));\n }\n\n async create(product: Product): Promise {\n const data = PrismaProductMapper.toPrisma(product);\n const entity = await this.prisma.product.create({ data });\n\n return PrismaProductMapper.toDomain(entity);\n }\n}"],"names":["PrismaProductRepository","findMany","products","prisma","product","map","item","PrismaProductMapper","toDomain","create","data","toPrisma","entity","constructor","Injectable"],"mappings":";;;;+BAOaA;;;eAAAA;;;wBALc;qCACS;+BACN;;;;;;;;;;AAGvB,IAAA,AAAMA,0BAAN,MAAMA;IAGT,MAAMC,WAA+B;QACjC,MAAMC,WAAW,MAAM,IAAI,CAACC,MAAM,CAACC,OAAO,CAACH,QAAQ;QAEnD,OAAOC,SAASG,GAAG,CAAC,CAACC,OAASC,wCAAmB,CAACC,QAAQ,CAACF;IAC/D;IAEA,MAAMG,OAAOL,OAAgB,EAAoB;QAC7C,MAAMM,OAAOH,wCAAmB,CAACI,QAAQ,CAACP;QAC1C,MAAMQ,SAAS,MAAM,IAAI,CAACT,MAAM,CAACC,OAAO,CAACK,MAAM,CAAC;YAAEC;QAAK;QAEvD,OAAOH,wCAAmB,CAACC,QAAQ,CAACI;IACxC;IAbAC,YAAY,AAAQV,MAAqB,CAAE;aAAvBA,SAAAA;IAAyB;AAcjD;AAfaH;IADZc,IAAAA,kBAAU;;;eAEqB,4BAAa,4BAAb,4BAAa;;GADhCd"} \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js b/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js new file mode 100644 index 0000000..e8e273d --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrismaUserRepository", { + enumerable: true, + get: function() { + return PrismaUserRepository; + } +}); +const _common = require("@nestjs/common"); +const _prismausermapper = require("../mapper/prisma-user-mapper"); +const _prismaservice = require("../prisma.service"); +const _prismauserdetailsmapper = require("../mapper/prisma-user-details-mapper"); +function _ts_decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function _ts_metadata(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +} +let PrismaUserRepository = class PrismaUserRepository { + async findMany() { + const users = await this.prisma.user.findMany({ + include: { + orders: true + } + }); + return users.map((item)=>_prismauserdetailsmapper.PrismaUserDetailsMapper.toDomain(item)); + } + async create(user) { + const data = _prismausermapper.PrismaUserMapper.toPrisma(user); + const entity = await this.prisma.user.create({ + data + }); + return _prismausermapper.PrismaUserMapper.toDomain(entity); + } + async appendOrder(userId, orderId) { + const user = await this.prisma.user.update({ + where: { + id: userId + }, + data: { + orders: { + connect: { + id: orderId + } + } + } + }); + return _prismausermapper.PrismaUserMapper.toDomain(user); + } + constructor(prisma){ + this.prisma = prisma; + } +}; +PrismaUserRepository = _ts_decorate([ + (0, _common.Injectable)(), + _ts_metadata("design:type", Function), + _ts_metadata("design:paramtypes", [ + typeof _prismaservice.PrismaService === "undefined" ? Object : _prismaservice.PrismaService + ]) +], PrismaUserRepository); + +//# sourceMappingURL=prisma-user.repositoy.js.map \ No newline at end of file diff --git a/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js.map b/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js.map new file mode 100644 index 0000000..e1ec3c4 --- /dev/null +++ b/dist/infra/persistence/prisma/repositories/prisma-user.repositoy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../../src/infra/persistence/prisma/repositories/prisma-user.repositoy.ts"],"sourcesContent":["import { UserRepository } from \"@app/application/ecommerce/ports/user.repositoy\";\nimport { User } from \"@app/domain/ecommerce/user\";\nimport { Injectable } from \"@nestjs/common\";\nimport { PrismaUserMapper } from \"../mapper/prisma-user-mapper\";\nimport { PrismaService } from \"../prisma.service\";\nimport { PrismaUserDetailsMapper } from \"../mapper/prisma-user-details-mapper\";\n\n@Injectable()\nexport class PrismaUserRepository implements UserRepository {\n constructor(private prisma: PrismaService) { }\n\n async findMany(): Promise {\n const users = await this.prisma.user.findMany({\n include: {\n orders: true\n }\n });\n\n return users.map((item) => PrismaUserDetailsMapper.toDomain(item));\n }\n\n async create(user: User): Promise {\n const data = PrismaUserMapper.toPrisma(user);\n const entity = await this.prisma.user.create({ data });\n\n return PrismaUserMapper.toDomain(entity);\n }\n\n async appendOrder(userId: string, orderId: string): Promise {\n const user = await this.prisma.user.update({\n where: { id: userId },\n data: {\n orders: {\n connect: { id: orderId }\n }\n }\n });\n\n return PrismaUserMapper.toDomain(user);\n }\n}"],"names":["PrismaUserRepository","findMany","users","prisma","user","include","orders","map","item","PrismaUserDetailsMapper","toDomain","create","data","PrismaUserMapper","toPrisma","entity","appendOrder","userId","orderId","update","where","id","connect","constructor","Injectable"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBANc;kCACM;+BACH;yCACU;;;;;;;;;;AAGjC,IAAA,AAAMA,uBAAN,MAAMA;IAGT,MAAMC,WAA4B;QAC9B,MAAMC,QAAQ,MAAM,IAAI,CAACC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC;YAC1CI,SAAS;gBACLC,QAAQ;YACZ;QACJ;QAEA,OAAOJ,MAAMK,GAAG,CAAC,CAACC,OAASC,gDAAuB,CAACC,QAAQ,CAACF;IAChE;IAEA,MAAMG,OAAOP,IAAU,EAAiB;QACpC,MAAMQ,OAAOC,kCAAgB,CAACC,QAAQ,CAACV;QACvC,MAAMW,SAAS,MAAM,IAAI,CAACZ,MAAM,CAACC,IAAI,CAACO,MAAM,CAAC;YAAEC;QAAK;QAEpD,OAAOC,kCAAgB,CAACH,QAAQ,CAACK;IACrC;IAEA,MAAMC,YAAYC,MAAc,EAAEC,OAAe,EAAiB;QAC9D,MAAMd,OAAO,MAAM,IAAI,CAACD,MAAM,CAACC,IAAI,CAACe,MAAM,CAAC;YACvCC,OAAO;gBAAEC,IAAIJ;YAAO;YACpBL,MAAM;gBACFN,QAAQ;oBACJgB,SAAS;wBAAED,IAAIH;oBAAQ;gBAC3B;YACJ;QACJ;QAEA,OAAOL,kCAAgB,CAACH,QAAQ,CAACN;IACrC;IA9BAmB,YAAY,AAAQpB,MAAqB,CAAE;aAAvBA,SAAAA;IAAyB;AA+BjD;AAhCaH;IADZwB,IAAAA,kBAAU;;;eAEqB,4BAAa,4BAAb,4BAAa;;GADhCxB"} \ No newline at end of file diff --git a/dist/main.js b/dist/main.js new file mode 100644 index 0000000..da63768 --- /dev/null +++ b/dist/main.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _core = require("@nestjs/core"); +const _appmodule = require("./app.module"); +const _envservice = require("./infra/env/env.service"); +const _swagger = require("@nestjs/swagger"); +const _common = require("@nestjs/common"); +async function bootstrap() { + const app = await _core.NestFactory.create(_appmodule.AppModule, { + snapshot: true, + rawBody: true + }); + const configService = app.get(_envservice.EnvService); + const port = configService.get('PORT'); + function getSwaggerServerUrl() { + switch(process.env.NODE_ENV){ + case 'production': + return 'https://nestjs-ecommerce-alpha.vercel.app'; + default: + return `http://localhost:${port}`; + } + } + app.useGlobalPipes(new _common.ValidationPipe({ + transform: true, + whitelist: true + })); + const config = new _swagger.DocumentBuilder().setTitle('API').setVersion('0.1').addServer(getSwaggerServerUrl()).build(); + const document = _swagger.SwaggerModule.createDocument(app, config); + _swagger.SwaggerModule.setup('api', app, document); + await app.listen(port); +} +bootstrap(); + +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/dist/main.js.map b/dist/main.js.map new file mode 100644 index 0000000..5e4bf94 --- /dev/null +++ b/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/main.ts"],"sourcesContent":["import { NestFactory } from '@nestjs/core';\nimport { AppModule } from './app.module';\nimport { EnvService } from './infra/env/env.service';\nimport { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';\nimport { ValidationPipe } from '@nestjs/common';\n\nasync function bootstrap() {\n const app = await NestFactory.create(AppModule, {\n snapshot: true,\n rawBody: true,\n })\n\n const configService = app.get(EnvService)\n const port = configService.get('PORT')\n\n function getSwaggerServerUrl() {\n switch (process.env.NODE_ENV) {\n case 'production':\n return 'https://nestjs-ecommerce-alpha.vercel.app';\n default:\n return `http://localhost:${port}`;\n }\n }\n\n app.useGlobalPipes(new ValidationPipe({\n transform: true,\n whitelist: true,\n }));\n\n const config = new DocumentBuilder()\n .setTitle('API')\n .setVersion('0.1')\n .addServer(getSwaggerServerUrl())\n .build();\n const document = SwaggerModule.createDocument(app, config);\n SwaggerModule.setup('api', app, document);\n\n await app.listen(port);\n}\nbootstrap();\n"],"names":["bootstrap","app","NestFactory","create","AppModule","snapshot","rawBody","configService","get","EnvService","port","getSwaggerServerUrl","process","env","NODE_ENV","useGlobalPipes","ValidationPipe","transform","whitelist","config","DocumentBuilder","setTitle","setVersion","addServer","build","document","SwaggerModule","createDocument","setup","listen"],"mappings":";;;;sBAA4B;2BACF;4BACC;yBACoB;wBAChB;AAE/B,eAAeA;IACb,MAAMC,MAAM,MAAMC,iBAAW,CAACC,MAAM,CAACC,oBAAS,EAAE;QAC9CC,UAAU;QACVC,SAAS;IACX;IAEA,MAAMC,gBAAgBN,IAAIO,GAAG,CAACC,sBAAU;IACxC,MAAMC,OAAOH,cAAcC,GAAG,CAAC;IAE/B,SAASG;QACP,OAAQC,QAAQC,GAAG,CAACC,QAAQ;YAC1B,KAAK;gBACH,OAAO;YACT;gBACE,OAAO,CAAC,iBAAiB,EAAEJ,KAAK,CAAC;QACrC;IACF;IAEAT,IAAIc,cAAc,CAAC,IAAIC,sBAAc,CAAC;QACpCC,WAAW;QACXC,WAAW;IACb;IAEA,MAAMC,SAAS,IAAIC,wBAAe,GAC/BC,QAAQ,CAAC,OACTC,UAAU,CAAC,OACXC,SAAS,CAACZ,uBACVa,KAAK;IACR,MAAMC,WAAWC,sBAAa,CAACC,cAAc,CAAC1B,KAAKkB;IACnDO,sBAAa,CAACE,KAAK,CAAC,OAAO3B,KAAKwB;IAEhC,MAAMxB,IAAI4B,MAAM,CAACnB;AACnB;AACAV"} \ No newline at end of file