@infrab4a/connect 0.11.0 → 0.13.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bundles/infrab4a-connect.umd.js +157 -5
  2. package/bundles/infrab4a-connect.umd.js.map +1 -1
  3. package/esm2015/lib/domain/catalog/models/product.js +1 -1
  4. package/esm2015/lib/domain/catalog/models/types/product-review.type.js +1 -1
  5. package/esm2015/lib/domain/general/repository/enums/where.enum.js +2 -1
  6. package/esm2015/lib/domain/users/errors/index.js +3 -1
  7. package/esm2015/lib/domain/users/errors/user-already-registered.error.js +7 -0
  8. package/esm2015/lib/domain/users/errors/weak-password.error.js +7 -0
  9. package/esm2015/lib/domain/users/models/subscription/enums/edition-status.enum.js +2 -1
  10. package/esm2015/lib/domain/users/repositories/user.repository.js +1 -1
  11. package/esm2015/lib/domain/users/services/authentication.service.js +1 -1
  12. package/esm2015/lib/domain/users/services/index.js +3 -1
  13. package/esm2015/lib/domain/users/services/register.service.js +2 -0
  14. package/esm2015/lib/domain/users/services/types/basic-user-data.type.js +2 -0
  15. package/esm2015/lib/domain/users/services/types/index.js +2 -0
  16. package/esm2015/lib/domain/users/use-cases/index.js +2 -1
  17. package/esm2015/lib/domain/users/use-cases/register.js +29 -0
  18. package/esm2015/lib/infra/firebase/auth/authentication-firebase-auth.service.js +18 -4
  19. package/esm2015/lib/infra/firebase/auth/index.js +2 -1
  20. package/esm2015/lib/infra/firebase/auth/register-firebase-auth.service.js +26 -0
  21. package/esm2015/lib/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -0
  22. package/esm2015/lib/infra/firebase/firestore/models/user-search.js +7 -0
  23. package/esm2015/lib/infra/firebase/firestore/repositories/users/index.js +2 -1
  24. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +11 -3
  25. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.js +12 -0
  26. package/fesm2015/infrab4a-connect.js +108 -5
  27. package/fesm2015/infrab4a-connect.js.map +1 -1
  28. package/lib/domain/catalog/models/product.d.ts +0 -1
  29. package/lib/domain/catalog/models/types/product-review.type.d.ts +1 -1
  30. package/lib/domain/general/repository/enums/where.enum.d.ts +1 -0
  31. package/lib/domain/users/errors/index.d.ts +2 -0
  32. package/lib/domain/users/errors/user-already-registered.error.d.ts +4 -0
  33. package/lib/domain/users/errors/weak-password.error.d.ts +4 -0
  34. package/lib/domain/users/models/subscription/enums/edition-status.enum.d.ts +2 -1
  35. package/lib/domain/users/repositories/user.repository.d.ts +2 -0
  36. package/lib/domain/users/services/authentication.service.d.ts +4 -5
  37. package/lib/domain/users/services/index.d.ts +2 -0
  38. package/lib/domain/users/services/register.service.d.ts +7 -0
  39. package/lib/domain/users/services/types/basic-user-data.type.d.ts +4 -0
  40. package/lib/domain/users/services/types/index.d.ts +1 -0
  41. package/lib/domain/users/use-cases/index.d.ts +1 -0
  42. package/lib/domain/users/use-cases/register.d.ts +13 -0
  43. package/lib/infra/firebase/auth/authentication-firebase-auth.service.d.ts +5 -4
  44. package/lib/infra/firebase/auth/index.d.ts +1 -0
  45. package/lib/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -0
  46. package/lib/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -0
  47. package/lib/infra/firebase/firestore/models/user-search.d.ts +9 -0
  48. package/lib/infra/firebase/firestore/repositories/users/index.d.ts +1 -0
  49. package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +4 -1
  50. package/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +50 -0
  51. package/package.json +1 -1
@@ -25,6 +25,7 @@
25
25
  exports.Where = void 0;
26
26
  (function (Where) {
27
27
  Where["EQUALS"] = "==";
28
+ Where["NOTEQUALS"] = "!=";
28
29
  Where["GT"] = ">";
29
30
  Where["GTE"] = ">=";
30
31
  Where["IN"] = "in";
@@ -246,6 +247,7 @@
246
247
  exports.EditionStatus = void 0;
247
248
  (function (EditionStatus) {
248
249
  EditionStatus["ALLOCATION_WAITING"] = "Aguardando aloca\u00E7\u00E3o";
250
+ EditionStatus["SHIPPED"] = "Enviado";
249
251
  })(exports.EditionStatus || (exports.EditionStatus = {}));
250
252
 
251
253
  exports.PaymentType = void 0;
@@ -1004,6 +1006,44 @@
1004
1006
  return Authentication;
1005
1007
  }());
1006
1008
 
1009
+ var Register = /** @class */ (function () {
1010
+ function Register(registerService, userRepository) {
1011
+ this.registerService = registerService;
1012
+ this.userRepository = userRepository;
1013
+ }
1014
+ Register.prototype.register = function (params) {
1015
+ return __awaiter(this, void 0, void 0, function () {
1016
+ var email, displayName, auth, user;
1017
+ return __generator(this, function (_a) {
1018
+ switch (_a.label) {
1019
+ case 0:
1020
+ email = params.email.toLocaleLowerCase();
1021
+ displayName = params.firstName + " " + params.lastName;
1022
+ return [4 /*yield*/, this.registerService.register({
1023
+ birthday: params.birthday,
1024
+ email: email,
1025
+ firstName: params.firstName,
1026
+ lastName: params.lastName,
1027
+ cpf: params.cpf,
1028
+ displayName: displayName,
1029
+ phone: params.phone,
1030
+ password: params.password,
1031
+ })];
1032
+ case 1:
1033
+ auth = _a.sent();
1034
+ delete params.password;
1035
+ return [4 /*yield*/, this.userRepository.create(Object.assign(Object.assign({}, params), { id: auth.id, email: email,
1036
+ displayName: displayName, type: exports.UserType.B2C, dateCreated: new Date(), dateModified: new Date() }))];
1037
+ case 2:
1038
+ user = _a.sent();
1039
+ return [2 /*return*/, user];
1040
+ }
1041
+ });
1042
+ });
1043
+ };
1044
+ return Register;
1045
+ }());
1046
+
1007
1047
  var SignOut = /** @class */ (function () {
1008
1048
  function SignOut(authService) {
1009
1049
  this.authService = authService;
@@ -1023,6 +1063,27 @@
1023
1063
  return SignOut;
1024
1064
  }());
1025
1065
 
1066
+ var UserAlreadyRegisteredError = /** @class */ (function (_super) {
1067
+ __extends(UserAlreadyRegisteredError, _super);
1068
+ function UserAlreadyRegisteredError(message) {
1069
+ var _this = _super.call(this, message) || this;
1070
+ _this.message = message;
1071
+ return _this;
1072
+ }
1073
+ return UserAlreadyRegisteredError;
1074
+ }(Error));
1075
+
1076
+ var WeakPasswordError = /** @class */ (function (_super) {
1077
+ __extends(WeakPasswordError, _super);
1078
+ function WeakPasswordError(message) {
1079
+ if (message === void 0) { message = 'Weak password'; }
1080
+ var _this = _super.call(this, message) || this;
1081
+ _this.message = message;
1082
+ return _this;
1083
+ }
1084
+ return WeakPasswordError;
1085
+ }(Error));
1086
+
1026
1087
  exports.Shops = void 0;
1027
1088
  (function (Shops) {
1028
1089
  Shops["MENSMARKET"] = "mensmarket";
@@ -1755,11 +1816,36 @@
1755
1816
  return SubscriptionFirestoreRepository;
1756
1817
  }(withCrudFirestore(withHelpers(withFirestore(Base)))));
1757
1818
 
1819
+ var UserSearch = /** @class */ (function (_super) {
1820
+ __extends(UserSearch, _super);
1821
+ function UserSearch() {
1822
+ return _super !== null && _super.apply(this, arguments) || this;
1823
+ }
1824
+ UserSearch.prototype.identifierFields = function () {
1825
+ return ['id'];
1826
+ };
1827
+ return UserSearch;
1828
+ }(BaseModel));
1829
+
1830
+ var UserSearchFirestoreRepository = /** @class */ (function (_super) {
1831
+ __extends(UserSearchFirestoreRepository, _super);
1832
+ function UserSearchFirestoreRepository(firestore) {
1833
+ var _this = _super.call(this) || this;
1834
+ _this.firestore = firestore;
1835
+ _this.collectionName = 'userSearch';
1836
+ _this.model = UserSearch;
1837
+ return _this;
1838
+ }
1839
+ return UserSearchFirestoreRepository;
1840
+ }(withCrudFirestore(withHelpers(withFirestore(Base)))));
1841
+
1758
1842
  var UserFirestoreRepository = /** @class */ (function (_super_1) {
1759
1843
  __extends(UserFirestoreRepository, _super_1);
1760
- function UserFirestoreRepository(firestore) {
1844
+ function UserFirestoreRepository(firestore, userSearchFirestoreRepository) {
1845
+ if (userSearchFirestoreRepository === void 0) { userSearchFirestoreRepository = new UserSearchFirestoreRepository(firestore); }
1761
1846
  var _this = _super_1.call(this) || this;
1762
1847
  _this.firestore = firestore;
1848
+ _this.userSearchFirestoreRepository = userSearchFirestoreRepository;
1763
1849
  _this.collectionName = 'users';
1764
1850
  _this.model = User;
1765
1851
  return _this;
@@ -1788,6 +1874,20 @@
1788
1874
  });
1789
1875
  });
1790
1876
  };
1877
+ UserFirestoreRepository.prototype.checkIfExistsByField = function (field, value) {
1878
+ return __awaiter(this, void 0, void 0, function () {
1879
+ var result;
1880
+ var _a;
1881
+ return __generator(this, function (_b) {
1882
+ switch (_b.label) {
1883
+ case 0: return [4 /*yield*/, this.userSearchFirestoreRepository.find([(_a = {}, _a[field] = { operator: exports.Where.EQUALS, value: value }, _a)])];
1884
+ case 1:
1885
+ result = _b.sent();
1886
+ return [2 /*return*/, result.count > 0];
1887
+ }
1888
+ });
1889
+ });
1890
+ };
1791
1891
  UserFirestoreRepository.prototype.buildModelInstance = function () {
1792
1892
  var _a = _super_1.prototype.buildModelInstance.call(this), fromFirestore = _a.fromFirestore, toFirestore = _a.toFirestore;
1793
1893
  return {
@@ -2254,7 +2354,13 @@
2254
2354
  case 1:
2255
2355
  credentials = _a.sent();
2256
2356
  user = credentials.user;
2257
- return [2 /*return*/, { id: user.uid, displayName: user.displayName, email: user.email, phone: user.phoneNumber }];
2357
+ return [2 /*return*/, {
2358
+ id: user.uid,
2359
+ displayName: user.displayName,
2360
+ email: user.email,
2361
+ phone: user.phoneNumber,
2362
+ isAnonymous: false,
2363
+ }];
2258
2364
  }
2259
2365
  });
2260
2366
  });
@@ -2268,7 +2374,13 @@
2268
2374
  case 1:
2269
2375
  credentials = _a.sent();
2270
2376
  user = credentials.user;
2271
- return [2 /*return*/, { id: user.uid, displayName: user.displayName, email: user.email, phone: user.phoneNumber }];
2377
+ return [2 /*return*/, {
2378
+ id: user.uid,
2379
+ displayName: user.displayName,
2380
+ email: user.email,
2381
+ phone: user.phoneNumber,
2382
+ isAnonymous: false,
2383
+ }];
2272
2384
  }
2273
2385
  });
2274
2386
  });
@@ -2283,13 +2395,15 @@
2283
2395
  };
2284
2396
  AuthenticationFirebaseAuthService.prototype.signInAnonymously = function () {
2285
2397
  return __awaiter(this, void 0, void 0, function () {
2286
- var auth;
2398
+ var auth, user;
2287
2399
  return __generator(this, function (_a) {
2288
2400
  switch (_a.label) {
2289
2401
  case 0: return [4 /*yield*/, this.firebaseAuth.signInAnonymously()];
2290
2402
  case 1:
2291
2403
  auth = _a.sent();
2292
- return [2 /*return*/, auth.user];
2404
+ user = auth.user;
2405
+ user.id = auth.user.uid;
2406
+ return [2 /*return*/, user];
2293
2407
  }
2294
2408
  });
2295
2409
  });
@@ -2297,6 +2411,39 @@
2297
2411
  return AuthenticationFirebaseAuthService;
2298
2412
  }());
2299
2413
 
2414
+ var RegisterFirebaseAuthService = /** @class */ (function () {
2415
+ function RegisterFirebaseAuthService(firebaseAuth) {
2416
+ this.firebaseAuth = firebaseAuth;
2417
+ }
2418
+ RegisterFirebaseAuthService.prototype.register = function (params) {
2419
+ return __awaiter(this, void 0, void 0, function () {
2420
+ var auth, user, error_1;
2421
+ return __generator(this, function (_a) {
2422
+ switch (_a.label) {
2423
+ case 0:
2424
+ _a.trys.push([0, 2, , 3]);
2425
+ return [4 /*yield*/, this.firebaseAuth.createUserWithEmailAndPassword(params.email, params.password)];
2426
+ case 1:
2427
+ auth = _a.sent();
2428
+ user = auth.user;
2429
+ user.sendEmailVerification();
2430
+ user.id = auth.user.uid;
2431
+ return [2 /*return*/, user];
2432
+ case 2:
2433
+ error_1 = _a.sent();
2434
+ if (error_1.code === 'auth/email-already-in-use')
2435
+ throw new UserAlreadyRegisteredError('Email already registered');
2436
+ if (error_1.code === 'auth/weak-password')
2437
+ throw new WeakPasswordError();
2438
+ throw error_1;
2439
+ case 3: return [2 /*return*/];
2440
+ }
2441
+ });
2442
+ });
2443
+ };
2444
+ return RegisterFirebaseAuthService;
2445
+ }());
2446
+
2300
2447
  /**
2301
2448
  * Generated bundle index. Do not edit.
2302
2449
  */
@@ -2364,6 +2511,8 @@
2364
2511
  exports.Product = Product;
2365
2512
  exports.ProductFirestoreRepository = ProductFirestoreRepository;
2366
2513
  exports.ProductVariantFirestoreRepository = ProductVariantFirestoreRepository;
2514
+ exports.Register = Register;
2515
+ exports.RegisterFirebaseAuthService = RegisterFirebaseAuthService;
2367
2516
  exports.RequiredArgumentError = RequiredArgumentError;
2368
2517
  exports.ShippingMethod = ShippingMethod;
2369
2518
  exports.ShopMenu = ShopMenu;
@@ -2381,11 +2530,14 @@
2381
2530
  exports.User = User;
2382
2531
  exports.UserAddress = UserAddress;
2383
2532
  exports.UserAddressFirestoreRepository = UserAddressFirestoreRepository;
2533
+ exports.UserAlreadyRegisteredError = UserAlreadyRegisteredError;
2384
2534
  exports.UserBeautyProfileFirestoreRepository = UserBeautyProfileFirestoreRepository;
2385
2535
  exports.UserFirestoreRepository = UserFirestoreRepository;
2386
2536
  exports.UserPaymentMethod = UserPaymentMethod;
2387
2537
  exports.UserPaymentMethodFirestoreRepository = UserPaymentMethodFirestoreRepository;
2538
+ exports.UserSearchFirestoreRepository = UserSearchFirestoreRepository;
2388
2539
  exports.Variant = Variant;
2540
+ exports.WeakPasswordError = WeakPasswordError;
2389
2541
  exports.withCreateFirestore = withCreateFirestore;
2390
2542
  exports.withCrudFirestore = withCrudFirestore;
2391
2543
  exports.withDeleteFirestore = withDeleteFirestore;