@qrvey/assets-sharing 0.0.2 → 0.0.4

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 (44) hide show
  1. package/dist/cjs/common/constants.js +1 -0
  2. package/dist/cjs/common/constants.js.map +1 -1
  3. package/dist/cjs/context.js +2 -0
  4. package/dist/cjs/context.js.map +1 -1
  5. package/dist/cjs/index.js +4 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/{sharing/interfaces/details.interface.js → quser/entities/types/user.type.js} +1 -1
  8. package/dist/cjs/quser/entities/types/user.type.js.map +1 -0
  9. package/dist/cjs/quser/entities/user.js +22 -0
  10. package/dist/cjs/quser/entities/user.js.map +1 -0
  11. package/dist/cjs/quser/implementations/user.model.js +24 -0
  12. package/dist/cjs/quser/implementations/user.model.js.map +1 -0
  13. package/dist/cjs/quser/implementations/user.repository.js +19 -0
  14. package/dist/cjs/quser/implementations/user.repository.js.map +1 -0
  15. package/dist/cjs/quser/interfaces/userRepository.interface.js +3 -0
  16. package/dist/cjs/quser/interfaces/userRepository.interface.js.map +1 -0
  17. package/dist/cjs/quser/services/fromTokenToUser.js +49 -0
  18. package/dist/cjs/quser/services/fromTokenToUser.js.map +1 -0
  19. package/dist/cjs/sharing/implementations/details.repository.js +37 -0
  20. package/dist/cjs/sharing/implementations/details.repository.js.map +1 -1
  21. package/dist/cjs/sharing/interfaces/detailsRepository.interface.js +3 -0
  22. package/dist/cjs/sharing/interfaces/detailsRepository.interface.js.map +1 -0
  23. package/dist/cjs/sharing/services/checkUserAccessLevel.js +6 -6
  24. package/dist/cjs/sharing/services/checkUserAccessLevel.js.map +1 -1
  25. package/dist/esm/index.mjs +155 -25
  26. package/dist/esm/index.mjs.map +1 -1
  27. package/dist/types/index.d.ts +45 -27
  28. package/package.json +1 -1
  29. package/src/common/common.type.ts +6 -0
  30. package/src/common/constants.ts +2 -1
  31. package/src/context.ts +4 -1
  32. package/src/index.ts +5 -0
  33. package/src/quser/entities/types/user.type.ts +13 -0
  34. package/src/quser/entities/user.ts +27 -0
  35. package/src/quser/implementations/user.model.ts +23 -0
  36. package/src/quser/implementations/user.repository.ts +21 -0
  37. package/src/quser/interfaces/userRepository.interface.ts +5 -0
  38. package/src/quser/services/fromTokenToUser.ts +44 -0
  39. package/src/sharing/implementations/details.repository.ts +54 -3
  40. package/src/sharing/interfaces/{details.interface.ts → detailsRepository.interface.ts} +6 -2
  41. package/src/sharing/services/checkUserAccessLevel.ts +13 -9
  42. package/src/sharing/services/list.ts +1 -1
  43. package/src/sharing/services/upsert.ts +1 -1
  44. package/dist/cjs/sharing/interfaces/details.interface.js.map +0 -1
@@ -14,6 +14,7 @@ exports.ORGANIZATION_QRVEY = 'org:0';
14
14
  var ASSET_TYPE;
15
15
  (function (ASSET_TYPE) {
16
16
  ASSET_TYPE["DX"] = "DX";
17
+ ASSET_TYPE["DM"] = "DM";
17
18
  })(ASSET_TYPE || (exports.ASSET_TYPE = ASSET_TYPE = {}));
18
19
  var SHARED_ORIGIN;
19
20
  (function (SHARED_ORIGIN) {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACvB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;CACzC,CAAC;AAEW,QAAA,aAAa,GAAG;IACzB,uBAAuB,EAAE,OAAO;IAChC,aAAa,EAAE,mBAAW,CAAC,aAAa;IACxC,YAAY,EAAE,mBAAW,CAAC,YAAY;CACzC,CAAC;AAEW,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAE1C,IAAY,UAEX;AAFD,WAAY,UAAU;IAClB,uBAAS,CAAA;AACb,CAAC,EAFW,UAAU,0BAAV,UAAU,QAErB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,2CAA6B,CAAA;AACjC,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,uDAAY,CAAA;IACZ,iDAAS,CAAA;AACb,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,cAAc,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACvB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;CACzC,CAAC;AAEW,QAAA,aAAa,GAAG;IACzB,uBAAuB,EAAE,OAAO;IAChC,aAAa,EAAE,mBAAW,CAAC,aAAa;IACxC,YAAY,EAAE,mBAAW,CAAC,YAAY;CACzC,CAAC;AAEW,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAE1C,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,uBAAS,CAAA;IACT,uBAAS,CAAA;AACb,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,2CAA6B,CAAA;AACjC,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,uDAAY,CAAA;IACZ,iDAAS,CAAA;AACb,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,cAAc,GAAG,EAAE,CAAC"}
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Context = void 0;
4
4
  const tsyringe_1 = require("tsyringe");
5
+ const user_repository_1 = require("./quser/implementations/user.repository");
5
6
  const details_repository_1 = require("./sharing/implementations/details.repository");
6
7
  const sharing_repository_1 = require("./sharing/implementations/sharing.repository");
7
8
  tsyringe_1.container.register('SharingRepository', sharing_repository_1.SharingRepository);
8
9
  tsyringe_1.container.register('SharingDetailsRepository', details_repository_1.SharingDetailsRepository);
10
+ tsyringe_1.container.register('UserRepository', user_repository_1.UserRepository);
9
11
  exports.Context = tsyringe_1.container;
10
12
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAErC,qFAAwF;AACxF,qFAAiF;AAIjF,oBAAS,CAAC,QAAQ,CACd,mBAAmB,EACnB,sCAAiB,CACpB,CAAC;AACF,oBAAS,CAAC,QAAQ,CACd,0BAA0B,EAC1B,6CAAwB,CAC3B,CAAC;AAEW,QAAA,OAAO,GAAG,oBAAS,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAErC,6EAAyE;AAEzE,qFAAwF;AACxF,qFAAiF;AAIjF,oBAAS,CAAC,QAAQ,CACd,mBAAmB,EACnB,sCAAiB,CACpB,CAAC;AACF,oBAAS,CAAC,QAAQ,CACd,0BAA0B,EAC1B,6CAAwB,CAC3B,CAAC;AACF,oBAAS,CAAC,QAAQ,CAA0B,gBAAgB,EAAE,gCAAc,CAAC,CAAC;AAEjE,QAAA,OAAO,GAAG,oBAAS,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SHARE_TYPE = exports.SHARED_ORIGIN = exports.ORGANIZATION_QRVEY = exports.ASSET_TYPE = exports.ACCESS_LEVEL = exports.checkUserAccessLevel = exports.api = void 0;
3
+ exports.SHARE_TYPE = exports.SHARED_ORIGIN = exports.ORGANIZATION_QRVEY = exports.ASSET_TYPE = exports.ACCESS_LEVEL = exports.fromTokenToUser = exports.checkUserAccessLevel = exports.api = void 0;
4
4
  require("reflect-metadata");
5
5
  const context_1 = require("./context");
6
+ const fromTokenToUser_1 = require("./quser/services/fromTokenToUser");
6
7
  const checkUserAccessLevel_1 = require("./sharing/services/checkUserAccessLevel");
7
8
  const delete_1 = require("./sharing/services/delete");
8
9
  const list_1 = require("./sharing/services/list");
@@ -14,6 +15,8 @@ exports.api = {
14
15
  };
15
16
  const checkUserAccessLevel = (...args) => context_1.Context.resolve(checkUserAccessLevel_1.CheckUserAccessLevel).execute(...args);
16
17
  exports.checkUserAccessLevel = checkUserAccessLevel;
18
+ const fromTokenToUser = (...args) => context_1.Context.resolve(fromTokenToUser_1.FromTokenToUser).execute(...args);
19
+ exports.fromTokenToUser = fromTokenToUser;
17
20
  var constants_1 = require("./common/constants");
18
21
  Object.defineProperty(exports, "ACCESS_LEVEL", { enumerable: true, get: function () { return constants_1.ACCESS_LEVEL; } });
19
22
  Object.defineProperty(exports, "ASSET_TYPE", { enumerable: true, get: function () { return constants_1.ASSET_TYPE; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,uCAAoC;AACpC,kFAA+E;AAC/E,sDAA0D;AAC1D,kDAAsD;AACtD,sDAA0D;AAE7C,QAAA,GAAG,GAAG;IACf,MAAM,EAAE,CAAC,GAAG,IAA0C,EAAE,EAAE,CACtD,iBAAO,CAAC,OAAO,CAAC,sBAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,IAAI,EAAE,CAAC,GAAG,IAAwC,EAAE,EAAE,CAClD,iBAAO,CAAC,OAAO,CAAC,kBAAW,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,EAAE,CAAC,GAAG,IAA0C,EAAE,EAAE,CACtD,iBAAO,CAAC,OAAO,CAAC,sBAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACtD,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAChC,GAAG,IAAiD,EACtD,EAAE,CAAC,iBAAO,CAAC,OAAO,CAAC,2CAAoB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAF/C,QAAA,oBAAoB,wBAE2B;AAE5D,gDAM4B;AALxB,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,+GAAA,kBAAkB,OAAA;AAClB,0GAAA,aAAa,OAAA;AACb,uGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,uCAAoC;AACpC,sEAAmE;AACnE,kFAA+E;AAC/E,sDAA0D;AAC1D,kDAAsD;AACtD,sDAA0D;AAE7C,QAAA,GAAG,GAAG;IACf,MAAM,EAAE,CAAC,GAAG,IAA0C,EAAE,EAAE,CACtD,iBAAO,CAAC,OAAO,CAAC,sBAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,IAAI,EAAE,CAAC,GAAG,IAAwC,EAAE,EAAE,CAClD,iBAAO,CAAC,OAAO,CAAC,kBAAW,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,EAAE,CAAC,GAAG,IAA0C,EAAE,EAAE,CACtD,iBAAO,CAAC,OAAO,CAAC,sBAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACtD,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAChC,GAAG,IAAiD,EACtD,EAAE,CAAC,iBAAO,CAAC,OAAO,CAAC,2CAAoB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAF/C,QAAA,oBAAoB,wBAE2B;AAErD,MAAM,eAAe,GAAG,CAC3B,GAAG,IAA4C,EACjD,EAAE,CAAC,iBAAO,CAAC,OAAO,CAAC,iCAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAF1C,QAAA,eAAe,mBAE2B;AAEvD,gDAM4B;AALxB,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,+GAAA,kBAAkB,OAAA;AAClB,0GAAA,aAAa,OAAA;AACb,uGAAA,UAAU,OAAA"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=details.interface.js.map
3
+ //# sourceMappingURL=user.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.type.js","sourceRoot":"","sources":["../../../../../src/quser/entities/types/user.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = void 0;
4
+ class User {
5
+ constructor(params) {
6
+ this.userId = params.userid;
7
+ this.email = params.email;
8
+ this.groups = params.groups;
9
+ this.organization = params.organization;
10
+ }
11
+ get getEmail() {
12
+ return this.email;
13
+ }
14
+ get getGroups() {
15
+ return this.groups;
16
+ }
17
+ get getOrganization() {
18
+ return this.organization;
19
+ }
20
+ }
21
+ exports.User = User;
22
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/quser/entities/user.ts"],"names":[],"mappings":";;;AAEA,MAAa,IAAI;IAMb,YAAY,MAAgB;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACJ;AAxBD,oBAwBC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserModel = void 0;
4
+ const data_persistence_1 = require("@qrvey/data-persistence");
5
+ const constants_1 = require("../../common/constants");
6
+ class UserModel extends data_persistence_1.CrudSchema {
7
+ }
8
+ exports.UserModel = UserModel;
9
+ UserModel.table = {
10
+ name: `${constants_1.DATABASE_INFO.SERVER_PREFIX}Users`,
11
+ alias: 'qv_users',
12
+ };
13
+ UserModel.columns = {
14
+ userid: {
15
+ type: 'string',
16
+ primary: true,
17
+ columnId: true,
18
+ },
19
+ groups: {
20
+ type: 'array',
21
+ },
22
+ };
23
+ UserModel.schema = constants_1.DATABASE_INFO.DATA_PERSISTENCE_SCHEMA;
24
+ //# sourceMappingURL=user.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../src/quser/implementations/user.model.ts"],"names":[],"mappings":";;;AAAA,8DAAqD;AAErD,sDAAuD;AAEvD,MAAa,SAAU,SAAQ,6BAAU;;AAAzC,8BAkBC;AAjBU,eAAK,GAAG;IACX,IAAI,EAAE,GAAG,yBAAa,CAAC,aAAa,OAAO;IAC3C,KAAK,EAAE,UAAU;CACpB,CAAC;AAEK,iBAAO,GAAG;IACb,MAAM,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,OAAO;KAChB;CACJ,CAAC;AAEK,gBAAM,GAAG,yBAAa,CAAC,uBAAuB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserRepository = void 0;
4
+ const user_model_1 = require("./user.model");
5
+ const base_1 = require("../../common/persistence/base");
6
+ class UserRepository extends base_1.BaseRepository {
7
+ constructor() {
8
+ super(user_model_1.UserModel);
9
+ }
10
+ async getOne(identifier) {
11
+ const params = {
12
+ filters: [this.filter('userid', identifier)],
13
+ };
14
+ const response = await super.findItem(params);
15
+ return response;
16
+ }
17
+ }
18
+ exports.UserRepository = UserRepository;
19
+ //# sourceMappingURL=user.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../../src/quser/implementations/user.repository.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,wDAA+D;AAI/D,MAAa,cACT,SAAQ,qBAAc;IAGtB;QACI,KAAK,CAAC,sBAAS,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC3B,MAAM,MAAM,GAAG;YACX,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SAC/C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,QAAoB,CAAC;IAChC,CAAC;CACJ;AAfD,wCAeC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=userRepository.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userRepository.interface.js","sourceRoot":"","sources":["../../../../src/quser/interfaces/userRepository.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
9
+ return function (target, key) { decorator(target, key, paramIndex); }
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FromTokenToUser = void 0;
13
+ const tsyringe_1 = require("tsyringe");
14
+ const constants_1 = require("../../common/constants");
15
+ const user_1 = require("../entities/user");
16
+ let FromTokenToUser = class FromTokenToUser {
17
+ constructor(userRepository) {
18
+ this.userRepository = userRepository;
19
+ }
20
+ async execute({ body, }) {
21
+ if (body === null || body === void 0 ? void 0 : body.clientId) {
22
+ return {
23
+ userId: body.clientId,
24
+ roles: body.roles || [],
25
+ orgId: body.orgId || '',
26
+ };
27
+ }
28
+ const current = await this.userRepository.getOne(body.userId);
29
+ if (!current) {
30
+ return {
31
+ userId: '',
32
+ roles: [],
33
+ orgId: '',
34
+ };
35
+ }
36
+ const user = new user_1.User(current);
37
+ return {
38
+ userId: body.userId,
39
+ roles: user.getGroups,
40
+ orgId: constants_1.ORGANIZATION_QRVEY,
41
+ };
42
+ }
43
+ };
44
+ exports.FromTokenToUser = FromTokenToUser;
45
+ exports.FromTokenToUser = FromTokenToUser = __decorate([
46
+ (0, tsyringe_1.injectable)(),
47
+ __param(0, (0, tsyringe_1.inject)('UserRepository'))
48
+ ], FromTokenToUser);
49
+ //# sourceMappingURL=fromTokenToUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromTokenToUser.js","sourceRoot":"","sources":["../../../../src/quser/services/fromTokenToUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA8C;AAG9C,sDAA4D;AAE5D,2CAAwC;AAIjC,IAAM,eAAe,GAArB,MAAM,eAAe;IACxB,YAEqB,cAAuC;QAAvC,mBAAc,GAAd,cAAc,CAAyB;IACzD,CAAC;IAEG,KAAK,CAAC,OAAO,CAAC,EACjB,IAAI,GAGP;QACG,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,CAAC;YACjB,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;aAC1B,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;gBACH,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;aACZ,CAAC;QACN,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,KAAK,EAAE,8BAAkB;SAC5B,CAAC;IACN,CAAC;CACJ,CAAA;AAlCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,gBAAgB,CAAC,CAAA;GAFpB,eAAe,CAkC3B"}
@@ -32,6 +32,10 @@ class SharingDetailsRepository extends base_1.BaseRepository {
32
32
  });
33
33
  }
34
34
  params.filters = filterList;
35
+ if (options.data.user) {
36
+ const currentFilter = this.getUserFilter(options.data.user, filterList);
37
+ params.filters = currentFilter;
38
+ }
35
39
  if (options.sorting)
36
40
  params.sorting = options.sorting;
37
41
  const response = await super.find(params);
@@ -58,6 +62,39 @@ class SharingDetailsRepository extends base_1.BaseRepository {
58
62
  from: (_b = options === null || options === void 0 ? void 0 : options.from) !== null && _b !== void 0 ? _b : undefined,
59
63
  };
60
64
  }
65
+ getUserFilter(user, currentFilters) {
66
+ const { userId, orgId, roles } = user;
67
+ const sharing = {
68
+ OR: [
69
+ {
70
+ AND: [
71
+ this.buildFilter('shared_with', userId),
72
+ this.buildFilter('shared_type', 'USER'),
73
+ this.buildFilter('org_id', orgId),
74
+ ],
75
+ },
76
+ {
77
+ AND: [
78
+ this.buildFilter('shared_with', orgId),
79
+ this.buildFilter('shared_type', 'ORGANIZATION'),
80
+ this.buildFilter('org_id', orgId),
81
+ ],
82
+ },
83
+ {
84
+ AND: [
85
+ this.buildFilter('shared_with', roles, 'IN'),
86
+ this.buildFilter('shared_type', 'ROLE'),
87
+ this.buildFilter('org_id', orgId),
88
+ ],
89
+ },
90
+ ],
91
+ };
92
+ const filter = [];
93
+ if (currentFilters)
94
+ filter.push(...currentFilters);
95
+ filter.push(sharing);
96
+ return { AND: filter };
97
+ }
61
98
  }
62
99
  exports.SharingDetailsRepository = SharingDetailsRepository;
63
100
  //# sourceMappingURL=details.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"details.repository.js","sourceRoot":"","sources":["../../../../src/sharing/implementations/details.repository.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AAEtD,sDAAwD;AACxD,wDAA+D;AAI/D,MAAa,wBACT,SAAQ,qBAAc;IAGtB;QACI,KAAK,CAAC,mCAAmB,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,eAAuB;QAChC,MAAM,MAAM,GAAG;YACX,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;SAChE,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,QAA+B,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CACT,OAAuC;QAEvC,MAAM,UAAU,GAAG,mCAAmB,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,MAAM,GAKR;YACA,UAAU;YACV,KAAK,EAAE;gBACH,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;aAC9B;SACJ,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;QAE5B,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,QAA2C,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA4B;QACrC,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAwB,CAAC;QACtE,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CACP,eAAuB,EACvB,OAA4B;QAE5B,MAAM,KAAK,CAAC,MAAM,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,EACpD,OAAO,CACV,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,eAAuB;QAChC,MAAM,KAAK,CAAC,MAAM,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC;SACrD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,OAAoB;;QACtC,OAAO;YACH,KAAK,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,0BAAc;YACvC,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,SAAS;SACnC,CAAC;IACN,CAAC;CACJ;AA7ED,4DA6EC"}
1
+ {"version":3,"file":"details.repository.js","sourceRoot":"","sources":["../../../../src/sharing/implementations/details.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=detailsRepository.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detailsRepository.interface.js","sourceRoot":"","sources":["../../../../src/sharing/interfaces/detailsRepository.interface.ts"],"names":[],"mappings":""}
@@ -12,18 +12,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CheckUserAccessLevel = void 0;
13
13
  const tsyringe_1 = require("tsyringe");
14
14
  const constants_1 = require("../../common/constants");
15
+ const index_1 = require("../../index");
15
16
  const details_1 = require("../entities/details");
16
17
  let CheckUserAccessLevel = class CheckUserAccessLevel {
17
18
  constructor(detailsRepository) {
18
19
  this.detailsRepository = detailsRepository;
19
20
  }
20
- async execute({ userId, orgId, assetId, }) {
21
+ async execute({ userId, assetId, clientId, roles, orgId, }) {
22
+ const user = await (0, index_1.fromTokenToUser)({
23
+ body: { userId, clientId, roles, orgId },
24
+ });
21
25
  const details = await this.detailsRepository.getList({
22
- data: { assetId },
23
- filters: [
24
- { column: 'shared_with', value: userId },
25
- { column: 'org_id', value: orgId },
26
- ],
26
+ data: { assetId, user },
27
27
  sorting: [{ column: 'access_level', direction: 'DESC' }],
28
28
  pagination: { limit: 1 },
29
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"checkUserAccessLevel.js","sourceRoot":"","sources":["../../../../src/sharing/services/checkUserAccessLevel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA8C;AAE9C,sDAAsD;AACtD,iDAAoD;AAI7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC7B,YAEqB,iBAAoD;QAApD,sBAAiB,GAAjB,iBAAiB,CAAmC;IACtE,CAAC;IAEG,KAAK,CAAC,OAAO,CAAC,EACjB,MAAM,EACN,KAAK,EACL,OAAO,GAKV;QACG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACjD,IAAI,EAAE,EAAE,OAAO,EAAE;YACjB,OAAO,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;gBACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;aACrC;YACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YACxD,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,wBAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,uBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO;YACH,KAAK,EAAE,aAAa,CAAC,cAAc;YACnC,WAAW,EAAE,aAAa,CAAC,oBAAoB;SAClD,CAAC;IACN,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,0BAA0B,CAAC,CAAA;GAF9B,oBAAoB,CAgChC"}
1
+ {"version":3,"file":"checkUserAccessLevel.js","sourceRoot":"","sources":["../../../../src/sharing/services/checkUserAccessLevel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA8C;AAE9C,sDAAsD;AACtD,uCAA8C;AAC9C,iDAAoD;AAI7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC7B,YAEqB,iBAAoD;QAApD,sBAAiB,GAAjB,iBAAiB,CAAmC;IACtE,CAAC;IAEG,KAAK,CAAC,OAAO,CAAC,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,KAAK,GAOR;QACG,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAe,EAAC;YAC/B,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;SAC3C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACjD,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YACvB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YACxD,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,wBAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,uBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO;YACH,KAAK,EAAE,aAAa,CAAC,cAAc;YACnC,WAAW,EAAE,aAAa,CAAC,oBAAoB;SAClD,CAAC;IACN,CAAC;CACJ,CAAA;AAnCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,0BAA0B,CAAC,CAAA;GAF9B,oBAAoB,CAmChC"}
@@ -45,6 +45,7 @@ var DATABASE_INFO = {
45
45
  var ORGANIZATION_QRVEY = "org:0";
46
46
  var ASSET_TYPE = /* @__PURE__ */ ((ASSET_TYPE3) => {
47
47
  ASSET_TYPE3["DX"] = "DX";
48
+ ASSET_TYPE3["DM"] = "DM";
48
49
  return ASSET_TYPE3;
49
50
  })(ASSET_TYPE || {});
50
51
  var SHARED_ORIGIN = /* @__PURE__ */ ((SHARED_ORIGIN4) => {
@@ -67,7 +68,54 @@ var ACCESS_LEVEL = /* @__PURE__ */ ((ACCESS_LEVEL3) => {
67
68
  })(ACCESS_LEVEL || {});
68
69
  var LIMIT_PER_PAGE = 10;
69
70
 
70
- // src/sharing/implementations/details.model.ts
71
+ // src/quser/implementations/user.model.ts
72
+ var UserModel = class extends CrudSchema {
73
+ };
74
+ UserModel.table = {
75
+ name: `${DATABASE_INFO.SERVER_PREFIX}Users`,
76
+ alias: "qv_users"
77
+ };
78
+ UserModel.columns = {
79
+ userid: {
80
+ type: "string",
81
+ primary: true,
82
+ columnId: true
83
+ },
84
+ groups: {
85
+ type: "array"
86
+ }
87
+ };
88
+ UserModel.schema = DATABASE_INFO.DATA_PERSISTENCE_SCHEMA;
89
+ var poolClient;
90
+ function getPoolClient() {
91
+ if (!poolClient)
92
+ poolClient = getDbPool();
93
+ return poolClient;
94
+ }
95
+
96
+ // src/common/persistence/base.ts
97
+ var BaseRepository = class extends CrudService {
98
+ constructor(schema) {
99
+ super(schema, getPoolClient());
100
+ }
101
+ filter(attribute, value) {
102
+ return buildFilter(attribute, value);
103
+ }
104
+ };
105
+
106
+ // src/quser/implementations/user.repository.ts
107
+ var UserRepository = class extends BaseRepository {
108
+ constructor() {
109
+ super(UserModel);
110
+ }
111
+ async getOne(identifier) {
112
+ const params = {
113
+ filters: [this.filter("userid", identifier)]
114
+ };
115
+ const response = await super.findItem(params);
116
+ return response;
117
+ }
118
+ };
71
119
  var SharingDetailsModel = class extends CrudSchema {
72
120
  };
73
121
  SharingDetailsModel.table = {
@@ -154,22 +202,6 @@ SharingDetailsModel.indexes = {
154
202
  };
155
203
  SharingDetailsModel.schema = DATABASE_INFO.DATA_PERSISTENCE_SCHEMA;
156
204
  SharingDetailsModel.usePool = true;
157
- var poolClient;
158
- function getPoolClient() {
159
- if (!poolClient)
160
- poolClient = getDbPool();
161
- return poolClient;
162
- }
163
-
164
- // src/common/persistence/base.ts
165
- var BaseRepository = class extends CrudService {
166
- constructor(schema) {
167
- super(schema, getPoolClient());
168
- }
169
- filter(attribute, value) {
170
- return buildFilter(attribute, value);
171
- }
172
- };
173
205
 
174
206
  // src/sharing/implementations/details.repository.ts
175
207
  var SharingDetailsRepository = class extends BaseRepository {
@@ -200,6 +232,13 @@ var SharingDetailsRepository = class extends BaseRepository {
200
232
  });
201
233
  }
202
234
  params.filters = filterList;
235
+ if (options.data.user) {
236
+ const currentFilter = this.getUserFilter(
237
+ options.data.user,
238
+ filterList
239
+ );
240
+ params.filters = currentFilter;
241
+ }
203
242
  if (options.sorting)
204
243
  params.sorting = options.sorting;
205
244
  const response = await super.find(params);
@@ -229,6 +268,39 @@ var SharingDetailsRepository = class extends BaseRepository {
229
268
  from: (_b = options == null ? void 0 : options.from) != null ? _b : void 0
230
269
  };
231
270
  }
271
+ getUserFilter(user, currentFilters) {
272
+ const { userId, orgId, roles } = user;
273
+ const sharing = {
274
+ OR: [
275
+ {
276
+ AND: [
277
+ this.buildFilter("shared_with", userId),
278
+ this.buildFilter("shared_type", "USER"),
279
+ this.buildFilter("org_id", orgId)
280
+ ]
281
+ },
282
+ {
283
+ AND: [
284
+ this.buildFilter("shared_with", orgId),
285
+ this.buildFilter("shared_type", "ORGANIZATION"),
286
+ this.buildFilter("org_id", orgId)
287
+ ]
288
+ },
289
+ {
290
+ AND: [
291
+ this.buildFilter("shared_with", roles, "IN"),
292
+ this.buildFilter("shared_type", "ROLE"),
293
+ this.buildFilter("org_id", orgId)
294
+ ]
295
+ }
296
+ ]
297
+ };
298
+ const filter = [];
299
+ if (currentFilters)
300
+ filter.push(...currentFilters);
301
+ filter.push(sharing);
302
+ return { AND: filter };
303
+ }
232
304
  };
233
305
  var SharingModel = class extends CrudSchema {
234
306
  };
@@ -292,7 +364,63 @@ container.register(
292
364
  "SharingDetailsRepository",
293
365
  SharingDetailsRepository
294
366
  );
367
+ container.register("UserRepository", UserRepository);
295
368
  var Context = container;
369
+
370
+ // src/quser/entities/user.ts
371
+ var User = class {
372
+ constructor(params) {
373
+ this.userId = params.userid;
374
+ this.email = params.email;
375
+ this.groups = params.groups;
376
+ this.organization = params.organization;
377
+ }
378
+ get getEmail() {
379
+ return this.email;
380
+ }
381
+ get getGroups() {
382
+ return this.groups;
383
+ }
384
+ get getOrganization() {
385
+ return this.organization;
386
+ }
387
+ };
388
+
389
+ // src/quser/services/fromTokenToUser.ts
390
+ var FromTokenToUser = class {
391
+ constructor(userRepository) {
392
+ this.userRepository = userRepository;
393
+ }
394
+ async execute({
395
+ body
396
+ }) {
397
+ if (body == null ? void 0 : body.clientId) {
398
+ return {
399
+ userId: body.clientId,
400
+ roles: body.roles || [],
401
+ orgId: body.orgId || ""
402
+ };
403
+ }
404
+ const current = await this.userRepository.getOne(body.userId);
405
+ if (!current) {
406
+ return {
407
+ userId: "",
408
+ roles: [],
409
+ orgId: ""
410
+ };
411
+ }
412
+ const user = new User(current);
413
+ return {
414
+ userId: body.userId,
415
+ roles: user.getGroups,
416
+ orgId: ORGANIZATION_QRVEY
417
+ };
418
+ }
419
+ };
420
+ FromTokenToUser = __decorateClass([
421
+ injectable(),
422
+ __decorateParam(0, inject("UserRepository"))
423
+ ], FromTokenToUser);
296
424
  var SharingDetail = class _SharingDetail {
297
425
  constructor(params) {
298
426
  this.sharingDetailsId = params.sharingDetailsId;
@@ -409,15 +537,16 @@ var CheckUserAccessLevel = class {
409
537
  }
410
538
  async execute({
411
539
  userId,
412
- orgId,
413
- assetId
540
+ assetId,
541
+ clientId,
542
+ roles,
543
+ orgId
414
544
  }) {
545
+ const user = await fromTokenToUser({
546
+ body: { userId, clientId, roles, orgId }
547
+ });
415
548
  const details = await this.detailsRepository.getList({
416
- data: { assetId },
417
- filters: [
418
- { column: "shared_with", value: userId },
419
- { column: "org_id", value: orgId }
420
- ],
549
+ data: { assetId, user },
421
550
  sorting: [{ column: "access_level", direction: "DESC" }],
422
551
  pagination: { limit: 1 }
423
552
  });
@@ -625,7 +754,8 @@ var api = {
625
754
  delete: (...args) => Context.resolve(DeleteSharing).execute(...args)
626
755
  };
627
756
  var checkUserAccessLevel = (...args) => Context.resolve(CheckUserAccessLevel).execute(...args);
757
+ var fromTokenToUser = (...args) => Context.resolve(FromTokenToUser).execute(...args);
628
758
 
629
- export { ACCESS_LEVEL, ASSET_TYPE, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, api, checkUserAccessLevel };
759
+ export { ACCESS_LEVEL, ASSET_TYPE, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, api, checkUserAccessLevel, fromTokenToUser };
630
760
  //# sourceMappingURL=out.js.map
631
761
  //# sourceMappingURL=index.mjs.map