@things-factory/auth-base 7.0.1-beta.9 → 7.0.1-rc.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 (246) hide show
  1. package/dist-client/auth.js.map +1 -1
  2. package/dist-client/directive/privileged.d.ts +5 -5
  3. package/dist-client/directive/privileged.js.map +1 -1
  4. package/dist-client/profiled.js.map +1 -1
  5. package/dist-client/reducers/auth.js.map +1 -1
  6. package/dist-client/tsconfig.tsbuildinfo +1 -1
  7. package/dist-server/controllers/change-pwd.js +1 -2
  8. package/dist-server/controllers/change-pwd.js.map +1 -1
  9. package/dist-server/controllers/checkin.js +1 -2
  10. package/dist-server/controllers/checkin.js.map +1 -1
  11. package/dist-server/controllers/delete-user.js +2 -3
  12. package/dist-server/controllers/delete-user.js.map +1 -1
  13. package/dist-server/controllers/invitation.js +4 -5
  14. package/dist-server/controllers/invitation.js.map +1 -1
  15. package/dist-server/controllers/profile.js +1 -2
  16. package/dist-server/controllers/profile.js.map +1 -1
  17. package/dist-server/controllers/reset-password.js +2 -3
  18. package/dist-server/controllers/reset-password.js.map +1 -1
  19. package/dist-server/controllers/signin.js +1 -2
  20. package/dist-server/controllers/signin.js.map +1 -1
  21. package/dist-server/controllers/signup.js +1 -2
  22. package/dist-server/controllers/signup.js.map +1 -1
  23. package/dist-server/controllers/unlock-user.js +2 -3
  24. package/dist-server/controllers/unlock-user.js.map +1 -1
  25. package/dist-server/controllers/utils/make-invitation-token.js +1 -2
  26. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  27. package/dist-server/controllers/utils/make-verification-token.js +1 -2
  28. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  29. package/dist-server/controllers/utils/password-rule.js +10 -10
  30. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  31. package/dist-server/controllers/utils/save-invitation-token.js +1 -2
  32. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  33. package/dist-server/controllers/utils/save-verification-token.js +1 -2
  34. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  35. package/dist-server/controllers/verification.js +3 -4
  36. package/dist-server/controllers/verification.js.map +1 -1
  37. package/dist-server/index.js.map +1 -1
  38. package/dist-server/middlewares/authenticate-401-middleware.js +1 -2
  39. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  40. package/dist-server/middlewares/domain-authenticate-middleware.js +1 -2
  41. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  42. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -2
  43. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  44. package/dist-server/middlewares/index.js +1 -2
  45. package/dist-server/middlewares/index.js.map +1 -1
  46. package/dist-server/middlewares/jwt-authenticate-middleware.js +1 -2
  47. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  48. package/dist-server/middlewares/signin-middleware.js +1 -2
  49. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  50. package/dist-server/middlewares/webauthn-middleware.js +2 -2
  51. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  52. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  53. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  54. package/dist-server/router/auth-checkin-router.js.map +1 -1
  55. package/dist-server/router/auth-private-process-router.js.map +1 -1
  56. package/dist-server/router/auth-public-process-router.js.map +1 -1
  57. package/dist-server/router/auth-signin-router.js.map +1 -1
  58. package/dist-server/router/auth-signup-router.js.map +1 -1
  59. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  60. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  61. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  62. package/dist-server/router/oauth2/passport-oauth2-client-password.js +1 -2
  63. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  64. package/dist-server/router/oauth2/passport-refresh-token.js +1 -2
  65. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  66. package/dist-server/router/site-root-router.js.map +1 -1
  67. package/dist-server/routes.js.map +1 -1
  68. package/dist-server/service/app-binding/app-binding-mutation.js +2 -2
  69. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  70. package/dist-server/service/app-binding/app-binding-query.js +3 -3
  71. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  72. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  73. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  74. package/dist-server/service/app-binding/app-binding.js +2 -2
  75. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  76. package/dist-server/service/appliance/appliance-mutation.js +2 -2
  77. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  78. package/dist-server/service/appliance/appliance-query.js +4 -4
  79. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  80. package/dist-server/service/appliance/appliance-types.js +6 -6
  81. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  82. package/dist-server/service/appliance/appliance.js +2 -2
  83. package/dist-server/service/appliance/appliance.js.map +1 -1
  84. package/dist-server/service/application/application-mutation.js +2 -2
  85. package/dist-server/service/application/application-mutation.js.map +1 -1
  86. package/dist-server/service/application/application-query.js +3 -3
  87. package/dist-server/service/application/application-query.js.map +1 -1
  88. package/dist-server/service/application/application-types.js +8 -8
  89. package/dist-server/service/application/application-types.js.map +1 -1
  90. package/dist-server/service/application/application.js +6 -6
  91. package/dist-server/service/application/application.js.map +1 -1
  92. package/dist-server/service/auth-provider/auth-provider-mutation.js +2 -2
  93. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  94. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js +2 -2
  95. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js.map +1 -1
  96. package/dist-server/service/auth-provider/auth-provider-query.js +3 -3
  97. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  98. package/dist-server/service/auth-provider/auth-provider-type.js +6 -6
  99. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  100. package/dist-server/service/auth-provider/auth-provider.js +6 -6
  101. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  102. package/dist-server/service/domain-generator/domain-generator-mutation.js +2 -2
  103. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  104. package/dist-server/service/domain-generator/domain-generator-types.js +6 -6
  105. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  106. package/dist-server/service/granted-role/granted-role-mutation.js +6 -6
  107. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  108. package/dist-server/service/granted-role/granted-role-query.js +2 -2
  109. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  110. package/dist-server/service/granted-role/granted-role.js +2 -2
  111. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  112. package/dist-server/service/invitation/invitation-mutation.js +2 -2
  113. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  114. package/dist-server/service/invitation/invitation-query.js +2 -2
  115. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  116. package/dist-server/service/invitation/invitation-types.js +2 -2
  117. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  118. package/dist-server/service/invitation/invitation.js +2 -2
  119. package/dist-server/service/invitation/invitation.js.map +1 -1
  120. package/dist-server/service/login-history/login-history-query.js +3 -3
  121. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  122. package/dist-server/service/login-history/login-history-type.js +2 -2
  123. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  124. package/dist-server/service/login-history/login-history.js +2 -2
  125. package/dist-server/service/login-history/login-history.js.map +1 -1
  126. package/dist-server/service/partner/partner-mutation.js +2 -2
  127. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  128. package/dist-server/service/partner/partner-query.js +4 -4
  129. package/dist-server/service/partner/partner-query.js.map +1 -1
  130. package/dist-server/service/partner/partner-types.js +2 -2
  131. package/dist-server/service/partner/partner-types.js.map +1 -1
  132. package/dist-server/service/partner/partner.js +2 -2
  133. package/dist-server/service/partner/partner.js.map +1 -1
  134. package/dist-server/service/password-history/password-history.js +2 -2
  135. package/dist-server/service/password-history/password-history.js.map +1 -1
  136. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  137. package/dist-server/service/privilege/privilege-mutation.js +2 -2
  138. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  139. package/dist-server/service/privilege/privilege-query.js +3 -3
  140. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  141. package/dist-server/service/privilege/privilege-types.js +8 -8
  142. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  143. package/dist-server/service/privilege/privilege.js +6 -6
  144. package/dist-server/service/privilege/privilege.js.map +1 -1
  145. package/dist-server/service/role/role-mutation.js +2 -2
  146. package/dist-server/service/role/role-mutation.js.map +1 -1
  147. package/dist-server/service/role/role-query.js +3 -3
  148. package/dist-server/service/role/role-query.js.map +1 -1
  149. package/dist-server/service/role/role-types.js +10 -10
  150. package/dist-server/service/role/role-types.js.map +1 -1
  151. package/dist-server/service/role/role.js +2 -2
  152. package/dist-server/service/role/role.js.map +1 -1
  153. package/dist-server/service/user/domain-query.js +2 -2
  154. package/dist-server/service/user/domain-query.js.map +1 -1
  155. package/dist-server/service/user/user-mutation.js +2 -2
  156. package/dist-server/service/user/user-mutation.js.map +1 -1
  157. package/dist-server/service/user/user-query.js +3 -3
  158. package/dist-server/service/user/user-query.js.map +1 -1
  159. package/dist-server/service/user/user-types.js +6 -6
  160. package/dist-server/service/user/user-types.js.map +1 -1
  161. package/dist-server/service/user/user.js +5 -5
  162. package/dist-server/service/user/user.js.map +1 -1
  163. package/dist-server/service/users-auth-providers/users-auth-providers.js +2 -2
  164. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  165. package/dist-server/service/verification-token/verification-token.js +3 -3
  166. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  167. package/dist-server/service/web-auth-credential/web-auth-credential.js +2 -2
  168. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  169. package/dist-server/templates/account-unlock-email.js +1 -2
  170. package/dist-server/templates/account-unlock-email.js.map +1 -1
  171. package/dist-server/templates/invitation-email.js +1 -2
  172. package/dist-server/templates/invitation-email.js.map +1 -1
  173. package/dist-server/templates/reset-password-email.js +1 -2
  174. package/dist-server/templates/reset-password-email.js.map +1 -1
  175. package/dist-server/templates/verification-email.js +1 -2
  176. package/dist-server/templates/verification-email.js.map +1 -1
  177. package/dist-server/tsconfig.tsbuildinfo +1 -1
  178. package/dist-server/utils/accepts.js +1 -2
  179. package/dist-server/utils/accepts.js.map +1 -1
  180. package/dist-server/utils/access-token-cookie.js +4 -5
  181. package/dist-server/utils/access-token-cookie.js.map +1 -1
  182. package/dist-server/utils/check-permission.js +1 -2
  183. package/dist-server/utils/check-permission.js.map +1 -1
  184. package/dist-server/utils/check-user-belongs-domain.js +1 -2
  185. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  186. package/dist-server/utils/encrypt-state.js +2 -3
  187. package/dist-server/utils/encrypt-state.js.map +1 -1
  188. package/dist-server/utils/get-aes-256-key.js.map +1 -1
  189. package/dist-server/utils/get-domain-from-hostname.js +1 -2
  190. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  191. package/dist-server/utils/get-domain-users.js +2 -3
  192. package/dist-server/utils/get-domain-users.js.map +1 -1
  193. package/dist-server/utils/get-secret.js.map +1 -1
  194. package/dist-server/utils/get-user-domains.js +4 -5
  195. package/dist-server/utils/get-user-domains.js.map +1 -1
  196. package/helps/config/SECRET.ja.md +13 -0
  197. package/helps/config/SECRET.ko.md +13 -0
  198. package/helps/config/SECRET.md +3 -3
  199. package/helps/config/SECRET.ms.md +13 -0
  200. package/helps/config/SECRET.zh.md +13 -0
  201. package/helps/config/accessTokenCookieKey.ja.md +11 -0
  202. package/helps/config/accessTokenCookieKey.ko.md +11 -0
  203. package/helps/config/accessTokenCookieKey.md +1 -1
  204. package/helps/config/accessTokenCookieKey.ms.md +11 -0
  205. package/helps/config/accessTokenCookieKey.zh.md +11 -0
  206. package/helps/config/applianceJwtExpiresIn.ja.md +26 -0
  207. package/helps/config/applianceJwtExpiresIn.ko.md +26 -0
  208. package/helps/config/applianceJwtExpiresIn.md +18 -15
  209. package/helps/config/applianceJwtExpiresIn.ms.md +30 -0
  210. package/helps/config/applianceJwtExpiresIn.zh.md +26 -0
  211. package/helps/config/disableUserSignupProcess.ja.md +22 -0
  212. package/helps/config/disableUserSignupProcess.ko.md +22 -0
  213. package/helps/config/disableUserSignupProcess.md +3 -3
  214. package/helps/config/disableUserSignupProcess.ms.md +22 -0
  215. package/helps/config/disableUserSignupProcess.zh.md +22 -0
  216. package/helps/config/i18n.ja.md +44 -0
  217. package/helps/config/i18n.ko.md +44 -0
  218. package/helps/config/i18n.md +6 -6
  219. package/helps/config/i18n.ms.md +44 -0
  220. package/helps/config/i18n.zh.md +44 -0
  221. package/helps/config/password.ja.md +53 -0
  222. package/helps/config/password.ko.md +65 -0
  223. package/helps/config/password.md +8 -36
  224. package/helps/config/password.ms.md +65 -0
  225. package/helps/config/password.zh.md +65 -0
  226. package/helps/config/publicHomeRoute.ja.md +14 -0
  227. package/helps/config/publicHomeRoute.ko.md +14 -0
  228. package/helps/config/publicHomeRoute.md +3 -3
  229. package/helps/config/publicHomeRoute.ms.md +14 -0
  230. package/helps/config/publicHomeRoute.zh.md +14 -0
  231. package/helps/config/session.ja.md +45 -0
  232. package/helps/config/session.ko.md +49 -0
  233. package/helps/config/session.md +10 -10
  234. package/helps/config/session.ms.md +46 -0
  235. package/helps/config/session.zh.md +49 -0
  236. package/package.json +6 -6
  237. package/server/service/app-binding/app-binding-query.ts +1 -1
  238. package/server/service/appliance/appliance-query.ts +5 -2
  239. package/server/service/application/application-query.ts +1 -1
  240. package/server/service/application/application.ts +2 -2
  241. package/server/service/auth-provider/auth-provider-query.ts +4 -1
  242. package/server/service/login-history/login-history-query.ts +4 -1
  243. package/server/service/partner/partner-query.ts +5 -2
  244. package/server/service/privilege/privilege-query.ts +14 -3
  245. package/server/service/role/role-query.ts +1 -1
  246. package/server/service/user/user-query.ts +1 -1
@@ -8,6 +8,7 @@ const shell_1 = require("@things-factory/shell");
8
8
  const role_types_1 = require("../role/role-types");
9
9
  let DomainGeneratorInput = class DomainGeneratorInput {
10
10
  };
11
+ exports.DomainGeneratorInput = DomainGeneratorInput;
11
12
  tslib_1.__decorate([
12
13
  (0, type_graphql_1.Field)(),
13
14
  tslib_1.__metadata("design:type", String)
@@ -16,12 +17,12 @@ tslib_1.__decorate([
16
17
  (0, type_graphql_1.Field)({ nullable: true }),
17
18
  tslib_1.__metadata("design:type", String)
18
19
  ], DomainGeneratorInput.prototype, "description", void 0);
19
- DomainGeneratorInput = tslib_1.__decorate([
20
+ exports.DomainGeneratorInput = DomainGeneratorInput = tslib_1.__decorate([
20
21
  (0, type_graphql_1.InputType)()
21
22
  ], DomainGeneratorInput);
22
- exports.DomainGeneratorInput = DomainGeneratorInput;
23
23
  let DomainUserRoleInput = class DomainUserRoleInput {
24
24
  };
25
+ exports.DomainUserRoleInput = DomainUserRoleInput;
25
26
  tslib_1.__decorate([
26
27
  (0, type_graphql_1.Field)(type => shell_1.DomainInput),
27
28
  tslib_1.__metadata("design:type", shell_1.DomainInput)
@@ -34,12 +35,12 @@ tslib_1.__decorate([
34
35
  (0, type_graphql_1.Field)(type => [role_types_1.NewRole]),
35
36
  tslib_1.__metadata("design:type", Array)
36
37
  ], DomainUserRoleInput.prototype, "roles", void 0);
37
- DomainUserRoleInput = tslib_1.__decorate([
38
+ exports.DomainUserRoleInput = DomainUserRoleInput = tslib_1.__decorate([
38
39
  (0, type_graphql_1.InputType)()
39
40
  ], DomainUserRoleInput);
40
- exports.DomainUserRoleInput = DomainUserRoleInput;
41
41
  let NewUserByDomainWizardInput = class NewUserByDomainWizardInput {
42
42
  };
43
+ exports.NewUserByDomainWizardInput = NewUserByDomainWizardInput;
43
44
  tslib_1.__decorate([
44
45
  (0, type_graphql_1.Field)(),
45
46
  tslib_1.__metadata("design:type", String)
@@ -64,8 +65,7 @@ tslib_1.__decorate([
64
65
  (0, type_graphql_1.Field)(type => [role_types_1.NewRole]),
65
66
  tslib_1.__metadata("design:type", Array)
66
67
  ], NewUserByDomainWizardInput.prototype, "roles", void 0);
67
- NewUserByDomainWizardInput = tslib_1.__decorate([
68
+ exports.NewUserByDomainWizardInput = NewUserByDomainWizardInput = tslib_1.__decorate([
68
69
  (0, type_graphql_1.InputType)()
69
70
  ], NewUserByDomainWizardInput);
70
- exports.NewUserByDomainWizardInput = NewUserByDomainWizardInput;
71
71
  //# sourceMappingURL=domain-generator-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-generator-types.js","sourceRoot":"","sources":["../../../server/service/domain-generator/domain-generator-types.ts"],"names":[],"mappings":";;;;AAAA,+CAA+C;AAC/C,qDAAqD;AACrD,iDAAmD;AACnD,mDAA4C;AAGrC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAMhC,CAAA;AALC;IAAC,IAAA,oBAAK,GAAE;;kDACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACN;AALT,oBAAoB;IADhC,IAAA,wBAAS,GAAE;GACC,oBAAoB,CAMhC;AANY,oDAAoB;AAS1B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAS/B,CAAA;AARC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAW,CAAC;sCACnB,mBAAW;mDAAA;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC;;kDACT;AAEnC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAO,CAAC,CAAC;;kDACT;AARL,mBAAmB;IAD/B,IAAA,wBAAS,GAAE;GACC,mBAAmB,CAS/B;AATY,kDAAmB;AAYzB,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAkBtC,CAAA;AAjBC;IAAC,IAAA,oBAAK,GAAE;;wDACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC;;yDACtB;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;6DAAA;AAElB;IAAC,IAAA,oBAAK,GAAE;sCACD,OAAO;yDAAA;AAEd;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAO,CAAC,CAAC;;yDACT;AAjBL,0BAA0B;IADtC,IAAA,wBAAS,GAAE;GACC,0BAA0B,CAkBtC;AAlBY,gEAA0B","sourcesContent":["import { Field, InputType } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\nimport { DomainInput } from '@things-factory/shell'\nimport { NewRole } from '../role/role-types'\n\n@InputType()\nexport class DomainGeneratorInput {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n}\n\n@InputType()\nexport class DomainUserRoleInput {\n @Field(type => DomainInput)\n domain: DomainInput\n\n @Field(type => [NewUserByDomainWizardInput])\n users: NewUserByDomainWizardInput[]\n\n @Field(type => [NewRole])\n roles: NewRole[]\n}\n\n@InputType()\nexport class NewUserByDomainWizardInput {\n @Field()\n name: string\n\n @Field(type => GraphQLEmailAddress)\n email: string\n\n @Field({ nullable: true })\n password: string\n\n @Field({ nullable: true })\n isInvitee: Boolean\n\n @Field()\n owner: Boolean\n\n @Field(type => [NewRole])\n roles: NewRole[]\n}\n"]}
1
+ {"version":3,"file":"domain-generator-types.js","sourceRoot":"","sources":["../../../server/service/domain-generator/domain-generator-types.ts"],"names":[],"mappings":";;;;AAAA,+CAA+C;AAC/C,qDAAqD;AACrD,iDAAmD;AACnD,mDAA4C;AAGrC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAMhC,CAAA;AANY,oDAAoB;AAE/B;IADC,IAAA,oBAAK,GAAE;;kDACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACN;+BALT,oBAAoB;IADhC,IAAA,wBAAS,GAAE;GACC,oBAAoB,CAMhC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAS/B,CAAA;AATY,kDAAmB;AAE9B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAW,CAAC;sCACnB,mBAAW;mDAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC;;kDACT;AAGnC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAO,CAAC,CAAC;;kDACT;8BARL,mBAAmB;IAD/B,IAAA,wBAAS,GAAE;GACC,mBAAmB,CAS/B;AAGM,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAkBtC,CAAA;AAlBY,gEAA0B;AAErC;IADC,IAAA,oBAAK,GAAE;;wDACI;AAGZ;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC;;yDACtB;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,OAAO;6DAAA;AAGlB;IADC,IAAA,oBAAK,GAAE;sCACD,OAAO;yDAAA;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAO,CAAC,CAAC;;yDACT;qCAjBL,0BAA0B;IADtC,IAAA,wBAAS,GAAE;GACC,0BAA0B,CAkBtC","sourcesContent":["import { Field, InputType } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\nimport { DomainInput } from '@things-factory/shell'\nimport { NewRole } from '../role/role-types'\n\n@InputType()\nexport class DomainGeneratorInput {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n}\n\n@InputType()\nexport class DomainUserRoleInput {\n @Field(type => DomainInput)\n domain: DomainInput\n\n @Field(type => [NewUserByDomainWizardInput])\n users: NewUserByDomainWizardInput[]\n\n @Field(type => [NewRole])\n roles: NewRole[]\n}\n\n@InputType()\nexport class NewUserByDomainWizardInput {\n @Field()\n name: string\n\n @Field(type => GraphQLEmailAddress)\n email: string\n\n @Field({ nullable: true })\n password: string\n\n @Field({ nullable: true })\n isInvitee: Boolean\n\n @Field()\n owner: Boolean\n\n @Field(type => [NewRole])\n roles: NewRole[]\n}\n"]}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.terminateGrantedRoles = exports.getCustomerUsersByRoles = exports.getGrantedCustomerUsers = exports.GrantedRoleMutation = void 0;
3
+ exports.GrantedRoleMutation = void 0;
4
+ exports.getGrantedCustomerUsers = getGrantedCustomerUsers;
5
+ exports.getCustomerUsersByRoles = getCustomerUsersByRoles;
6
+ exports.terminateGrantedRoles = terminateGrantedRoles;
4
7
  const tslib_1 = require("tslib");
5
8
  const type_graphql_1 = require("type-graphql");
6
9
  const typeorm_1 = require("typeorm");
@@ -66,6 +69,7 @@ let GrantedRoleMutation = class GrantedRoleMutation {
66
69
  return true;
67
70
  }
68
71
  };
72
+ exports.GrantedRoleMutation = GrantedRoleMutation;
69
73
  tslib_1.__decorate([
70
74
  (0, type_graphql_1.Directive)('@privilege(category: "partner", privilege: "mutation")'),
71
75
  (0, type_graphql_1.Directive)('@transaction'),
@@ -77,16 +81,14 @@ tslib_1.__decorate([
77
81
  tslib_1.__metadata("design:paramtypes", [String, Array, Object]),
78
82
  tslib_1.__metadata("design:returntype", Promise)
79
83
  ], GrantedRoleMutation.prototype, "grantRoles", null);
80
- GrantedRoleMutation = tslib_1.__decorate([
84
+ exports.GrantedRoleMutation = GrantedRoleMutation = tslib_1.__decorate([
81
85
  (0, type_graphql_1.Resolver)(granted_role_1.GrantedRole)
82
86
  ], GrantedRoleMutation);
83
- exports.GrantedRoleMutation = GrantedRoleMutation;
84
87
  async function getGrantedCustomerUsers(domain, customerDomain, trx) {
85
88
  const grantedRoles = await getGrantedRolesToCustomer(domain, customerDomain, trx);
86
89
  const roles = grantedRoles.map((grantedRole) => grantedRole.role);
87
90
  return await getCustomerUsersByRoles(customerDomain, roles, trx);
88
91
  }
89
- exports.getGrantedCustomerUsers = getGrantedCustomerUsers;
90
92
  async function getCustomerUsersByRoles(customerDomain, roles, trx) {
91
93
  if (!roles.length)
92
94
  return [];
@@ -111,7 +113,6 @@ async function getCustomerUsersByRoles(customerDomain, roles, trx) {
111
113
  relations: ['domains', 'roles', 'roles.domain']
112
114
  });
113
115
  }
114
- exports.getCustomerUsersByRoles = getCustomerUsersByRoles;
115
116
  async function getGrantedRolesToCustomer(domain, customerDomain, trx) {
116
117
  const grantedRoleRepo = (trx === null || trx === void 0 ? void 0 : trx.getRepository(granted_role_1.GrantedRole)) || (0, shell_1.getRepository)(granted_role_1.GrantedRole);
117
118
  const grantedRoleQueryBuilder = grantedRoleRepo.createQueryBuilder('GRANTED_ROLE');
@@ -136,5 +137,4 @@ async function terminateGrantedRoles(domain, customerDomain, trx) {
136
137
  if (grantedRoles === null || grantedRoles === void 0 ? void 0 : grantedRoles.length)
137
138
  await grantedRoleRepo.delete(grantedRoles.map((grantedRole) => grantedRole.id));
138
139
  }
139
- exports.terminateGrantedRoles = terminateGrantedRoles;
140
140
  //# sourceMappingURL=granted-role-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"granted-role-mutation.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In, Not, Repository } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Partner } from '../partner/partner'\nimport { Role } from '../role/role'\nimport { RolePatch } from '../role/role-types'\nimport { User } from '../user/user'\nimport { GrantedRole } from './granted-role'\n\n@Resolver(GrantedRole)\nexport class GrantedRoleMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async grantRoles(\n @Arg('customerId') customerId: string,\n @Arg('roles', type => [RolePatch]) roles: RolePatch[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { tx, domain } = context.state\n // Check if current domain has partnership with passed `customer`\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerId })\n const customer: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n\n if (!customer) throw new Error(`Failed to find partnership with customer`)\n\n // Remove existing granted roles\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, tx)\n if (grantedRoles.length) {\n await tx.getRepository(GrantedRole).delete(grantedRoles.map((gr: GrantedRole) => gr.id))\n }\n\n // Insert newly granted roles\n await tx.getRepository(Role).findBy({\n id: In(roles.map((role: Partial<Role>) => role.id))\n })\n const newlyGrantedRoles: Partial<GrantedRole>[] = roles.map((role: Role) => {\n return {\n domain: customerDomain,\n role\n }\n })\n\n await tx.getRepository(GrantedRole).save(newlyGrantedRoles)\n\n // If there's someone having role which will be removed (refuse roles)\n // user roles should be removed as well\n const grantedRoleIds: string[] = roles.map((role: Partial<Role>) => role.id)\n const nonGrantedRoles: Role[] = await tx.getRepository(Role).find({\n where: { domain: { id: domain.id }, id: Not(In(grantedRoleIds)) }\n })\n\n if (nonGrantedRoles?.length) {\n // Find customer's user who has non granted roles already\n const nonGrantedRoleIds: string[] = nonGrantedRoles.map((role: Role) => role.id)\n\n let havingRefusedRoleCustomers: User[] = await getCustomerUsersByRoles(customerDomain, nonGrantedRoles, tx)\n havingRefusedRoleCustomers = havingRefusedRoleCustomers.map((customerUser: User) => {\n const customerDomains: Domain[] = customerUser.domains\n const customerDomainIds: string[] = customerDomains.map((domain: Domain) => domain.id)\n if (customerDomainIds.indexOf(domain.id) >= 0) {\n // Case for customer user is a member of current domain.\n // If user is a member of current domain user can have any roles of the domain even if the roles is not granted\n return customerUser\n } else {\n // Case for customer user is an user of partner domain.\n // An user of partner domain only can have granted roles\n customerUser.roles = customerUser.roles.filter((role: Role) => nonGrantedRoleIds.indexOf(role.id) < 0)\n return customerUser\n }\n })\n\n await tx.getRepository(User).save(havingRefusedRoleCustomers)\n }\n return true\n }\n}\n\nexport async function getGrantedCustomerUsers(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<User[]> {\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)\n const roles: Role[] = grantedRoles.map((grantedRole: GrantedRole) => grantedRole.role)\n return await getCustomerUsersByRoles(customerDomain, roles, trx)\n}\n\nexport async function getCustomerUsersByRoles(\n customerDomain: Domain,\n roles: Role[],\n trx?: EntityManager\n): Promise<User[]> {\n if (!roles.length) return []\n const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)\n\n const customerUsers: User[] = await userRepo\n .createQueryBuilder('USER')\n .select('USER.id')\n .distinct(true)\n .leftJoin('USER.domains', 'U_DOMAIN')\n .leftJoin('USER.roles', 'U_ROLE')\n .where('U_DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })\n .groupBy('USER.id')\n .addGroupBy('U_ROLE.id')\n .having('U_ROLE.id IN (:...roleIds)', {\n roleIds: roles.map((role: Role) => role.id)\n })\n .getMany()\n\n return await userRepo.find({\n where: {\n id: In(customerUsers.map((user: User) => user.id))\n },\n relations: ['domains', 'roles', 'roles.domain']\n })\n}\n\nasync function getGrantedRolesToCustomer(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<GrantedRole[]> {\n const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)\n const grantedRoleQueryBuilder = grantedRoleRepo.createQueryBuilder('GRANTED_ROLE')\n return await grantedRoleQueryBuilder\n .leftJoinAndSelect('GRANTED_ROLE.domain', 'DOMAIN')\n .leftJoinAndSelect('GRANTED_ROLE.role', 'ROLE')\n .leftJoin('ROLE.domain', 'R_DOMAIN')\n .where('R_DOMAIN.id = :domainId', { domainId: domain.id })\n .andWhere('DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })\n .getMany()\n}\n\nexport async function terminateGrantedRoles(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<void> {\n const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)\n const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)\n\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)\n const customerUsers: User[] = await getGrantedCustomerUsers(domain, customerDomain, trx)\n\n for (let i: number = 0; i < customerUsers.length; i++) {\n customerUsers[i].roles = customerUsers[i].roles.filter((role: Role) => role.domain.id !== domain.id)\n }\n\n if (customerUsers?.length) await userRepo.save(customerUsers)\n if (grantedRoles?.length) await grantedRoleRepo.delete(grantedRoles.map((grantedRole: GrantedRole) => grantedRole.id))\n}\n"]}
1
+ {"version":3,"file":"granted-role-mutation.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In, Not, Repository } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Partner } from '../partner/partner'\nimport { Role } from '../role/role'\nimport { RolePatch } from '../role/role-types'\nimport { User } from '../user/user'\nimport { GrantedRole } from './granted-role'\n\n@Resolver(GrantedRole)\nexport class GrantedRoleMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async grantRoles(\n @Arg('customerId') customerId: string,\n @Arg('roles', type => [RolePatch]) roles: RolePatch[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { tx, domain } = context.state\n // Check if current domain has partnership with passed `customer`\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerId })\n const customer: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n\n if (!customer) throw new Error(`Failed to find partnership with customer`)\n\n // Remove existing granted roles\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, tx)\n if (grantedRoles.length) {\n await tx.getRepository(GrantedRole).delete(grantedRoles.map((gr: GrantedRole) => gr.id))\n }\n\n // Insert newly granted roles\n await tx.getRepository(Role).findBy({\n id: In(roles.map((role: Partial<Role>) => role.id))\n })\n const newlyGrantedRoles: Partial<GrantedRole>[] = roles.map((role: Role) => {\n return {\n domain: customerDomain,\n role\n }\n })\n\n await tx.getRepository(GrantedRole).save(newlyGrantedRoles)\n\n // If there's someone having role which will be removed (refuse roles)\n // user roles should be removed as well\n const grantedRoleIds: string[] = roles.map((role: Partial<Role>) => role.id)\n const nonGrantedRoles: Role[] = await tx.getRepository(Role).find({\n where: { domain: { id: domain.id }, id: Not(In(grantedRoleIds)) }\n })\n\n if (nonGrantedRoles?.length) {\n // Find customer's user who has non granted roles already\n const nonGrantedRoleIds: string[] = nonGrantedRoles.map((role: Role) => role.id)\n\n let havingRefusedRoleCustomers: User[] = await getCustomerUsersByRoles(customerDomain, nonGrantedRoles, tx)\n havingRefusedRoleCustomers = havingRefusedRoleCustomers.map((customerUser: User) => {\n const customerDomains: Domain[] = customerUser.domains\n const customerDomainIds: string[] = customerDomains.map((domain: Domain) => domain.id)\n if (customerDomainIds.indexOf(domain.id) >= 0) {\n // Case for customer user is a member of current domain.\n // If user is a member of current domain user can have any roles of the domain even if the roles is not granted\n return customerUser\n } else {\n // Case for customer user is an user of partner domain.\n // An user of partner domain only can have granted roles\n customerUser.roles = customerUser.roles.filter((role: Role) => nonGrantedRoleIds.indexOf(role.id) < 0)\n return customerUser\n }\n })\n\n await tx.getRepository(User).save(havingRefusedRoleCustomers)\n }\n return true\n }\n}\n\nexport async function getGrantedCustomerUsers(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<User[]> {\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)\n const roles: Role[] = grantedRoles.map((grantedRole: GrantedRole) => grantedRole.role)\n return await getCustomerUsersByRoles(customerDomain, roles, trx)\n}\n\nexport async function getCustomerUsersByRoles(\n customerDomain: Domain,\n roles: Role[],\n trx?: EntityManager\n): Promise<User[]> {\n if (!roles.length) return []\n const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)\n\n const customerUsers: User[] = await userRepo\n .createQueryBuilder('USER')\n .select('USER.id')\n .distinct(true)\n .leftJoin('USER.domains', 'U_DOMAIN')\n .leftJoin('USER.roles', 'U_ROLE')\n .where('U_DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })\n .groupBy('USER.id')\n .addGroupBy('U_ROLE.id')\n .having('U_ROLE.id IN (:...roleIds)', {\n roleIds: roles.map((role: Role) => role.id)\n })\n .getMany()\n\n return await userRepo.find({\n where: {\n id: In(customerUsers.map((user: User) => user.id))\n },\n relations: ['domains', 'roles', 'roles.domain']\n })\n}\n\nasync function getGrantedRolesToCustomer(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<GrantedRole[]> {\n const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)\n const grantedRoleQueryBuilder = grantedRoleRepo.createQueryBuilder('GRANTED_ROLE')\n return await grantedRoleQueryBuilder\n .leftJoinAndSelect('GRANTED_ROLE.domain', 'DOMAIN')\n .leftJoinAndSelect('GRANTED_ROLE.role', 'ROLE')\n .leftJoin('ROLE.domain', 'R_DOMAIN')\n .where('R_DOMAIN.id = :domainId', { domainId: domain.id })\n .andWhere('DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })\n .getMany()\n}\n\nexport async function terminateGrantedRoles(\n domain: Domain,\n customerDomain: Domain,\n trx?: EntityManager\n): Promise<void> {\n const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)\n const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)\n\n const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)\n const customerUsers: User[] = await getGrantedCustomerUsers(domain, customerDomain, trx)\n\n for (let i: number = 0; i < customerUsers.length; i++) {\n customerUsers[i].roles = customerUsers[i].roles.filter((role: Role) => role.domain.id !== domain.id)\n }\n\n if (customerUsers?.length) await userRepo.save(customerUsers)\n if (grantedRoles?.length) await grantedRoleRepo.delete(grantedRoles.map((grantedRole: GrantedRole) => grantedRole.id))\n}\n"]}
@@ -43,6 +43,7 @@ let GrantedRoleQuery = class GrantedRoleQuery {
43
43
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: grantedRole.domainId });
44
44
  }
45
45
  };
46
+ exports.GrantedRoleQuery = GrantedRoleQuery;
46
47
  tslib_1.__decorate([
47
48
  (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)'),
48
49
  (0, type_graphql_1.Query)(returns => [granted_role_1.GrantedRole]),
@@ -74,8 +75,7 @@ tslib_1.__decorate([
74
75
  tslib_1.__metadata("design:paramtypes", [granted_role_1.GrantedRole]),
75
76
  tslib_1.__metadata("design:returntype", Promise)
76
77
  ], GrantedRoleQuery.prototype, "domain", null);
77
- GrantedRoleQuery = tslib_1.__decorate([
78
+ exports.GrantedRoleQuery = GrantedRoleQuery = tslib_1.__decorate([
78
79
  (0, type_graphql_1.Resolver)(granted_role_1.GrantedRole)
79
80
  ], GrantedRoleQuery);
80
- exports.GrantedRoleQuery = GrantedRoleQuery;
81
81
  //# sourceMappingURL=granted-role-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"granted-role-query.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Partner } from '../partner/partner'\nimport { Role } from '../role/role'\nimport { GrantedRole } from './granted-role'\n\n@Resolver(GrantedRole)\nexport class GrantedRoleQuery {\n @Directive('@privilege(category: \"user\", privilege: \"query\", domainOwnerGranted: true, superUserGranted: true)')\n @Query(returns => [GrantedRole])\n async grantedRoles(@Ctx() context: ResolverContext): Promise<GrantedRole[]> {\n const { domain } = context.state\n return await getRepository(GrantedRole).find({\n where: { domain: { id: domain.id } }\n })\n }\n\n /**\n * @summary The role list that target customer being granted by domain.\n *\n * @param customerId\n * @param context\n * @returns\n */\n @Directive('@privilege(category: \"user\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [GrantedRole])\n async grantingRoles(@Arg('customerId') customerId: string, @Ctx() context: ResolverContext): Promise<GrantedRole[]> {\n const { domain } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOneBy({ id: customerId })\n\n if (!customerDomain) throw new Error(`Failed to find customer by passed customerId (${customerId})`)\n\n const hasPartnership: boolean = Boolean(\n await getRepository(Partner).countBy({ domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } })\n )\n\n if (!hasPartnership) throw new Error(`Company doesn't have partnership with ${customerDomain.name}`)\n\n const qb: SelectQueryBuilder<GrantedRole> = getRepository(GrantedRole)\n .createQueryBuilder('GRANTED_ROLE')\n .leftJoin('GRANTED_ROLE.role', 'ROLE')\n .where('GRANTED_ROLE.domain_id = :customerId', { customerId })\n .andWhere('ROLE.domain_id = :domainId ', { domainId: domain.id })\n\n return await qb.getMany()\n }\n\n @FieldResolver(type => Role)\n async role(@Root() grantedRole: GrantedRole): Promise<Role> {\n return await getRepository(Role).findOneBy({ id: grantedRole.roleId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() grantedRole: GrantedRole): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: grantedRole.domainId })\n }\n}\n"]}
1
+ {"version":3,"file":"granted-role-query.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAwF;AAGxF,iDAA6D;AAE7D,gDAA4C;AAC5C,uCAAmC;AACnC,iDAA4C;AAGrC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,YAAY,CAAQ,OAAwB;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,OAAO,MAAM,IAAA,qBAAa,EAAC,0BAAW,CAAC,CAAC,IAAI,CAAC;YAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;SACrC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IAGG,AAAN,KAAK,CAAC,aAAa,CAAoB,UAAkB,EAAS,OAAwB;QACxF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,cAAc,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;QAExF,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAA;QAEpG,MAAM,cAAc,GAAY,OAAO,CACrC,MAAM,IAAA,qBAAa,EAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAC9G,CAAA;QAED,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;QAEpG,MAAM,EAAE,GAAoC,IAAA,qBAAa,EAAC,0BAAW,CAAC;aACnE,kBAAkB,CAAC,cAAc,CAAC;aAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACrC,KAAK,CAAC,sCAAsC,EAAE,EAAE,UAAU,EAAE,CAAC;aAC7D,QAAQ,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QAEnE,OAAO,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAS,WAAwB;QACzC,OAAO,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IACxE,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,WAAwB;QAC3C,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF,CAAA;AAjDY,4CAAgB;AAGrB;IAFL,IAAA,wBAAS,EAAC,oGAAoG,CAAC;IAC/G,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0BAAW,CAAC,CAAC;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;oDAKxB;AAWK;IAFL,IAAA,wBAAS,EAAC,4EAA4E,CAAC;IACvF,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0BAAW,CAAC,CAAC;IACX,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IAAsB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAmBhE;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAc,0BAAW;;4CAE1C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAc,0BAAW;;8CAE5C;2BAhDU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,0BAAW,CAAC;GACT,gBAAgB,CAiD5B","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { Partner } from '../partner/partner'\nimport { Role } from '../role/role'\nimport { GrantedRole } from './granted-role'\n\n@Resolver(GrantedRole)\nexport class GrantedRoleQuery {\n @Directive('@privilege(category: \"user\", privilege: \"query\", domainOwnerGranted: true, superUserGranted: true)')\n @Query(returns => [GrantedRole])\n async grantedRoles(@Ctx() context: ResolverContext): Promise<GrantedRole[]> {\n const { domain } = context.state\n return await getRepository(GrantedRole).find({\n where: { domain: { id: domain.id } }\n })\n }\n\n /**\n * @summary The role list that target customer being granted by domain.\n *\n * @param customerId\n * @param context\n * @returns\n */\n @Directive('@privilege(category: \"user\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [GrantedRole])\n async grantingRoles(@Arg('customerId') customerId: string, @Ctx() context: ResolverContext): Promise<GrantedRole[]> {\n const { domain } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOneBy({ id: customerId })\n\n if (!customerDomain) throw new Error(`Failed to find customer by passed customerId (${customerId})`)\n\n const hasPartnership: boolean = Boolean(\n await getRepository(Partner).countBy({ domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } })\n )\n\n if (!hasPartnership) throw new Error(`Company doesn't have partnership with ${customerDomain.name}`)\n\n const qb: SelectQueryBuilder<GrantedRole> = getRepository(GrantedRole)\n .createQueryBuilder('GRANTED_ROLE')\n .leftJoin('GRANTED_ROLE.role', 'ROLE')\n .where('GRANTED_ROLE.domain_id = :customerId', { customerId })\n .andWhere('ROLE.domain_id = :domainId ', { domainId: domain.id })\n\n return await qb.getMany()\n }\n\n @FieldResolver(type => Role)\n async role(@Root() grantedRole: GrantedRole): Promise<Role> {\n return await getRepository(Role).findOneBy({ id: grantedRole.roleId })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() grantedRole: GrantedRole): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: grantedRole.domainId })\n }\n}\n"]}
@@ -8,6 +8,7 @@ const type_graphql_1 = require("type-graphql");
8
8
  const typeorm_1 = require("typeorm");
9
9
  let GrantedRole = class GrantedRole {
10
10
  };
11
+ exports.GrantedRole = GrantedRole;
11
12
  tslib_1.__decorate([
12
13
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
14
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
@@ -31,10 +32,9 @@ tslib_1.__decorate([
31
32
  (0, typeorm_1.RelationId)((grantedRole) => grantedRole.domain),
32
33
  tslib_1.__metadata("design:type", String)
33
34
  ], GrantedRole.prototype, "domainId", void 0);
34
- GrantedRole = tslib_1.__decorate([
35
+ exports.GrantedRole = GrantedRole = tslib_1.__decorate([
35
36
  (0, typeorm_1.Entity)(),
36
37
  (0, typeorm_1.Index)('ix_granted_role_0', (grantedRole) => [grantedRole.role, grantedRole.domain], { unique: true }),
37
38
  (0, type_graphql_1.ObjectType)()
38
39
  ], GrantedRole);
39
- exports.GrantedRole = GrantedRole;
40
40
  //# sourceMappingURL=granted-role.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"granted-role.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role.ts"],"names":[],"mappings":";;;;AAAA,iDAA8C;AAC9C,uCAAmC;AACnC,+CAAoD;AACpD,qCAAsF;AAK/E,IAAM,WAAW,GAAjB,MAAM,WAAW;CAkBvB,CAAA;AAjBC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;uCACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;IACvB,IAAA,oBAAK,GAAE;sCACF,WAAI;yCAAA;AAEV;IAAC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;;2CAC7C;AAEd;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;2CAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;;6CAC7C;AAjBL,WAAW;IAHvB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,mBAAmB,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClH,IAAA,yBAAU,GAAE;GACA,WAAW,CAkBvB;AAlBY,kCAAW","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport { Role } from '../role/role'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { Entity, ManyToOne, PrimaryGeneratedColumn, Index, RelationId } from 'typeorm'\n\n@Entity()\n@Index('ix_granted_role_0', (grantedRole: GrantedRole) => [grantedRole.role, grantedRole.domain], { unique: true })\n@ObjectType()\nexport class GrantedRole {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Role)\n @Field()\n role: Role\n\n @RelationId((grantedRole: GrantedRole) => grantedRole.role)\n roleId: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((grantedRole: GrantedRole) => grantedRole.domain)\n domainId: string\n}\n"]}
1
+ {"version":3,"file":"granted-role.js","sourceRoot":"","sources":["../../../server/service/granted-role/granted-role.ts"],"names":[],"mappings":";;;;AAAA,iDAA8C;AAC9C,uCAAmC;AACnC,+CAAoD;AACpD,qCAAsF;AAK/E,IAAM,WAAW,GAAjB,MAAM,WAAW;CAkBvB,CAAA;AAlBY,kCAAW;AAGb;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;uCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;IACvB,IAAA,oBAAK,GAAE;sCACF,WAAI;yCAAA;AAGV;IADC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;;2CAC7C;AAId;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;2CAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,WAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;;6CAC7C;sBAjBL,WAAW;IAHvB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,mBAAmB,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClH,IAAA,yBAAU,GAAE;GACA,WAAW,CAkBvB","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport { Role } from '../role/role'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { Entity, ManyToOne, PrimaryGeneratedColumn, Index, RelationId } from 'typeorm'\n\n@Entity()\n@Index('ix_granted_role_0', (grantedRole: GrantedRole) => [grantedRole.role, grantedRole.domain], { unique: true })\n@ObjectType()\nexport class GrantedRole {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Role)\n @Field()\n role: Role\n\n @RelationId((grantedRole: GrantedRole) => grantedRole.role)\n roleId: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((grantedRole: GrantedRole) => grantedRole.domain)\n domainId: string\n}\n"]}
@@ -40,6 +40,7 @@ let InvitationMutation = class InvitationMutation {
40
40
  type, creator: context.state.user, updater: context.state.user }));
41
41
  }
42
42
  };
43
+ exports.InvitationMutation = InvitationMutation;
43
44
  tslib_1.__decorate([
44
45
  (0, type_graphql_1.Mutation)(returns => Boolean),
45
46
  tslib_1.__param(0, (0, type_graphql_1.Arg)('email', type => graphql_scalars_1.GraphQLEmailAddress)),
@@ -59,8 +60,7 @@ tslib_1.__decorate([
59
60
  tslib_1.__metadata("design:paramtypes", [String, String, String, Object]),
60
61
  tslib_1.__metadata("design:returntype", Promise)
61
62
  ], InvitationMutation.prototype, "sendInvitation", null);
62
- InvitationMutation = tslib_1.__decorate([
63
+ exports.InvitationMutation = InvitationMutation = tslib_1.__decorate([
63
64
  (0, type_graphql_1.Resolver)(invitation_2.Invitation)
64
65
  ], InvitationMutation);
65
- exports.InvitationMutation = InvitationMutation;
66
66
  //# sourceMappingURL=invitation-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation-mutation.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAC3D,qDAAqD;AAErD,iDAAqD;AAErD,6DAAkE;AAClE,6CAAyC;AAGlC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,gBAAgB,CACuB,KAAa,EACtC,SAAiB,EACtB,IAAY;QAEzB,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAA;QAE5C,MAAM,UAAU,CAAC,MAAM,CAAC;YACtB,KAAK;YACL,SAAS;YACT,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CACyB,KAAa,EACtC,SAAiB,EACtB,IAAY,EAClB,OAAwB;QAE/B,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC;YACxC,KAAK;YACL,IAAI;YACJ,SAAS;SACV,CAAC,CAAA;QAEF,uBAAuB;QACvB,MAAM,IAAA,gCAAmB,EAAC;YACxB,UAAU,EAAE;gBACV,KAAK;gBACL,SAAS;gBACT,IAAI;aACL;YACD,OAAO;SACR,CAAC,CAAA;QAEF,mBAAmB;QACnB,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,MAAM,KAAE,sCAAsC;YACjD,KAAK;YACL,SAAS;YACT,IAAI,EACJ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAC3B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAC3B,CAAA;IACJ,CAAC;CACF,CAAA;AAnDO;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;0DAWb;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAU,CAAC;IAE7B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;wDA6BP;AApDU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,uBAAU,CAAC;GACR,kBAAkB,CAqD9B;AArDY,gDAAkB","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { sendInvitationEmail } from '../../controllers/invitation'\nimport { Invitation } from './invitation'\n\n@Resolver(Invitation)\nexport class InvitationMutation {\n @Mutation(returns => Boolean)\n async cancelInvitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string\n ) {\n const repository = getRepository(Invitation)\n\n await repository.delete({\n email,\n reference,\n type\n })\n\n return true\n }\n\n @Mutation(returns => Invitation)\n async sendInvitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string,\n @Ctx() context: ResolverContext\n ) {\n const repository = getRepository(Invitation)\n\n const oldone = await repository.findOneBy({\n email,\n type,\n reference\n })\n\n // TODO send invitation\n await sendInvitationEmail({\n invitation: {\n email,\n reference,\n type\n },\n context\n })\n\n // update or create\n return await repository.save({\n ...oldone, // take only id from oldone for update\n email,\n reference,\n type,\n creator: context.state.user,\n updater: context.state.user\n })\n }\n}\n"]}
1
+ {"version":3,"file":"invitation-mutation.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAC3D,qDAAqD;AAErD,iDAAqD;AAErD,6DAAkE;AAClE,6CAAyC;AAGlC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,gBAAgB,CACuB,KAAa,EACtC,SAAiB,EACtB,IAAY;QAEzB,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAA;QAE5C,MAAM,UAAU,CAAC,MAAM,CAAC;YACtB,KAAK;YACL,SAAS;YACT,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CACyB,KAAa,EACtC,SAAiB,EACtB,IAAY,EAClB,OAAwB;QAE/B,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC;YACxC,KAAK;YACL,IAAI;YACJ,SAAS;SACV,CAAC,CAAA;QAEF,uBAAuB;QACvB,MAAM,IAAA,gCAAmB,EAAC;YACxB,UAAU,EAAE;gBACV,KAAK;gBACL,SAAS;gBACT,IAAI;aACL;YACD,OAAO;SACR,CAAC,CAAA;QAEF,mBAAmB;QACnB,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,MAAM,KAAE,sCAAsC;YACjD,KAAK;YACL,SAAS;YACT,IAAI,EACJ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAC3B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAC3B,CAAA;IACJ,CAAC;CACF,CAAA;AArDY,gDAAkB;AAEvB;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;0DAWb;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAU,CAAC;IAE7B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;wDA6BP;6BApDU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,uBAAU,CAAC;GACR,kBAAkB,CAqD9B","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { sendInvitationEmail } from '../../controllers/invitation'\nimport { Invitation } from './invitation'\n\n@Resolver(Invitation)\nexport class InvitationMutation {\n @Mutation(returns => Boolean)\n async cancelInvitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string\n ) {\n const repository = getRepository(Invitation)\n\n await repository.delete({\n email,\n reference,\n type\n })\n\n return true\n }\n\n @Mutation(returns => Invitation)\n async sendInvitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string,\n @Ctx() context: ResolverContext\n ) {\n const repository = getRepository(Invitation)\n\n const oldone = await repository.findOneBy({\n email,\n type,\n reference\n })\n\n // TODO send invitation\n await sendInvitationEmail({\n invitation: {\n email,\n reference,\n type\n },\n context\n })\n\n // update or create\n return await repository.save({\n ...oldone, // take only id from oldone for update\n email,\n reference,\n type,\n creator: context.state.user,\n updater: context.state.user\n })\n }\n}\n"]}
@@ -23,6 +23,7 @@ let InvitationQuery = class InvitationQuery {
23
23
  return { items, total };
24
24
  }
25
25
  };
26
+ exports.InvitationQuery = InvitationQuery;
26
27
  tslib_1.__decorate([
27
28
  (0, type_graphql_1.Query)(returns => invitation_1.Invitation),
28
29
  tslib_1.__param(0, (0, type_graphql_1.Arg)('email', type => graphql_scalars_1.GraphQLEmailAddress)),
@@ -40,8 +41,7 @@ tslib_1.__decorate([
40
41
  tslib_1.__metadata("design:paramtypes", [String, String]),
41
42
  tslib_1.__metadata("design:returntype", Promise)
42
43
  ], InvitationQuery.prototype, "invitations", null);
43
- InvitationQuery = tslib_1.__decorate([
44
+ exports.InvitationQuery = InvitationQuery = tslib_1.__decorate([
44
45
  (0, type_graphql_1.Resolver)(invitation_1.Invitation)
45
46
  ], InvitationQuery);
46
- exports.InvitationQuery = InvitationQuery;
47
47
  //# sourceMappingURL=invitation-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation-query.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-query.ts"],"names":[],"mappings":";;;;AAAA,qDAAqD;AACrD,+CAAmD;AAEnD,iDAAqD;AAErD,6CAAyC;AACzC,yDAAmD;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEpB,AAAN,KAAK,CAAC,UAAU,CAC6B,KAAa,EACtC,SAAiB,EACtB,IAAY;QAEzB,OAAO,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,SAAS,CAAC;YAC/C,KAAK;YACL,SAAS;YACT,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAmB,SAAiB,EAAe,IAAY;QAC9E,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,cAAc,CAAC;YACpE,SAAS;YACT,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AArBO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAU,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;iDAOb;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,iCAAc,CAAC;IACd,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;kDAOlE;AAtBU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,uBAAU,CAAC;GACR,eAAe,CAuB3B;AAvBY,0CAAe","sourcesContent":["import { GraphQLEmailAddress } from 'graphql-scalars'\nimport { Arg, Query, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Invitation } from './invitation'\nimport { InvitationList } from './invitation-types'\n\n@Resolver(Invitation)\nexport class InvitationQuery {\n @Query(returns => Invitation)\n async invitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string\n ) {\n return await getRepository(Invitation).findOneBy({\n email,\n reference,\n type\n })\n }\n\n @Query(returns => InvitationList)\n async invitations(@Arg('reference') reference: string, @Arg('type') type: string) {\n const [items, total] = await getRepository(Invitation).findAndCountBy({\n reference,\n type\n })\n\n return { items, total }\n }\n}\n"]}
1
+ {"version":3,"file":"invitation-query.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-query.ts"],"names":[],"mappings":";;;;AAAA,qDAAqD;AACrD,+CAAmD;AAEnD,iDAAqD;AAErD,6CAAyC;AACzC,yDAAmD;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAe;IAEpB,AAAN,KAAK,CAAC,UAAU,CAC6B,KAAa,EACtC,SAAiB,EACtB,IAAY;QAEzB,OAAO,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,SAAS,CAAC;YAC/C,KAAK;YACL,SAAS;YACT,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAmB,SAAiB,EAAe,IAAY;QAC9E,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,cAAc,CAAC;YACpE,SAAS;YACT,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAvBY,0CAAe;AAEpB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uBAAU,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAChB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;iDAOb;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,iCAAc,CAAC;IACd,mBAAA,IAAA,kBAAG,EAAC,WAAW,CAAC,CAAA;IAAqB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;;;;kDAOlE;0BAtBU,eAAe;IAD3B,IAAA,uBAAQ,EAAC,uBAAU,CAAC;GACR,eAAe,CAuB3B","sourcesContent":["import { GraphQLEmailAddress } from 'graphql-scalars'\nimport { Arg, Query, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Invitation } from './invitation'\nimport { InvitationList } from './invitation-types'\n\n@Resolver(Invitation)\nexport class InvitationQuery {\n @Query(returns => Invitation)\n async invitation(\n @Arg('email', type => GraphQLEmailAddress) email: string,\n @Arg('reference') reference: string,\n @Arg('type') type: string\n ) {\n return await getRepository(Invitation).findOneBy({\n email,\n reference,\n type\n })\n }\n\n @Query(returns => InvitationList)\n async invitations(@Arg('reference') reference: string, @Arg('type') type: string) {\n const [items, total] = await getRepository(Invitation).findAndCountBy({\n reference,\n type\n })\n\n return { items, total }\n }\n}\n"]}
@@ -6,6 +6,7 @@ const invitation_1 = require("./invitation");
6
6
  const type_graphql_1 = require("type-graphql");
7
7
  let InvitationList = class InvitationList {
8
8
  };
9
+ exports.InvitationList = InvitationList;
9
10
  tslib_1.__decorate([
10
11
  (0, type_graphql_1.Field)(type => [invitation_1.Invitation], { nullable: true }),
11
12
  tslib_1.__metadata("design:type", Array)
@@ -14,8 +15,7 @@ tslib_1.__decorate([
14
15
  (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
15
16
  tslib_1.__metadata("design:type", Number)
16
17
  ], InvitationList.prototype, "total", void 0);
17
- InvitationList = tslib_1.__decorate([
18
+ exports.InvitationList = InvitationList = tslib_1.__decorate([
18
19
  (0, type_graphql_1.ObjectType)()
19
20
  ], InvitationList);
20
- exports.InvitationList = InvitationList;
21
21
  //# sourceMappingURL=invitation-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation-types.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-types.ts"],"names":[],"mappings":";;;;AAAA,6CAAyC;AACzC,+CAAqD;AAG9C,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7B;AAEnB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC1B;AALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B;AANY,wCAAc","sourcesContent":["import { Invitation } from './invitation'\nimport { ObjectType, Field, Int } from 'type-graphql'\n\n@ObjectType()\nexport class InvitationList {\n @Field(type => [Invitation], { nullable: true })\n items: Invitation[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n"]}
1
+ {"version":3,"file":"invitation-types.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation-types.ts"],"names":[],"mappings":";;;;AAAA,6CAAyC;AACzC,+CAAqD;AAG9C,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7B;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC1B;yBALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B","sourcesContent":["import { Invitation } from './invitation'\nimport { ObjectType, Field, Int } from 'type-graphql'\n\n@ObjectType()\nexport class InvitationList {\n @Field(type => [Invitation], { nullable: true })\n items: Invitation[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n"]}
@@ -8,6 +8,7 @@ const graphql_scalars_1 = require("graphql-scalars");
8
8
  const user_1 = require("../user/user");
9
9
  let Invitation = class Invitation {
10
10
  };
11
+ exports.Invitation = Invitation;
11
12
  tslib_1.__decorate([
12
13
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
14
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
@@ -61,7 +62,7 @@ tslib_1.__decorate([
61
62
  (0, typeorm_1.RelationId)((invitation) => invitation.updater),
62
63
  tslib_1.__metadata("design:type", String)
63
64
  ], Invitation.prototype, "updaterId", void 0);
64
- Invitation = tslib_1.__decorate([
65
+ exports.Invitation = Invitation = tslib_1.__decorate([
65
66
  (0, typeorm_1.Entity)(),
66
67
  (0, typeorm_1.Index)('ix_invitation_0', (invitation) => [invitation.email, invitation.reference, invitation.type], {
67
68
  unique: true
@@ -69,5 +70,4 @@ Invitation = tslib_1.__decorate([
69
70
  (0, typeorm_1.Index)('ix_invitation_1', (invitation) => [invitation.token], { unique: true }),
70
71
  (0, type_graphql_1.ObjectType)()
71
72
  ], Invitation);
72
- exports.Invitation = Invitation;
73
73
  //# sourceMappingURL=invitation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation.ts"],"names":[],"mappings":";;;;AAAA,qCASgB;AAChB,+CAAoD;AACpD,qDAAqD;AACrD,uCAAmC;AAQ5B,IAAM,UAAU,GAAhB,MAAM,UAAU;CA0CtB,CAAA;AAzCC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;sCACC;AAEnB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC;;yCACtB;AAEb;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;6CACS;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;wCACI;AAEZ;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;yCACK;AAEb;IAAC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;6CAAA;AAEf;IAAC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;6CAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,WAAI;2CAAA;AAEb;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CAC1C;AAEjB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,WAAI;2CAAA;AAEb;IAAC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CAC1C;AAzCN,UAAU;IANtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/G,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1F,IAAA,yBAAU,GAAE;GACA,UAAU,CA0CtB;AA1CY,gCAAU","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n ManyToOne,\n RelationId,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\nimport { User } from '../user/user'\n\n@Entity()\n@Index('ix_invitation_0', (invitation: Invitation) => [invitation.email, invitation.reference, invitation.type], {\n unique: true\n})\n@Index('ix_invitation_1', (invitation: Invitation) => [invitation.token], { unique: true })\n@ObjectType()\nexport class Invitation {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column()\n @Field(type => GraphQLEmailAddress)\n email: string\n\n @Column()\n @Field()\n reference: string // company, bizplace\n\n @Column()\n @Field()\n type: string // company, bizplace, .. should think whether this column needs.\n\n @Column()\n @Field()\n token: string\n\n @CreateDateColumn({ nullable: true })\n @Field({ nullable: true })\n createdAt: Date\n\n @UpdateDateColumn({ nullable: true })\n @Field({ nullable: true })\n updatedAt: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator: User\n\n @RelationId((invitation: Invitation) => invitation.creator)\n creatorId: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater: User\n\n @RelationId((invitation: Invitation) => invitation.updater)\n updaterId: string\n}\n"]}
1
+ {"version":3,"file":"invitation.js","sourceRoot":"","sources":["../../../server/service/invitation/invitation.ts"],"names":[],"mappings":";;;;AAAA,qCASgB;AAChB,+CAAoD;AACpD,qDAAqD;AACrD,uCAAmC;AAQ5B,IAAM,UAAU,GAAhB,MAAM,UAAU;CA0CtB,CAAA;AA1CY,gCAAU;AAGZ;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;sCACC;AAInB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qCAAmB,CAAC;;yCACtB;AAIb;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;6CACS;AAIjB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;wCACI;AAIZ;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;yCACK;AAIb;IAFC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;6CAAA;AAIf;IAFC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;6CAAA;AAIf;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,WAAI;2CAAA;AAGb;IADC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CAC1C;AAIjB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,WAAI;2CAAA;AAGb;IADC,IAAA,oBAAU,EAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;;6CAC1C;qBAzCN,UAAU;IANtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/G,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1F,IAAA,yBAAU,GAAE;GACA,UAAU,CA0CtB","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n ManyToOne,\n RelationId,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { GraphQLEmailAddress } from 'graphql-scalars'\nimport { User } from '../user/user'\n\n@Entity()\n@Index('ix_invitation_0', (invitation: Invitation) => [invitation.email, invitation.reference, invitation.type], {\n unique: true\n})\n@Index('ix_invitation_1', (invitation: Invitation) => [invitation.token], { unique: true })\n@ObjectType()\nexport class Invitation {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column()\n @Field(type => GraphQLEmailAddress)\n email: string\n\n @Column()\n @Field()\n reference: string // company, bizplace\n\n @Column()\n @Field()\n type: string // company, bizplace, .. should think whether this column needs.\n\n @Column()\n @Field()\n token: string\n\n @CreateDateColumn({ nullable: true })\n @Field({ nullable: true })\n createdAt: Date\n\n @UpdateDateColumn({ nullable: true })\n @Field({ nullable: true })\n updatedAt: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator: User\n\n @RelationId((invitation: Invitation) => invitation.creator)\n creatorId: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater: User\n\n @RelationId((invitation: Invitation) => invitation.updater)\n updaterId: string\n}\n"]}
@@ -36,9 +36,10 @@ let LoginHistoryQuery = class LoginHistoryQuery {
36
36
  return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: loginHistory.accessUserId });
37
37
  }
38
38
  };
39
+ exports.LoginHistoryQuery = LoginHistoryQuery;
39
40
  tslib_1.__decorate([
40
41
  (0, type_graphql_1.Query)(returns => login_history_type_1.LoginHistoryList, { description: 'To fetch multiple LoginHistories' }),
41
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
42
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
42
43
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
43
44
  tslib_1.__metadata("design:type", Function),
44
45
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
@@ -66,8 +67,7 @@ tslib_1.__decorate([
66
67
  tslib_1.__metadata("design:paramtypes", [login_history_1.LoginHistory]),
67
68
  tslib_1.__metadata("design:returntype", Promise)
68
69
  ], LoginHistoryQuery.prototype, "accessUser", null);
69
- LoginHistoryQuery = tslib_1.__decorate([
70
+ exports.LoginHistoryQuery = LoginHistoryQuery = tslib_1.__decorate([
70
71
  (0, type_graphql_1.Resolver)(login_history_1.LoginHistory)
71
72
  ], LoginHistoryQuery);
72
- exports.LoginHistoryQuery = LoginHistoryQuery;
73
73
  //# sourceMappingURL=login-history-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-history-query.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,iDAAuG;AAEvG,uCAAmC;AACnC,mDAA8C;AAC9C,6DAAuD;AAGhD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAS,OAAwB;QAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;SAC9C,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAAe,KAAa,EAAS,OAAwB;QACjF,MAAM,IAAI,GAAS,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACrC;QAED,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YACtC,IAAI,EAAE,KAAK,IAAI,EAAE;YACjB,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAC9B,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CAAS,YAA0B;QACnD,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAS,YAA0B;QACjD,OAAO,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/E,CAAC;CACF,CAAA;AApCO;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAClE,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;uDAW7C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;yDAWzD;AAGK;IADL,IAAA,4BAAa,GAAE;IACI,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;qDAEpD;AAGK;IADL,IAAA,4BAAa,GAAE;IACE,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;mDAElD;AArCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,4BAAY,CAAC;GACV,iBAAiB,CAsC7B;AAtCY,8CAAiB","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { User } from '../user/user'\nimport { LoginHistory } from './login-history'\nimport { LoginHistoryList } from './login-history-type'\n\n@Resolver(LoginHistory)\nexport class LoginHistoryQuery {\n @Query(returns => LoginHistoryList, { description: 'To fetch multiple LoginHistories' })\n async loginHistories(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<LoginHistoryList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(LoginHistory)\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n return { items, total }\n }\n\n @Query(returns => [LoginHistory])\n async myLoginHistories(@Arg('limit') limit: number, @Ctx() context: ResolverContext): Promise<LoginHistory[]> {\n const user: User = context.state.user\n if (!user) {\n throw new Error('No user specified')\n }\n\n return await getRepository(LoginHistory).find({\n where: { accessUser: { id: user.id } },\n take: limit || 10,\n order: { accessedAt: 'DESC' }\n })\n }\n\n @FieldResolver()\n async accessDomain(@Root() loginHistory: LoginHistory) {\n return await getRepository(Domain).findOneBy({ id: loginHistory.accessDomainId })\n }\n\n @FieldResolver()\n async accessUser(@Root() loginHistory: LoginHistory) {\n return await getRepository(User).findOneBy({ id: loginHistory.accessUserId })\n }\n}\n"]}
1
+ {"version":3,"file":"login-history-query.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,iDAAuG;AAEvG,uCAAmC;AACnC,mDAA8C;AAC9C,6DAAuD;AAGhD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,cAAc,CACO,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;SAC9C,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAAe,KAAa,EAAS,OAAwB;QACjF,MAAM,IAAI,GAAS,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YACtC,IAAI,EAAE,KAAK,IAAI,EAAE;YACjB,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAC9B,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CAAS,YAA0B;QACnD,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAS,YAA0B;QACjD,OAAO,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/E,CAAC;CACF,CAAA;AAzCY,8CAAiB;AAEtB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAErF,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;uDAa3C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;yDAWzD;AAGK;IADL,IAAA,4BAAa,GAAE;IACI,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;qDAEpD;AAGK;IADL,IAAA,4BAAa,GAAE;IACE,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;mDAElD;4BAxCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,4BAAY,CAAC;GACV,iBAAiB,CAyC7B","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { User } from '../user/user'\nimport { LoginHistory } from './login-history'\nimport { LoginHistoryList } from './login-history-type'\n\n@Resolver(LoginHistory)\nexport class LoginHistoryQuery {\n @Query(returns => LoginHistoryList, { description: 'To fetch multiple LoginHistories' })\n async loginHistories(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<LoginHistoryList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(LoginHistory)\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n return { items, total }\n }\n\n @Query(returns => [LoginHistory])\n async myLoginHistories(@Arg('limit') limit: number, @Ctx() context: ResolverContext): Promise<LoginHistory[]> {\n const user: User = context.state.user\n if (!user) {\n throw new Error('No user specified')\n }\n\n return await getRepository(LoginHistory).find({\n where: { accessUser: { id: user.id } },\n take: limit || 10,\n order: { accessedAt: 'DESC' }\n })\n }\n\n @FieldResolver()\n async accessDomain(@Root() loginHistory: LoginHistory) {\n return await getRepository(Domain).findOneBy({ id: loginHistory.accessDomainId })\n }\n\n @FieldResolver()\n async accessUser(@Root() loginHistory: LoginHistory) {\n return await getRepository(User).findOneBy({ id: loginHistory.accessUserId })\n }\n}\n"]}
@@ -6,6 +6,7 @@ const type_graphql_1 = require("type-graphql");
6
6
  const login_history_1 = require("./login-history");
7
7
  let LoginHistoryList = class LoginHistoryList {
8
8
  };
9
+ exports.LoginHistoryList = LoginHistoryList;
9
10
  tslib_1.__decorate([
10
11
  (0, type_graphql_1.Field)(type => [login_history_1.LoginHistory]),
11
12
  tslib_1.__metadata("design:type", Array)
@@ -14,8 +15,7 @@ tslib_1.__decorate([
14
15
  (0, type_graphql_1.Field)(type => type_graphql_1.Int),
15
16
  tslib_1.__metadata("design:type", Number)
16
17
  ], LoginHistoryList.prototype, "total", void 0);
17
- LoginHistoryList = tslib_1.__decorate([
18
+ exports.LoginHistoryList = LoginHistoryList = tslib_1.__decorate([
18
19
  (0, type_graphql_1.ObjectType)()
19
20
  ], LoginHistoryList);
20
- exports.LoginHistoryList = LoginHistoryList;
21
21
  //# sourceMappingURL=login-history-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-history-type.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,mDAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAM5B,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC;;+CACT;AAErB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;+CACN;AALF,gBAAgB;IAD5B,IAAA,yBAAU,GAAE;GACA,gBAAgB,CAM5B;AANY,4CAAgB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { LoginHistory } from './login-history'\n\n@ObjectType()\nexport class LoginHistoryList {\n @Field(type => [LoginHistory])\n items: LoginHistory[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"login-history-type.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,mDAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAM5B,CAAA;AANY,4CAAgB;AAE3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAY,CAAC,CAAC;;+CACT;AAGrB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;+CACN;2BALF,gBAAgB;IAD5B,IAAA,yBAAU,GAAE;GACA,gBAAgB,CAM5B","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { LoginHistory } from './login-history'\n\n@ObjectType()\nexport class LoginHistoryList {\n @Field(type => [LoginHistory])\n items: LoginHistory[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -16,6 +16,7 @@ let LoginHistory = LoginHistory_1 = class LoginHistory {
16
16
  });
17
17
  }
18
18
  };
19
+ exports.LoginHistory = LoginHistory;
19
20
  tslib_1.__decorate([
20
21
  (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
21
22
  (0, type_graphql_1.Field)(type => type_graphql_1.ID),
@@ -49,10 +50,9 @@ tslib_1.__decorate([
49
50
  (0, type_graphql_1.Field)({ nullable: true }),
50
51
  tslib_1.__metadata("design:type", Date)
51
52
  ], LoginHistory.prototype, "accessedAt", void 0);
52
- LoginHistory = LoginHistory_1 = tslib_1.__decorate([
53
+ exports.LoginHistory = LoginHistory = LoginHistory_1 = tslib_1.__decorate([
53
54
  (0, typeorm_1.Entity)(),
54
55
  (0, typeorm_1.Index)('ix_login_history_0', (loginHistory) => [loginHistory.accessDomain, loginHistory.accessUser]),
55
56
  (0, type_graphql_1.ObjectType)()
56
57
  ], LoginHistory);
57
- exports.LoginHistory = LoginHistory;
58
58
  //# sourceMappingURL=login-history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-history.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history.ts"],"names":[],"mappings":";;;;;AAAA,+CAAoD;AACpD,qCAAgH;AAEhH,iDAA6D;AAE7D,uCAAmC;AAK5B,IAAM,YAAY,oBAAlB,MAAM,YAAY;IA2BvB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAA6B,EAAE,UAAgB,EAAE,UAAkB;QACpF,MAAM,IAAA,qBAAa,EAAC,cAAY,CAAC,CAAC,IAAI,CAAC;YACrC,YAAY;YACZ,UAAU;YACV,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAjCC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;wCACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACP,cAAM;kDAAA;AAErB;IAAC,IAAA,oBAAU,EAAC,CAAC,YAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;;oDAChD;AAEtB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;IACvB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;sCACR,WAAI;gDAAA;AAEhB;IAAC,IAAA,oBAAU,EAAC,CAAC,YAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;;kDAChD;AAEpB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACR;AAElB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;gDAAA;AAzBL,YAAY;IAHxB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,oBAAoB,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACjH,IAAA,yBAAU,GAAE;GACA,YAAY,CAkCxB;AAlCY,oCAAY","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../user/user'\n\n@Entity()\n@Index('ix_login_history_0', (loginHistory: LoginHistory) => [loginHistory.accessDomain, loginHistory.accessUser])\n@ObjectType()\nexport class LoginHistory {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n accessDomain?: Domain\n\n @RelationId((loginHistory: LoginHistory) => loginHistory.accessDomain)\n accessDomainId: string\n\n @ManyToOne(type => User)\n @Field(type => User)\n accessUser: User\n\n @RelationId((loginHistory: LoginHistory) => loginHistory.accessUser)\n accessUserId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n accessorIp: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n accessedAt: Date\n\n static async stamp(accessDomain: Partial<Domain>, accessUser: User, accessorIp: string): Promise<void> {\n await getRepository(LoginHistory).save({\n accessDomain,\n accessUser,\n accessorIp\n })\n }\n}\n"]}
1
+ {"version":3,"file":"login-history.js","sourceRoot":"","sources":["../../../server/service/login-history/login-history.ts"],"names":[],"mappings":";;;;;AAAA,+CAAoD;AACpD,qCAAgH;AAEhH,iDAA6D;AAE7D,uCAAmC;AAK5B,IAAM,YAAY,oBAAlB,MAAM,YAAY;IA2BvB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAA6B,EAAE,UAAgB,EAAE,UAAkB;QACpF,MAAM,IAAA,qBAAa,EAAC,cAAY,CAAC,CAAC,IAAI,CAAC;YACrC,YAAY;YACZ,UAAU;YACV,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAlCY,oCAAY;AAGd;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;wCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACP,cAAM;kDAAA;AAGrB;IADC,IAAA,oBAAU,EAAC,CAAC,YAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;;oDAChD;AAItB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;IACvB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,CAAC;sCACR,WAAI;gDAAA;AAGhB;IADC,IAAA,oBAAU,EAAC,CAAC,YAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;;kDAChD;AAIpB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACR;AAIlB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;gDAAA;uBAzBL,YAAY;IAHxB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,oBAAoB,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACjH,IAAA,yBAAU,GAAE;GACA,YAAY,CAkCxB","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../user/user'\n\n@Entity()\n@Index('ix_login_history_0', (loginHistory: LoginHistory) => [loginHistory.accessDomain, loginHistory.accessUser])\n@ObjectType()\nexport class LoginHistory {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n accessDomain?: Domain\n\n @RelationId((loginHistory: LoginHistory) => loginHistory.accessDomain)\n accessDomainId: string\n\n @ManyToOne(type => User)\n @Field(type => User)\n accessUser: User\n\n @RelationId((loginHistory: LoginHistory) => loginHistory.accessUser)\n accessUserId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n accessorIp: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n accessedAt: Date\n\n static async stamp(accessDomain: Partial<Domain>, accessUser: User, accessorIp: string): Promise<void> {\n await getRepository(LoginHistory).save({\n accessDomain,\n accessUser,\n accessorIp\n })\n }\n}\n"]}
@@ -47,6 +47,7 @@ let PartnerMutation = class PartnerMutation {
47
47
  return true;
48
48
  }
49
49
  };
50
+ exports.PartnerMutation = PartnerMutation;
50
51
  tslib_1.__decorate([
51
52
  (0, type_graphql_1.Directive)('@privilege(category: "partner", privilege: "mutation")'),
52
53
  (0, type_graphql_1.Mutation)(returns => Boolean),
@@ -66,8 +67,7 @@ tslib_1.__decorate([
66
67
  tslib_1.__metadata("design:paramtypes", [String, Object]),
67
68
  tslib_1.__metadata("design:returntype", Promise)
68
69
  ], PartnerMutation.prototype, "terminateContract", null);
69
- PartnerMutation = tslib_1.__decorate([
70
+ exports.PartnerMutation = PartnerMutation = tslib_1.__decorate([
70
71
  (0, type_graphql_1.Resolver)(partner_1.Partner)
71
72
  ], PartnerMutation);
72
- exports.PartnerMutation = PartnerMutation;
73
73
  //# sourceMappingURL=partner-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-mutation.js","sourceRoot":"","sources":["../../../server/service/partner/partner-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { terminateGrantedRoles } from '../granted-role/granted-role-mutation'\nimport { Partner } from './partner'\n\n@Resolver(Partner)\nexport class PartnerMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async inviteCustomer(@Arg('customerDomainName') customerDomainName: string, @Ctx() context: ResolverContext) {\n // 1. Try to find existing customer\n const { domain, user } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOne({ where: { name: customerDomainName } })\n if (!customerDomain) throw new Error(`There's no customer which has ${customerDomainName} as name`)\n\n const isExistingCustomer: boolean = Boolean(\n await getRepository(Partner).count({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n )\n if (isExistingCustomer) throw new Error('Partner is registered as customer already')\n\n await getRepository(Partner).save({\n domain,\n partnerDomain: customerDomain,\n requester: user,\n approver: user\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async terminateContract(@Arg('partnerName') partnerName: string, @Ctx() context: ResolverContext) {\n const { tx, domain } = context.state\n\n // Find partnerDomain\n const partnerDomain: Domain = await tx.getRepository(Domain).findOne({\n where: { name: partnerName }\n })\n if (!partnerDomain) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Find partner\n const partner: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: partnerDomain.id } }\n })\n if (!partner) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Remove record from partner\n await tx.getRepository(Partner).delete(partner.id)\n\n // Remove granted roles\n await terminateGrantedRoles(domain, partnerDomain, tx)\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"partner-mutation.js","sourceRoot":"","sources":["../../../server/service/partner/partner-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { terminateGrantedRoles } from '../granted-role/granted-role-mutation'\nimport { Partner } from './partner'\n\n@Resolver(Partner)\nexport class PartnerMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async inviteCustomer(@Arg('customerDomainName') customerDomainName: string, @Ctx() context: ResolverContext) {\n // 1. Try to find existing customer\n const { domain, user } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOne({ where: { name: customerDomainName } })\n if (!customerDomain) throw new Error(`There's no customer which has ${customerDomainName} as name`)\n\n const isExistingCustomer: boolean = Boolean(\n await getRepository(Partner).count({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n )\n if (isExistingCustomer) throw new Error('Partner is registered as customer already')\n\n await getRepository(Partner).save({\n domain,\n partnerDomain: customerDomain,\n requester: user,\n approver: user\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async terminateContract(@Arg('partnerName') partnerName: string, @Ctx() context: ResolverContext) {\n const { tx, domain } = context.state\n\n // Find partnerDomain\n const partnerDomain: Domain = await tx.getRepository(Domain).findOne({\n where: { name: partnerName }\n })\n if (!partnerDomain) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Find partner\n const partner: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: partnerDomain.id } }\n })\n if (!partner) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Remove record from partner\n await tx.getRepository(Partner).delete(partner.id)\n\n // Remove granted roles\n await terminateGrantedRoles(domain, partnerDomain, tx)\n\n return true\n }\n}\n"]}
@@ -71,10 +71,11 @@ let PartnerQuery = class PartnerQuery {
71
71
  return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: partner.approverId });
72
72
  }
73
73
  };
74
+ exports.PartnerQuery = PartnerQuery;
74
75
  tslib_1.__decorate([
75
76
  (0, type_graphql_1.Directive)('@privilege(category: "partner", privilege: "query", domainOwnerGranted: true)'),
76
77
  (0, type_graphql_1.Query)(returns => partner_types_1.PartnerList),
77
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
78
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
78
79
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
79
80
  tslib_1.__metadata("design:type", Function),
80
81
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
@@ -91,7 +92,7 @@ tslib_1.__decorate([
91
92
  tslib_1.__decorate([
92
93
  (0, type_graphql_1.Directive)('@privilege(category: "partner", privilege: "query")'),
93
94
  (0, type_graphql_1.Query)(returns => shell_1.DomainList),
94
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
95
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
95
96
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
96
97
  tslib_1.__metadata("design:type", Function),
97
98
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
@@ -133,8 +134,7 @@ tslib_1.__decorate([
133
134
  tslib_1.__metadata("design:paramtypes", [partner_1.Partner]),
134
135
  tslib_1.__metadata("design:returntype", Promise)
135
136
  ], PartnerQuery.prototype, "approver", null);
136
- PartnerQuery = tslib_1.__decorate([
137
+ exports.PartnerQuery = PartnerQuery = tslib_1.__decorate([
137
138
  (0, type_graphql_1.Resolver)(partner_1.Partner)
138
139
  ], PartnerQuery);
139
- exports.PartnerQuery = PartnerQuery;
140
140
  //# sourceMappingURL=partner-query.js.map