@glissandoo/lib 1.104.3 → 1.104.5

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.
@@ -49,6 +49,11 @@ export declare namespace GroupFbFunctionsTypes {
49
49
  updateRelatedFutureEvents: boolean;
50
50
  }
51
51
  type EditTemplateResult = GroupTemplateData;
52
+ interface RemoveTemplateParams {
53
+ groupId: string;
54
+ templateId: string;
55
+ }
56
+ type RemoveTemplateResult = void;
52
57
  interface RemoveParams {
53
58
  groupId: string;
54
59
  }
@@ -1,10 +1,12 @@
1
1
  import { InstrumentId } from '../helpers/instruments';
2
+ import { AdminPermissions } from '../models/Group/types';
2
3
  export declare namespace GroupPlayerFbFunctionsTypes {
3
- interface SwitchAdminParams {
4
+ interface SetPermissionsParams {
4
5
  userId: string;
5
6
  groupId: string;
7
+ permissions: AdminPermissions[];
6
8
  }
7
- type SwitchAdminResult = void;
9
+ type SetPermissionsResult = void;
8
10
  interface AddParams {
9
11
  userId: string;
10
12
  groupId: string;
@@ -68,6 +68,7 @@ export declare enum FbFunctionName {
68
68
  GroupEdit = "group-edit",
69
69
  GroupEditInstruments = "group-editInstruments",
70
70
  GroupEditTemplate = "group-editTemplate",
71
+ GroupRemoveTemplate = "group-removeTemplate",
71
72
  GroupGetById = "group-getById",
72
73
  GroupGetByInvitationLink = "group-getByInvitationLink",
73
74
  GroupOnboardingMessages = "group-onboardingMessages",
@@ -79,7 +80,7 @@ export declare enum FbFunctionName {
79
80
  GroupPlayerLeave = "groupPlayer-leave",
80
81
  GroupPlayerOnUpdate = "groupPlayer-onUpdate",
81
82
  GroupPlayerRemove = "groupPlayer-remove",
82
- GroupPlayerSwitchAdmin = "groupPlayer-switchAdmin",
83
+ GroupPlayerSetPermissions = "groupPlayer-setPermissions",
83
84
  GroupPlayerUpdateInstruments = "groupPlayer-updateInstruments",
84
85
  GroupPublish = "group-publish",
85
86
  GroupRemove = "group-remove",
@@ -72,6 +72,7 @@ var FbFunctionName;
72
72
  FbFunctionName["GroupEdit"] = "group-edit";
73
73
  FbFunctionName["GroupEditInstruments"] = "group-editInstruments";
74
74
  FbFunctionName["GroupEditTemplate"] = "group-editTemplate";
75
+ FbFunctionName["GroupRemoveTemplate"] = "group-removeTemplate";
75
76
  FbFunctionName["GroupGetById"] = "group-getById";
76
77
  FbFunctionName["GroupGetByInvitationLink"] = "group-getByInvitationLink";
77
78
  FbFunctionName["GroupOnboardingMessages"] = "group-onboardingMessages";
@@ -83,7 +84,7 @@ var FbFunctionName;
83
84
  FbFunctionName["GroupPlayerLeave"] = "groupPlayer-leave";
84
85
  FbFunctionName["GroupPlayerOnUpdate"] = "groupPlayer-onUpdate";
85
86
  FbFunctionName["GroupPlayerRemove"] = "groupPlayer-remove";
86
- FbFunctionName["GroupPlayerSwitchAdmin"] = "groupPlayer-switchAdmin";
87
+ FbFunctionName["GroupPlayerSetPermissions"] = "groupPlayer-setPermissions";
87
88
  FbFunctionName["GroupPlayerUpdateInstruments"] = "groupPlayer-updateInstruments";
88
89
  FbFunctionName["GroupPublish"] = "group-publish";
89
90
  FbFunctionName["GroupRemove"] = "group-remove";
@@ -79,6 +79,7 @@ const regionByFunctions = {
79
79
  [index_1.FbFunctionName.GroupEdit]: GCloudRegions.EuropeWest6,
80
80
  [index_1.FbFunctionName.GroupEditInstruments]: GCloudRegions.EuropeWest6,
81
81
  [index_1.FbFunctionName.GroupEditTemplate]: GCloudRegions.EuropeWest6,
82
+ [index_1.FbFunctionName.GroupRemoveTemplate]: GCloudRegions.UsCentral1,
82
83
  [index_1.FbFunctionName.GroupGetById]: GCloudRegions.EuropeWest6,
83
84
  [index_1.FbFunctionName.GroupGetByInvitationLink]: GCloudRegions.EuropeWest6,
84
85
  [index_1.FbFunctionName.GroupOnboardingMessages]: GCloudRegions.EuropeWest6,
@@ -90,7 +91,7 @@ const regionByFunctions = {
90
91
  [index_1.FbFunctionName.GroupPlayerLeave]: GCloudRegions.UsCentral1,
91
92
  [index_1.FbFunctionName.GroupPlayerOnUpdate]: GCloudRegions.UsCentral1,
92
93
  [index_1.FbFunctionName.GroupPlayerRemove]: GCloudRegions.UsCentral1,
93
- [index_1.FbFunctionName.GroupPlayerSwitchAdmin]: GCloudRegions.UsCentral1,
94
+ [index_1.FbFunctionName.GroupPlayerSetPermissions]: GCloudRegions.EuropeWest6,
94
95
  [index_1.FbFunctionName.GroupPlayerUpdateInstruments]: GCloudRegions.UsCentral1,
95
96
  [index_1.FbFunctionName.GroupPublish]: GCloudRegions.EuropeWest6,
96
97
  [index_1.FbFunctionName.GroupRemove]: GCloudRegions.UsCentral1,
@@ -7,6 +7,7 @@ export declare enum HttpsErrorMessages {
7
7
  InvalidGroupPlayer = "error.group.noPlayer",
8
8
  InvalidGroupPartnership = "error.group.partnership",
9
9
  InvalidAdminGroup = "error.group.noAdmin",
10
+ InvalidPermissionsGroup = "error.group.noPermissions",
10
11
  InvalidAdminAction = "error.federation.admin",
11
12
  InvalidLinkInvitation = "groupPlayer.join.linkNoValid",
12
13
  InvalidJoinPlayer = "groupPlayer.join.isPlayer",
package/helpers/errors.js CHANGED
@@ -8,6 +8,7 @@ var HttpsErrorMessages;
8
8
  HttpsErrorMessages["InvalidGroupPlayer"] = "error.group.noPlayer";
9
9
  HttpsErrorMessages["InvalidGroupPartnership"] = "error.group.partnership";
10
10
  HttpsErrorMessages["InvalidAdminGroup"] = "error.group.noAdmin";
11
+ HttpsErrorMessages["InvalidPermissionsGroup"] = "error.group.noPermissions";
11
12
  HttpsErrorMessages["InvalidAdminAction"] = "error.federation.admin";
12
13
  HttpsErrorMessages["InvalidLinkInvitation"] = "groupPlayer.join.linkNoValid";
13
14
  HttpsErrorMessages["InvalidJoinPlayer"] = "groupPlayer.join.isPlayer";
@@ -75,12 +75,18 @@ class Evento extends promoter_1.default {
75
75
  return this.data.activeInvitationLink || false;
76
76
  }
77
77
  get invitationLink() {
78
- return `https://glissandoo.com/joinevent/${this.id}`;
78
+ const link = `https://glissandoo.com/joinevent/${this.id}`;
79
+ if (lang_1.LanguagesTypes.ES === this.lang) {
80
+ return link;
81
+ }
82
+ return `${link}?lang=${this.lang}`;
79
83
  }
80
84
  get shortDynamicLink() {
81
- return (`https://glissandoo.com/event/${this.id}` ||
82
- this.data.shortDynamicLink ||
83
- `https://app.glissandoo.com/group/${this.promoterInfo.username}/events/${this.id}`);
85
+ const link = `https://glissandoo.com/event/${this.id}`;
86
+ if (lang_1.LanguagesTypes.ES === this.lang) {
87
+ return link;
88
+ }
89
+ return `${link}?lang=${this.lang}`;
84
90
  }
85
91
  get deletedAt() {
86
92
  return this.data.deletedAt;
@@ -14,6 +14,7 @@ export default class GroupPlayer extends UserExtended<GroupPlayerData> {
14
14
  get instrumentsLastUpdatedBy(): string | null;
15
15
  get role(): GroupPlayerRole;
16
16
  get isAdmin(): boolean;
17
+ get permissions(): import("../types").AdminPermissions[];
17
18
  get joinedAt(): FirebaseFirestore.Timestamp;
18
19
  get leavedAt(): FirebaseFirestore.Timestamp | null;
19
20
  get leavedBy(): string | null;
@@ -38,6 +38,9 @@ class GroupPlayer extends extended_1.default {
38
38
  get isAdmin() {
39
39
  return this.role === types_1.GroupPlayerRole.Admin;
40
40
  }
41
+ get permissions() {
42
+ return this.data.permissions || [];
43
+ }
41
44
  get joinedAt() {
42
45
  return this.data.joinedAt;
43
46
  }
@@ -2,6 +2,7 @@ import { Timestamp } from '@google-cloud/firestore';
2
2
  import { InstrumentId } from '../../../helpers/instruments';
3
3
  import { Descendant } from '../../../helpers/slate';
4
4
  import { UserExtendedData } from '../../User/types';
5
+ import { AdminPermissions } from '../types';
5
6
  export declare enum GroupPlayerRole {
6
7
  Admin = "admin",
7
8
  Member = "member",
@@ -15,6 +16,7 @@ export interface GroupPlayerData extends UserExtendedData {
15
16
  instruments: InstrumentId[];
16
17
  instrumentsLastUpdatedBy: string;
17
18
  role: GroupPlayerRole;
19
+ permissions: AdminPermissions[];
18
20
  joinedAt: Timestamp;
19
21
  leavedAt: Timestamp | null;
20
22
  leavedBy: string | null;
@@ -4,7 +4,7 @@ import { LanguagesTypes } from '../../lang';
4
4
  import { EventPlayerStatus } from '../Evento/Player/types';
5
5
  import { DocumentModel } from '../Model';
6
6
  import GroupBasic from './basic';
7
- import { CustomGroupInstrument, GroupConfigShowAttendanceToMembers, GroupData, GroupStatus, SocialNetwork } from './types';
7
+ import { AdminPermissions, CustomGroupInstrument, GroupConfigShowAttendanceToMembers, GroupData, GroupStatus, SocialNetwork } from './types';
8
8
  export default class Group extends GroupBasic<GroupData> {
9
9
  constructor(doc: DocumentModel, lang?: LanguagesTypes);
10
10
  get owner(): DocumentReference;
@@ -19,6 +19,9 @@ export default class Group extends GroupBasic<GroupData> {
19
19
  get invitationEmails(): string[];
20
20
  get shortDynamicLink(): string;
21
21
  get admins(): string[];
22
+ get adminPermissions(): Record<string, AdminPermissions[]>;
23
+ permissionsByAdmin(userId: string): AdminPermissions[];
24
+ adminsByPermissions(permission: AdminPermissions): string[];
22
25
  get createdAt(): FirebaseFirestore.Timestamp;
23
26
  get deletedAt(): FirebaseFirestore.Timestamp | null;
24
27
  get deletedBy(): string | null;
@@ -51,7 +51,11 @@ class Group extends basic_1.default {
51
51
  return this.data.activeInvitationLink || false;
52
52
  }
53
53
  get invitationLink() {
54
- return `https://glissandoo.com/joingroup/${this.id}`;
54
+ const link = `https://glissandoo.com/joingroup/${this.id}`;
55
+ if (lang_1.LanguagesTypes.ES === this.lang) {
56
+ return link;
57
+ }
58
+ return `${link}?lang=${this.lang}`;
55
59
  }
56
60
  get invitationEmails() {
57
61
  return this.data.invitationEmails || [];
@@ -62,6 +66,18 @@ class Group extends basic_1.default {
62
66
  get admins() {
63
67
  return this.data.administrators || [];
64
68
  }
69
+ get adminPermissions() {
70
+ return this.data.adminPermissions || {};
71
+ }
72
+ permissionsByAdmin(userId) {
73
+ return this.adminPermissions[userId] || [];
74
+ }
75
+ adminsByPermissions(permission) {
76
+ return this.admins.filter((adminId) => {
77
+ const permissions = this.permissionsByAdmin(adminId);
78
+ return permissions.includes(permission);
79
+ });
80
+ }
65
81
  get createdAt() {
66
82
  return this.data.createdAt;
67
83
  }
@@ -12,6 +12,16 @@ export interface GroupOnboardingMessage {
12
12
  via: string;
13
13
  to: string[];
14
14
  }
15
+ export declare enum AdminPermissions {
16
+ Owner = "owner",
17
+ Events = "events",
18
+ Rollcall = "rollcall",
19
+ Members = "members",
20
+ Repertoire = "repertoire",
21
+ Communications = "communications",
22
+ Offers = "offers",
23
+ Billing = "billing"
24
+ }
15
25
  export declare enum GroupConfigKey {
16
26
  IncludesMembersToEventsWhenJoined = "includesMembersToEventsWhenJoined",
17
27
  AllowEditInstruments = "allowEditInstruments",
@@ -152,6 +162,7 @@ export interface GroupData extends GroupBasicData {
152
162
  players: Record<string, PlayerBasicData>;
153
163
  templates: Record<string, GroupTemplateData>;
154
164
  administrators: string[];
165
+ adminPermissions: Record<string, AdminPermissions[]>;
155
166
  addresses: GroupAddressData[];
156
167
  activeInvitationLink: boolean;
157
168
  invitationEmails: string[];
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = void 0;
3
+ exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = exports.AdminPermissions = void 0;
4
+ var AdminPermissions;
5
+ (function (AdminPermissions) {
6
+ AdminPermissions["Owner"] = "owner";
7
+ AdminPermissions["Events"] = "events";
8
+ AdminPermissions["Rollcall"] = "rollcall";
9
+ AdminPermissions["Members"] = "members";
10
+ AdminPermissions["Repertoire"] = "repertoire";
11
+ AdminPermissions["Communications"] = "communications";
12
+ AdminPermissions["Offers"] = "offers";
13
+ AdminPermissions["Billing"] = "billing";
14
+ })(AdminPermissions = exports.AdminPermissions || (exports.AdminPermissions = {}));
4
15
  var GroupConfigKey;
5
16
  (function (GroupConfigKey) {
6
17
  GroupConfigKey["IncludesMembersToEventsWhenJoined"] = "includesMembersToEventsWhenJoined";
@@ -7,6 +7,7 @@ export default class UserGroup extends GroupBasic<UserGroupData> {
7
7
  constructor(doc: DocumentModel, lang?: LanguagesTypes);
8
8
  get groupId(): string;
9
9
  get mainInstrument(): import("../../../helpers/instruments").InstrumentId;
10
+ get permissions(): import("../../Group/types").AdminPermissions[];
10
11
  get instrument(): string;
11
12
  get instruments(): import("../../../helpers/instruments").InstrumentId[];
12
13
  get role(): GroupPlayerRole;
@@ -17,6 +17,9 @@ class UserGroup extends basic_1.default {
17
17
  get mainInstrument() {
18
18
  return this.data.mainInstrument;
19
19
  }
20
+ get permissions() {
21
+ return this.data.permissions || [];
22
+ }
20
23
  get instrument() {
21
24
  const translation = (0, lang_1.getTranslation)(`instruments.${this.mainInstrument}`, this.lang);
22
25
  return translation || this.mainInstrument;
@@ -1,11 +1,12 @@
1
1
  import { Timestamp } from '@google-cloud/firestore';
2
2
  import { InstrumentId } from '../../../helpers/instruments';
3
3
  import { GroupPlayerRole } from '../../Group/Player/types';
4
- import { GroupBasicData } from '../../Group/types';
4
+ import { AdminPermissions, GroupBasicData } from '../../Group/types';
5
5
  export interface UserGroupData extends GroupBasicData {
6
6
  mainInstrument: InstrumentId;
7
7
  instruments: InstrumentId[];
8
8
  role: GroupPlayerRole;
9
9
  joinedAt: Timestamp;
10
+ permissions: AdminPermissions[];
10
11
  order: number;
11
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissandoo/lib",
3
- "version": "1.104.3",
3
+ "version": "1.104.5",
4
4
  "description": "Glissandoo library js",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",