@openforis/arena-server 2.7.2 → 2.8.1

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.
@@ -1,4 +1,4 @@
1
- import { UserGroup } from '@openforis/arena-core';
1
+ import { UserGroup, UserGroupProps } from '@openforis/arena-core';
2
2
  import { UserGroupService } from '../../service';
3
3
  export declare const getUserGroupService: () => UserGroupService;
4
4
  export declare const getSurveyUuid: (surveyId: number) => Promise<string>;
@@ -9,3 +9,8 @@ export declare const getUserGroupBelongingToSurvey: (params: {
9
9
  surveyUuid: string;
10
10
  userGroup: UserGroup;
11
11
  }>;
12
+ export declare const sanitizeReadableGroupUuids: (params: {
13
+ surveyUuid: string;
14
+ groupUuid?: string;
15
+ props?: UserGroupProps;
16
+ }) => Promise<UserGroupProps | undefined>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUserGroupBelongingToSurvey = exports.getSurveyUuid = exports.getUserGroupService = void 0;
3
+ exports.sanitizeReadableGroupUuids = exports.getUserGroupBelongingToSurvey = exports.getSurveyUuid = exports.getUserGroupService = void 0;
4
4
  const arena_core_1 = require("@openforis/arena-core");
5
5
  const server_1 = require("../../server");
6
6
  const serverServiceType_1 = require("../../server/arenaServer/serverServiceType");
@@ -23,4 +23,17 @@ const getUserGroupBelongingToSurvey = async (params) => {
23
23
  return { surveyUuid, userGroup };
24
24
  };
25
25
  exports.getUserGroupBelongingToSurvey = getUserGroupBelongingToSurvey;
26
+ const sanitizeReadableGroupUuids = async (params) => {
27
+ const { surveyUuid, groupUuid, props } = params;
28
+ if (props?.readableGroupUuids === undefined)
29
+ return props;
30
+ const readableGroupUuids = Array.isArray(props.readableGroupUuids) ? props.readableGroupUuids : [];
31
+ const surveyGroups = await (0, exports.getUserGroupService)().getAll({ surveyUuid });
32
+ const surveyGroupUuids = new Set(surveyGroups.map((group) => group.uuid));
33
+ return {
34
+ ...props,
35
+ readableGroupUuids: [...new Set(readableGroupUuids)].filter((uuid) => uuid !== groupUuid && surveyGroupUuids.has(uuid)),
36
+ };
37
+ };
38
+ exports.sanitizeReadableGroupUuids = sanitizeReadableGroupUuids;
26
39
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api/userGroup/common.ts"],"names":[],"mappings":";;;AAAA,sDAA8F;AAE9F,yCAA2D;AAC3D,kFAA8E;AAGvE,MAAM,mBAAmB,GAAG,GAAqB,EAAE,CACxD,4BAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,qCAAiB,CAAC,SAAS,CAAqB,CAAA;AAD9E,QAAA,mBAAmB,GAAnB,mBAAmB,CAC2D;AAEpF,MAAM,aAAa,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;IACvE,MAAM,aAAa,GAAG,4BAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,wBAAW,CAAC,MAAM,CAAkB,CAAA;IACnG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA;AAJY,QAAA,aAAa,GAAb,aAAa,CAIzB;AAOM,MAAM,6BAA6B,GAAG,KAAK,EAAE,MAGnD,EAAyD,EAAE;IAC1D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEtC,MAAM,UAAU,GAAG,MAAM,IAAA,QAAA,aAAa,EAAC,QAAQ,CAAC,CAAA;IAEhD,MAAM,OAAO,GAAG,IAAA,QAAA,mBAAmB,GAAE,CAAA;IACrC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAE9D,IAAI,SAAS,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,oBAAW,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,EAAE,wBAAe,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAClC,CAAC,CAAA;AAfY,QAAA,6BAA6B,GAA7B,6BAA6B,CAezC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api/userGroup/common.ts"],"names":[],"mappings":";;;AAAA,sDAA8G;AAE9G,yCAA2D;AAC3D,kFAA8E;AAGvE,MAAM,mBAAmB,GAAG,GAAqB,EAAE,CACxD,4BAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,qCAAiB,CAAC,SAAS,CAAqB,CAAA;AAD9E,QAAA,mBAAmB,GAAnB,mBAAmB,CAC2D;AAEpF,MAAM,aAAa,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;IACvE,MAAM,aAAa,GAAG,4BAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,wBAAW,CAAC,MAAM,CAAkB,CAAA;IACnG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA;AAJY,QAAA,aAAa,GAAb,aAAa,CAIzB;AAOM,MAAM,6BAA6B,GAAG,KAAK,EAAE,MAGnD,EAAyD,EAAE;IAC1D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEtC,MAAM,UAAU,GAAG,MAAM,IAAA,QAAA,aAAa,EAAC,QAAQ,CAAC,CAAA;IAEhD,MAAM,OAAO,GAAG,IAAA,QAAA,mBAAmB,GAAE,CAAA;IACrC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAE9D,IAAI,SAAS,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,oBAAW,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,EAAE,wBAAe,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAClC,CAAC,CAAA;AAfY,QAAA,6BAA6B,GAA7B,6BAA6B,CAezC;AAKM,MAAM,0BAA0B,GAAG,KAAK,EAAE,MAIhD,EAAuC,EAAE;IACxC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC/C,IAAI,KAAK,EAAE,kBAAkB,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAEzD,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;IAClG,MAAM,YAAY,GAAG,MAAM,IAAA,QAAA,mBAAmB,GAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,OAAO;QACL,GAAG,KAAK;QACR,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CACzD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC3D;KACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,0BAA0B,GAA1B,0BAA0B,CAiBtC"}
@@ -13,8 +13,9 @@ exports.UserGroupCreate = {
13
13
  const { surveyId } = utils_1.Requests.getParams(req);
14
14
  const item = req.body;
15
15
  const surveyUuid = await (0, common_1.getSurveyUuid)(surveyId);
16
+ const props = await (0, common_1.sanitizeReadableGroupUuids)({ surveyUuid, props: item?.props });
16
17
  const service = (0, common_1.getUserGroupService)();
17
- const userGroupInserted = await service.insert({ surveyUuid, item });
18
+ const userGroupInserted = await service.insert({ surveyUuid, item: { ...item, props } });
18
19
  res.json(userGroupInserted);
19
20
  }
20
21
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/api/userGroup/create.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AAEtC,0CAAyC;AACzC,8CAAiD;AACjD,qCAA4F;AAE5F,MAAM,EAAE,gCAAgC,EAAE,GAAG,8BAAiB,CAAA;AAEjD,QAAA,eAAe,GAAuB;IACjD,IAAI,EAAE,CAAC,OAAgB,EAAQ,EAAE;QAC/B,OAAO,CAAC,IAAI,CACV,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAC7C,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;gBAErB,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAA;gBAEhD,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEpE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;QAED,OAAO,CAAC,IAAI,CACV,sBAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,EACjE,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;gBAE7B,MAAM,IAAA,sCAA6B,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;gBAE5D,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEhD,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/api/userGroup/create.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AAEtC,0CAAyC;AACzC,8CAAiD;AACjD,qCAAwH;AAExH,MAAM,EAAE,gCAAgC,EAAE,GAAG,8BAAiB,CAAA;AAEjD,QAAA,eAAe,GAAuB;IACjD,IAAI,EAAE,CAAC,OAAgB,EAAQ,EAAE;QAC/B,OAAO,CAAC,IAAI,CACV,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAC7C,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;gBAErB,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAA;gBAChD,MAAM,KAAK,GAAG,MAAM,IAAA,mCAA0B,EAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBAElF,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;gBAExF,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;QAED,OAAO,CAAC,IAAI,CACV,sBAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,EACjE,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;gBAE7B,MAAM,IAAA,sCAA6B,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;gBAE5D,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEhD,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -12,9 +12,10 @@ exports.UserGroupUpdate = {
12
12
  try {
13
13
  const { surveyId, groupUuid } = utils_1.Requests.getParams(req);
14
14
  const { props } = req.body;
15
- await (0, common_1.getUserGroupBelongingToSurvey)({ surveyId, groupUuid });
15
+ const { surveyUuid } = await (0, common_1.getUserGroupBelongingToSurvey)({ surveyId, groupUuid });
16
+ const propsSanitized = await (0, common_1.sanitizeReadableGroupUuids)({ surveyUuid, groupUuid, props });
16
17
  const service = (0, common_1.getUserGroupService)();
17
- const userGroupUpdated = await service.update({ uuid: groupUuid, props });
18
+ const userGroupUpdated = await service.update({ uuid: groupUuid, props: propsSanitized ?? props });
18
19
  res.json(userGroupUpdated);
19
20
  }
20
21
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/api/userGroup/update.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AAEtC,0CAAyC;AACzC,8CAAiD;AACjD,qCAA6E;AAE7E,MAAM,EAAE,gCAAgC,EAAE,GAAG,8BAAiB,CAAA;AAEjD,QAAA,eAAe,GAAuB;IACjD,IAAI,EAAE,CAAC,OAAgB,EAAQ,EAAE;QAC/B,OAAO,CAAC,GAAG,CACT,sBAAW,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,EAC1D,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;gBAE1B,MAAM,IAAA,sCAA6B,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;gBAE5D,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gBAEzE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/api/userGroup/update.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AAEtC,0CAAyC;AACzC,8CAAiD;AACjD,qCAAyG;AAEzG,MAAM,EAAE,gCAAgC,EAAE,GAAG,8BAAiB,CAAA;AAEjD,QAAA,eAAe,GAAuB;IACjD,IAAI,EAAE,CAAC,OAAgB,EAAQ,EAAE;QAC/B,OAAO,CAAC,GAAG,CACT,sBAAW,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,EAC1D,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;gBAE1B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,sCAA6B,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;gBACnF,MAAM,cAAc,GAAG,MAAM,IAAA,mCAA0B,EAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gBAEzF,MAAM,OAAO,GAAG,IAAA,4BAAmB,GAAE,CAAA;gBACrC,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC,CAAA;gBAElG,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { insert } from './insert';
2
2
  import { count, getAll, getByUuid } from './read';
3
- import { update, updateProps } from './update';
3
+ import { removeReadableGroupUuid, update, updateProps } from './update';
4
4
  import { deleteItem } from './delete';
5
5
  import { getManyByUser } from './getUserGroupsByUser';
6
6
  import { addMember, removeMember, getMembers } from './members';
@@ -12,6 +12,7 @@ export declare const UserGroupRepository: {
12
12
  insert: typeof insert;
13
13
  update: typeof update;
14
14
  updateProps: typeof updateProps;
15
+ removeReadableGroupUuid: typeof removeReadableGroupUuid;
15
16
  deleteItem: typeof deleteItem;
16
17
  addMember: typeof addMember;
17
18
  removeMember: typeof removeMember;
@@ -15,6 +15,7 @@ exports.UserGroupRepository = {
15
15
  insert: insert_1.insert,
16
16
  update: update_1.update,
17
17
  updateProps: update_1.updateProps,
18
+ removeReadableGroupUuid: update_1.removeReadableGroupUuid,
18
19
  deleteItem: delete_1.deleteItem,
19
20
  addMember: members_1.addMember,
20
21
  removeMember: members_1.removeMember,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/userGroup/index.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,iCAAiD;AACjD,qCAA8C;AAC9C,qCAAqC;AACrC,+DAAqD;AACrD,uCAA+D;AAElD,QAAA,mBAAmB,GAAG;IACjC,KAAK,EAAL,YAAK;IACL,MAAM,EAAN,aAAM;IACN,SAAS,EAAT,gBAAS;IACT,aAAa,EAAb,mCAAa;IACb,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,WAAW,EAAX,oBAAW;IACX,UAAU,EAAV,mBAAU;IACV,SAAS,EAAT,mBAAS;IACT,YAAY,EAAZ,sBAAY;IACZ,UAAU,EAAV,oBAAU;CACX,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repository/userGroup/index.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,iCAAiD;AACjD,qCAAuE;AACvE,qCAAqC;AACrC,+DAAqD;AACrD,uCAA+D;AAElD,QAAA,mBAAmB,GAAG;IACjC,KAAK,EAAL,YAAK;IACL,MAAM,EAAN,aAAM;IACN,SAAS,EAAT,gBAAS;IACT,aAAa,EAAb,mCAAa;IACb,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,WAAW,EAAX,oBAAW;IACX,uBAAuB,EAAvB,gCAAuB;IACvB,UAAU,EAAV,mBAAU;IACV,SAAS,EAAT,mBAAS;IACT,YAAY,EAAZ,sBAAY;IACZ,UAAU,EAAV,oBAAU;CACX,CAAA"}
@@ -8,3 +8,7 @@ export declare const updateProps: (params: {
8
8
  uuid: string;
9
9
  props: Partial<UserGroup['props']>;
10
10
  }, client?: BaseProtocol) => Promise<UserGroup>;
11
+ export declare const removeReadableGroupUuid: (params: {
12
+ surveyUuid: string;
13
+ groupUuid: string;
14
+ }, client?: BaseProtocol) => Promise<null>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateProps = exports.update = void 0;
3
+ exports.removeReadableGroupUuid = exports.updateProps = exports.update = void 0;
4
4
  const db_1 = require("../../db");
5
5
  const sql_1 = require("../../db/sql");
6
6
  const dateModifiedNow = "(now() AT TIME ZONE 'UTC')";
@@ -30,4 +30,20 @@ const updateProps = (params, client = db_1.DB) => {
30
30
  return client.one(sql, [props, uuid], (row) => db_1.DBs.transformCallback({ row }));
31
31
  };
32
32
  exports.updateProps = updateProps;
33
+ const removeReadableGroupUuid = (params, client = db_1.DB) => {
34
+ const { surveyUuid, groupUuid } = params;
35
+ const table = new db_1.TableUserGroup();
36
+ const readableGroupUuidsPath = `${table.props} -> 'readableGroupUuids'`;
37
+ const sql = new sql_1.SqlUpdateBuilder()
38
+ .update(table)
39
+ .set(table.props, `jsonb_set(${table.props}, '{readableGroupUuids}', COALESCE(
40
+ (SELECT jsonb_agg(item) FROM jsonb_array_elements(${readableGroupUuidsPath}) AS item WHERE item <> to_jsonb($1::text)),
41
+ '[]'::jsonb
42
+ ))`)
43
+ .set(table.dateModified, dateModifiedNow)
44
+ .where(`${table.surveyUuid} = $2 AND jsonb_typeof(${readableGroupUuidsPath}) = 'array' AND ${readableGroupUuidsPath} ? $1`)
45
+ .build();
46
+ return client.none(sql, [groupUuid, surveyUuid]);
47
+ };
48
+ exports.removeReadableGroupUuid = removeReadableGroupUuid;
33
49
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/repository/userGroup/update.ts"],"names":[],"mappings":";;;AACA,iCAAgE;AAChE,sCAA+C;AAE/C,MAAM,eAAe,GAAG,4BAA4B,CAAA;AAG7C,MAAM,MAAM,GAAG,CACpB,MAAmD,EACnD,MAAM,GAAiB,OAAE,EACL,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,mBAAc,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,sBAAgB,EAAE;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;SAC7B,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC;SACxC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC;SAC3B,SAAS,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;SAClC,KAAK,EAAE,CAAA;IAEV,OAAO,MAAM,CAAC,GAAG,CAAY,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAhBY,QAAA,MAAM,GAAN,MAAM,CAgBlB;AAGM,MAAM,WAAW,GAAG,CACzB,MAA4D,EAC5D,MAAM,GAAiB,OAAE,EACL,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,mBAAc,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,sBAAgB,EAAE;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,eAAe,CAAC;SAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC;SACxC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC;SAC3B,SAAS,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;SAClC,KAAK,EAAE,CAAA;IAEV,OAAO,MAAM,CAAC,GAAG,CAAY,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAhBY,QAAA,WAAW,GAAX,WAAW,CAgBvB"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/repository/userGroup/update.ts"],"names":[],"mappings":";;;AACA,iCAAgE;AAChE,sCAA+C;AAE/C,MAAM,eAAe,GAAG,4BAA4B,CAAA;AAG7C,MAAM,MAAM,GAAG,CACpB,MAAmD,EACnD,MAAM,GAAiB,OAAE,EACL,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,mBAAc,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,sBAAgB,EAAE;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;SAC7B,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC;SACxC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC;SAC3B,SAAS,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;SAClC,KAAK,EAAE,CAAA;IAEV,OAAO,MAAM,CAAC,GAAG,CAAY,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAhBY,QAAA,MAAM,GAAN,MAAM,CAgBlB;AAGM,MAAM,WAAW,GAAG,CACzB,MAA4D,EAC5D,MAAM,GAAiB,OAAE,EACL,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,mBAAc,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,sBAAgB,EAAE;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,eAAe,CAAC;SAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC;SACxC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC;SAC3B,SAAS,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;SAClC,KAAK,EAAE,CAAA;IAEV,OAAO,MAAM,CAAC,GAAG,CAAY,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAhBY,QAAA,WAAW,GAAX,WAAW,CAgBvB;AAGM,MAAM,uBAAuB,GAAG,CACrC,MAAiD,EACjD,MAAM,GAAiB,OAAE,EACV,EAAE;IACjB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IACxC,MAAM,KAAK,GAAG,IAAI,mBAAc,EAAE,CAAA;IAClC,MAAM,sBAAsB,GAAG,GAAG,KAAK,CAAC,KAAK,0BAA0B,CAAA;IAEvE,MAAM,GAAG,GAAG,IAAI,sBAAgB,EAAE;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,GAAG,CACF,KAAK,CAAC,KAAK,EACX,aAAa,KAAK,CAAC,KAAK;4DAC8B,sBAAsB;;SAEzE,CACJ;SACA,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC;SACxC,KAAK,CACJ,GAAG,KAAK,CAAC,UAAU,0BAA0B,sBAAsB,mBAAmB,sBAAsB,OAAO,CACpH;SACA,KAAK,EAAE,CAAA;IAEV,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAxBY,QAAA,uBAAuB,GAAvB,uBAAuB,CAwBnC"}
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UserGroupServiceServer = void 0;
4
+ const db_1 = require("../../db");
4
5
  const userGroup_1 = require("../../repository/userGroup");
5
- const { count, getAll, getByUuid, getManyByUser, insert, update, updateProps, deleteItem, addMember, removeMember, getMembers, } = userGroup_1.UserGroupRepository;
6
+ const { count, getAll, getByUuid, getManyByUser, insert, update, updateProps, removeReadableGroupUuid, deleteItem: deleteItemRepository, addMember, removeMember, getMembers, } = userGroup_1.UserGroupRepository;
7
+ const deleteItem = (params, client = db_1.DB) => client.tx(async (t) => {
8
+ const deleted = await deleteItemRepository(params, t);
9
+ if (deleted?.surveyUuid) {
10
+ await removeReadableGroupUuid({ surveyUuid: deleted.surveyUuid, groupUuid: params.uuid }, t);
11
+ }
12
+ return deleted;
13
+ });
6
14
  exports.UserGroupServiceServer = {
7
15
  count,
8
16
  getAll,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/userGroup/index.ts"],"names":[],"mappings":";;;AAEA,0DAAiF;AAEjF,MAAM,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,GACX,GAAG,+BAAmB,CAAA;AAgBV,QAAA,sBAAsB,GAAqB;IACtD,KAAK;IACL,MAAM;IACN,SAAS;IACT,aAAa;IACb,MAAM;IACN,MAAM;IACN,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,UAAU;CACX,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/userGroup/index.ts"],"names":[],"mappings":";;;AACA,iCAA2C;AAC3C,0DAAiF;AAEjF,MAAM,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,WAAW,EACX,uBAAuB,EACvB,UAAU,EAAE,oBAAoB,EAChC,SAAS,EACT,YAAY,EACZ,UAAU,GACX,GAAG,+BAAmB,CAAA;AAGvB,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,MAAM,GAAiB,OAAE,EAA6B,EAAE,CACpG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;IACpB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrD,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,MAAM,uBAAuB,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;IAC9F,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA;AAgBS,QAAA,sBAAsB,GAAqB;IACtD,KAAK;IACL,MAAM;IACN,SAAS;IACT,aAAa;IACb,MAAM;IACN,MAAM;IACN,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,UAAU;CACX,CAAA"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "OpenForis",
5
5
  "email": "openforis.arena@gmail.com"
6
6
  },
7
- "version": "2.7.2",
7
+ "version": "2.8.1",
8
8
  "description": "",
9
9
  "main": "dist/index.js",
10
10
  "types": "dist/index.d.ts",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@aws-sdk/client-s3": "^3.1156.0",
49
49
  "@godaddy/terminus": "^4.12.1",
50
- "@openforis/arena-core": "^2.11.1",
50
+ "@openforis/arena-core": "^2.12.0",
51
51
  "bcryptjs": "^3.0.3",
52
52
  "compression": "^1.8.2",
53
53
  "cookie-parser": "^1.4.7",