@stamhoofd/models 2.1.1 → 2.2.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.
- package/LICENSE +661 -0
- package/dist/src/factories/GroupFactory.d.ts.map +1 -1
- package/dist/src/factories/GroupFactory.js +1 -0
- package/dist/src/factories/GroupFactory.js.map +1 -1
- package/dist/src/factories/MemberFactory.d.ts.map +1 -1
- package/dist/src/factories/MemberFactory.js +0 -2
- package/dist/src/factories/MemberFactory.js.map +1 -1
- package/dist/src/factories/RegistrationFactory.d.ts.map +1 -1
- package/dist/src/factories/RegistrationFactory.js +2 -0
- package/dist/src/factories/RegistrationFactory.js.map +1 -1
- package/dist/src/factories/UserFactory.d.ts +1 -0
- package/dist/src/factories/UserFactory.d.ts.map +1 -1
- package/dist/src/factories/UserFactory.js +14 -4
- package/dist/src/factories/UserFactory.js.map +1 -1
- package/dist/src/helpers/GroupBuilder.d.ts.map +1 -1
- package/dist/src/helpers/GroupBuilder.js +25 -2
- package/dist/src/helpers/GroupBuilder.js.map +1 -1
- package/dist/src/migrations/1605262046-import-postcodes-nl.js +1 -1
- package/dist/src/migrations/1605262046-import-postcodes-nl.js.map +1 -1
- package/dist/src/migrations/1714985451-user-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1714985452-email-verification-code-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1714985453-user-organization-permissions.sql +2 -0
- package/dist/src/migrations/1714985454-user-organization-permissions.sql +2 -0
- package/dist/src/migrations/1715079362-platform.sql +6 -0
- package/dist/src/migrations/1715181649-registrations-organization-id.sql +2 -0
- package/dist/src/migrations/1715181650-registrations-organization-id-fill.sql +1 -0
- package/dist/src/migrations/1715181651-registrations-organization-id-drop-null.sql +2 -0
- package/dist/src/migrations/1716117067-members-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1719567581-registration-periods.sql +13 -0
- package/dist/src/migrations/1719567582-organization-registration-periods.sql +13 -0
- package/dist/src/migrations/1719567881-organization-periodId.sql +2 -0
- package/dist/src/migrations/1719567882-groups-periodId.sql +2 -0
- package/dist/src/migrations/1719567883-platform-periodId.sql +2 -0
- package/dist/src/migrations/1719568079-default-period.sql +2 -0
- package/dist/src/migrations/1719568080-set-default-period-platform.sql +1 -0
- package/dist/src/migrations/1719568081-set-default-period-organizations.sql +1 -0
- package/dist/src/migrations/1719568082-set-default-period-groups.sql +1 -0
- package/dist/src/migrations/1719580828-registrations-periodId.sql +2 -0
- package/dist/src/migrations/1719580829-set-default-period-registrations.sql +1 -0
- package/dist/src/migrations/1719931362-groups-default-age-group-id.sql +2 -0
- package/dist/src/migrations/1720080975-convert-charset.sql +87 -0
- package/dist/src/migrations/1720080976-responsibilities.sql +14 -0
- package/dist/src/migrations/1720088136-member-membership-types.sql +23 -0
- package/dist/src/migrations/1720088137-member-membership-types-expire-date.sql +2 -0
- package/dist/src/migrations/1720444931-organization-active.sql +2 -0
- package/dist/src/models/BalanceItem.d.ts +1 -1
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +15 -5
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/Document.d.ts.map +1 -1
- package/dist/src/models/Document.js +6 -2
- package/dist/src/models/Document.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts +3 -3
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +23 -24
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts +6 -7
- package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
- package/dist/src/models/EmailVerificationCode.js +37 -30
- package/dist/src/models/EmailVerificationCode.js.map +1 -1
- package/dist/src/models/Group.d.ts +6 -4
- package/dist/src/models/Group.d.ts.map +1 -1
- package/dist/src/models/Group.js +28 -9
- package/dist/src/models/Group.js.map +1 -1
- package/dist/src/models/Member.d.ts +10 -9
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +99 -15
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +19 -0
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -0
- package/dist/src/models/MemberPlatformMembership.js +123 -0
- package/dist/src/models/MemberPlatformMembership.js.map +1 -0
- package/dist/src/models/Organization.d.ts +8 -6
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js +38 -59
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts +3 -0
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.js +49 -0
- package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
- package/dist/src/models/PasswordToken.d.ts +1 -1
- package/dist/src/models/PasswordToken.d.ts.map +1 -1
- package/dist/src/models/PasswordToken.js +9 -10
- package/dist/src/models/PasswordToken.js.map +1 -1
- package/dist/src/models/Payment.d.ts +5 -3
- package/dist/src/models/Payment.d.ts.map +1 -1
- package/dist/src/models/Payment.js +13 -5
- package/dist/src/models/Payment.js.map +1 -1
- package/dist/src/models/Platform.d.ts +1 -0
- package/dist/src/models/Platform.d.ts.map +1 -1
- package/dist/src/models/Platform.js +3 -0
- package/dist/src/models/Platform.js.map +1 -1
- package/dist/src/models/Registration.d.ts +7 -2
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +11 -0
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/STInvoice.d.ts.map +1 -1
- package/dist/src/models/STInvoice.js +1 -0
- package/dist/src/models/STInvoice.js.map +1 -1
- package/dist/src/models/Token.d.ts.map +1 -1
- package/dist/src/models/Token.js +1 -0
- package/dist/src/models/Token.js.map +1 -1
- package/dist/src/models/User.d.ts +20 -11
- package/dist/src/models/User.d.ts.map +1 -1
- package/dist/src/models/User.js +84 -26
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/models/index.d.ts +5 -0
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +5 -0
- package/dist/src/models/index.js.map +1 -1
- package/package.json +3 -2
- package/src/migrations/1719931362-groups-default-age-group-id.sql +2 -0
- package/src/migrations/1720080975-convert-charset.sql +87 -0
- package/src/migrations/1720080976-responsibilities.sql +14 -0
- package/src/migrations/1720088136-member-membership-types.sql +23 -0
- package/src/migrations/1720088137-member-membership-types-expire-date.sql +2 -0
- package/src/migrations/1720444931-organization-active.sql +2 -0
- package/src/models/Group.ts +3 -0
- package/src/models/Member.ts +86 -2
- package/src/models/MemberPlatformMembership.ts +122 -0
- package/src/models/Organization.ts +4 -61
- package/src/models/OrganizationRegistrationPeriod.ts +60 -0
- package/src/models/Payment.ts +4 -4
- package/src/models/Platform.ts +4 -0
- package/src/models/Registration.ts +6 -0
- package/src/models/STInvoice.ts +2 -0
- package/src/models/index.ts +1 -0
|
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Member = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const simple_database_1 = require("@simonbackx/simple-database");
|
|
6
|
+
const sql_1 = require("@stamhoofd/sql");
|
|
6
7
|
const structures_1 = require("@stamhoofd/structures");
|
|
7
8
|
const utility_1 = require("@stamhoofd/utility");
|
|
8
9
|
const uuid_1 = require("uuid");
|
|
9
10
|
const _1 = require("./");
|
|
11
|
+
const queues_1 = require("@stamhoofd/queues");
|
|
10
12
|
class Member extends simple_database_1.Model {
|
|
11
13
|
constructor() {
|
|
12
14
|
super(...arguments);
|
|
15
|
+
this.organizationId = null;
|
|
13
16
|
/**
|
|
14
17
|
* Not yet paid balance
|
|
15
18
|
*/
|
|
@@ -20,7 +23,7 @@ class Member extends simple_database_1.Model {
|
|
|
20
23
|
*/
|
|
21
24
|
static async getWithRegistrations(id) {
|
|
22
25
|
var _a;
|
|
23
|
-
return (_a = (await this.
|
|
26
|
+
return (_a = (await this.getBlobByIds(id))[0]) !== null && _a !== void 0 ? _a : null;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Update the outstanding balance of multiple members in one go (or all members)
|
|
@@ -146,7 +149,7 @@ class Member extends simple_database_1.Model {
|
|
|
146
149
|
/**
|
|
147
150
|
* Fetch all members with their corresponding (valid) registrations, users
|
|
148
151
|
*/
|
|
149
|
-
static async
|
|
152
|
+
static async getBlobByIds(...ids) {
|
|
150
153
|
if (ids.length == 0) {
|
|
151
154
|
return [];
|
|
152
155
|
}
|
|
@@ -157,12 +160,17 @@ class Member extends simple_database_1.Model {
|
|
|
157
160
|
query += `where \`${Member.table}\`.\`${Member.primary.name}\` IN (?)`;
|
|
158
161
|
const [results] = await simple_database_1.Database.select(query, [ids]);
|
|
159
162
|
const members = [];
|
|
163
|
+
// Load groups
|
|
164
|
+
const groupIds = results.map(r => { var _a; return (_a = r[_1.Registration.table]) === null || _a === void 0 ? void 0 : _a.groupId; }).filter(id => id);
|
|
165
|
+
const groups = await _1.Group.getByIDs(...utility_1.Formatter.uniqueArray(groupIds));
|
|
160
166
|
for (const row of results) {
|
|
161
167
|
const foundMember = Member.fromRow(row[Member.table]);
|
|
162
168
|
if (!foundMember) {
|
|
163
169
|
throw new Error("Expected member in every row");
|
|
164
170
|
}
|
|
165
|
-
const _f = foundMember
|
|
171
|
+
const _f = foundMember
|
|
172
|
+
.setManyRelation(Member.registrations, [])
|
|
173
|
+
.setManyRelation(Member.users, []);
|
|
166
174
|
// Seach if we already got this member?
|
|
167
175
|
const existingMember = members.find(m => m.id == _f.id);
|
|
168
176
|
const member = (existingMember !== null && existingMember !== void 0 ? existingMember : _f);
|
|
@@ -174,7 +182,11 @@ class Member extends simple_database_1.Model {
|
|
|
174
182
|
if (registration) {
|
|
175
183
|
// Check if we already have this registration
|
|
176
184
|
if (!member.registrations.find(r => r.id == registration.id)) {
|
|
177
|
-
|
|
185
|
+
const g = groups.find(g => g.id == registration.groupId);
|
|
186
|
+
if (!g) {
|
|
187
|
+
throw new Error("Group not found");
|
|
188
|
+
}
|
|
189
|
+
member.registrations.push(registration.setRelation(_1.Registration.group, g));
|
|
178
190
|
}
|
|
179
191
|
}
|
|
180
192
|
// Check if we have a user
|
|
@@ -204,35 +216,107 @@ class Member extends simple_database_1.Model {
|
|
|
204
216
|
// Member has no users
|
|
205
217
|
ids.push(id);
|
|
206
218
|
}
|
|
207
|
-
return await this.
|
|
219
|
+
return await this.getBlobByIds(...ids);
|
|
208
220
|
}
|
|
209
221
|
/**
|
|
210
222
|
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
211
223
|
*/
|
|
212
224
|
static async getMembersWithRegistrationForUser(user) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
return
|
|
225
|
+
const query = sql_1.SQL
|
|
226
|
+
.select(sql_1.SQL.column('id'))
|
|
227
|
+
.from(sql_1.SQL.table(Member.table))
|
|
228
|
+
.join(sql_1.SQL.leftJoin(sql_1.SQL.table('_members_users')).where(sql_1.SQL.column('_members_users', 'membersId'), sql_1.SQL.column(Member.table, 'id'))).where(sql_1.SQL.column('_members_users', 'usersId'), user.id);
|
|
229
|
+
const data = await query.fetch();
|
|
230
|
+
return this.getBlobByIds(...data.map((r) => r.members.id));
|
|
219
231
|
}
|
|
220
232
|
getStructureWithRegistrations(forOrganization = null) {
|
|
221
|
-
return structures_1.
|
|
233
|
+
return structures_1.MemberWithRegistrationsBlob.create({
|
|
222
234
|
...this,
|
|
223
235
|
registrations: this.registrations.map(r => r.getStructure()),
|
|
224
236
|
details: this.details,
|
|
225
|
-
users: this.users.map(u => structures_1.User.create({
|
|
237
|
+
users: this.users.map(u => structures_1.User.create({
|
|
238
|
+
...u,
|
|
239
|
+
hasAccount: u.hasAccount()
|
|
240
|
+
})),
|
|
226
241
|
});
|
|
227
242
|
}
|
|
228
243
|
static getRegistrationWithMemberStructure(registration) {
|
|
229
244
|
return structures_1.RegistrationWithMember.create({
|
|
230
245
|
...registration.getStructure(),
|
|
231
|
-
group: registration.group.getStructure(),
|
|
232
246
|
cycle: registration.cycle,
|
|
233
247
|
member: structures_1.Member.create(registration.member),
|
|
234
248
|
});
|
|
235
249
|
}
|
|
250
|
+
async updateMemberships() {
|
|
251
|
+
console.log('Updating memberships for member: ' + this.id);
|
|
252
|
+
return await queues_1.QueueHandler.schedule('updateMemberships-' + this.id, async () => {
|
|
253
|
+
const platform = await _1.Platform.getShared();
|
|
254
|
+
const registrations = this.registrations.filter(r => r.group.periodId == platform.periodId && !r.waitingList && r.registeredAt && !r.deactivatedAt);
|
|
255
|
+
const defaultMemberships = registrations.flatMap(r => {
|
|
256
|
+
if (!r.group.defaultAgeGroupId) {
|
|
257
|
+
return [];
|
|
258
|
+
}
|
|
259
|
+
const defaultAgeGroup = platform.config.defaultAgeGroups.find(g => g.id == r.group.defaultAgeGroupId);
|
|
260
|
+
if (!defaultAgeGroup || !defaultAgeGroup.defaultMembershipTypeId) {
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
const defaultMembership = platform.config.membershipTypes.find(m => m.id == defaultAgeGroup.defaultMembershipTypeId);
|
|
264
|
+
if (!defaultMembership) {
|
|
265
|
+
return [];
|
|
266
|
+
}
|
|
267
|
+
return [{
|
|
268
|
+
registration: r,
|
|
269
|
+
membership: defaultMembership,
|
|
270
|
+
}];
|
|
271
|
+
});
|
|
272
|
+
// Get active memberships for this member
|
|
273
|
+
const memberships = await _1.MemberPlatformMembership.where({ memberId: this.id, periodId: platform.periodId });
|
|
274
|
+
const now = new Date();
|
|
275
|
+
const activeMemberships = memberships.filter(m => m.startDate <= now && m.endDate >= now);
|
|
276
|
+
if (defaultMemberships.length == 0) {
|
|
277
|
+
// Stop all active memberships
|
|
278
|
+
for (const membership of activeMemberships) {
|
|
279
|
+
if (!membership.invoiceId && !membership.invoiceItemDetailId) {
|
|
280
|
+
console.log('Removing membership because no longer registered member and not yet invoiced for: ' + this.id + ' - membership ' + membership.id);
|
|
281
|
+
await membership.delete();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
console.log('Skipping automatic membership for: ' + this.id, ' - no default memberships found');
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (activeMemberships.length) {
|
|
288
|
+
// Skip automatic additions
|
|
289
|
+
console.log('Skipping automatic membership for: ' + this.id, ' - already has active memberships');
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
// Add the cheapest available membership
|
|
293
|
+
const cheapestMembership = defaultMemberships.sort(({ membership: a, registration: ar }, { membership: b, registration: br }) => {
|
|
294
|
+
const diff = a.getPrice(platform.periodId, now).price - b.getPrice(platform.periodId, now).price;
|
|
295
|
+
if (diff == 0) {
|
|
296
|
+
return utility_1.Sorter.byDateValue(br.createdAt, ar.createdAt);
|
|
297
|
+
}
|
|
298
|
+
return diff;
|
|
299
|
+
})[0];
|
|
300
|
+
if (!cheapestMembership) {
|
|
301
|
+
throw new Error("No membership found");
|
|
302
|
+
}
|
|
303
|
+
const periodConfig = cheapestMembership.membership.periods.get(platform.periodId);
|
|
304
|
+
if (!periodConfig) {
|
|
305
|
+
throw new Error("Period config not found");
|
|
306
|
+
}
|
|
307
|
+
console.log('Creating automatic membership for: ' + this.id + ' - membership type ' + cheapestMembership.membership.id);
|
|
308
|
+
const membership = new _1.MemberPlatformMembership();
|
|
309
|
+
membership.memberId = this.id;
|
|
310
|
+
membership.membershipTypeId = cheapestMembership.membership.id;
|
|
311
|
+
membership.organizationId = cheapestMembership.registration.organizationId;
|
|
312
|
+
membership.periodId = platform.periodId;
|
|
313
|
+
membership.startDate = periodConfig.startDate;
|
|
314
|
+
membership.endDate = periodConfig.endDate;
|
|
315
|
+
membership.expireDate = periodConfig.expireDate;
|
|
316
|
+
await membership.calculatePrice();
|
|
317
|
+
await membership.save();
|
|
318
|
+
});
|
|
319
|
+
}
|
|
236
320
|
}
|
|
237
321
|
exports.Member = Member;
|
|
238
322
|
Member.table = "members";
|
|
@@ -247,7 +331,7 @@ tslib_1.__decorate([
|
|
|
247
331
|
})
|
|
248
332
|
], Member.prototype, "id", void 0);
|
|
249
333
|
tslib_1.__decorate([
|
|
250
|
-
(0, simple_database_1.column)({ type: "string" })
|
|
334
|
+
(0, simple_database_1.column)({ type: "string", nullable: true })
|
|
251
335
|
], Member.prototype, "organizationId", void 0);
|
|
252
336
|
tslib_1.__decorate([
|
|
253
337
|
(0, simple_database_1.column)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Model } from "@simonbackx/simple-database";
|
|
2
|
+
export declare class MemberPlatformMembership extends Model {
|
|
3
|
+
static table: string;
|
|
4
|
+
id: string;
|
|
5
|
+
memberId: string;
|
|
6
|
+
membershipTypeId: string;
|
|
7
|
+
organizationId: string;
|
|
8
|
+
periodId: string;
|
|
9
|
+
startDate: Date;
|
|
10
|
+
endDate: Date;
|
|
11
|
+
expireDate: Date | null;
|
|
12
|
+
invoiceItemDetailId: string | null;
|
|
13
|
+
invoiceId: string | null;
|
|
14
|
+
price: number;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
updatedAt: Date;
|
|
17
|
+
calculatePrice(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MemberPlatformMembership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberPlatformMembership.d.ts","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAO5D,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,MAAM,CAAC,KAAK,SAAiC;IAQ7C,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,KAAK,SAAK;IAYV,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGT,cAAc;CAiDvB"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberPlatformMembership = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const simple_database_1 = require("@simonbackx/simple-database");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const Platform_1 = require("./Platform");
|
|
8
|
+
const structures_1 = require("@stamhoofd/structures");
|
|
9
|
+
const simple_errors_1 = require("@simonbackx/simple-errors");
|
|
10
|
+
const utility_1 = require("@stamhoofd/utility");
|
|
11
|
+
class MemberPlatformMembership extends simple_database_1.Model {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.expireDate = null;
|
|
15
|
+
this.invoiceItemDetailId = null;
|
|
16
|
+
this.invoiceId = null;
|
|
17
|
+
this.price = 0;
|
|
18
|
+
}
|
|
19
|
+
async calculatePrice() {
|
|
20
|
+
var _a;
|
|
21
|
+
if (this.invoiceId || this.invoiceItemDetailId) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const platform = await Platform_1.Platform.getShared();
|
|
25
|
+
const membershipType = platform.config.membershipTypes.find(m => m.id == this.membershipTypeId);
|
|
26
|
+
if (!membershipType) {
|
|
27
|
+
throw new simple_errors_1.SimpleError({
|
|
28
|
+
code: 'invalid_membership_type',
|
|
29
|
+
message: 'Uknown membership type',
|
|
30
|
+
human: 'Deze aansluiting is niet (meer) beschikbaar'
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const periodConfig = membershipType.periods.get(this.periodId);
|
|
34
|
+
if (!periodConfig) {
|
|
35
|
+
throw new simple_errors_1.SimpleError({
|
|
36
|
+
code: 'period_unavailable',
|
|
37
|
+
message: 'Membership not available for this period',
|
|
38
|
+
human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar'
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const priceConfig = periodConfig.getPriceForDate(membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days ? this.startDate : ((_a = this.createdAt) !== null && _a !== void 0 ? _a : new Date()));
|
|
42
|
+
if (membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days) {
|
|
43
|
+
// Make sure time is equal between start and end date
|
|
44
|
+
let startBrussels = utility_1.Formatter.luxon(this.startDate);
|
|
45
|
+
let endBrussels = utility_1.Formatter.luxon(this.endDate);
|
|
46
|
+
startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
|
|
47
|
+
endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
|
|
48
|
+
this.startDate = startBrussels.toJSDate();
|
|
49
|
+
this.endDate = endBrussels.toJSDate();
|
|
50
|
+
this.expireDate = null;
|
|
51
|
+
const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
|
|
52
|
+
this.price = priceConfig.pricePerDay * days + priceConfig.price;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.price = priceConfig.price;
|
|
56
|
+
this.startDate = periodConfig.startDate;
|
|
57
|
+
this.endDate = periodConfig.endDate;
|
|
58
|
+
this.expireDate = periodConfig.expireDate;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.MemberPlatformMembership = MemberPlatformMembership;
|
|
63
|
+
MemberPlatformMembership.table = "member_platform_memberships";
|
|
64
|
+
tslib_1.__decorate([
|
|
65
|
+
(0, simple_database_1.column)({
|
|
66
|
+
primary: true, type: "string", beforeSave(value) {
|
|
67
|
+
return value !== null && value !== void 0 ? value : (0, uuid_1.v4)();
|
|
68
|
+
}
|
|
69
|
+
})
|
|
70
|
+
], MemberPlatformMembership.prototype, "id", void 0);
|
|
71
|
+
tslib_1.__decorate([
|
|
72
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
73
|
+
], MemberPlatformMembership.prototype, "memberId", void 0);
|
|
74
|
+
tslib_1.__decorate([
|
|
75
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
76
|
+
], MemberPlatformMembership.prototype, "membershipTypeId", void 0);
|
|
77
|
+
tslib_1.__decorate([
|
|
78
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
79
|
+
], MemberPlatformMembership.prototype, "organizationId", void 0);
|
|
80
|
+
tslib_1.__decorate([
|
|
81
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
82
|
+
], MemberPlatformMembership.prototype, "periodId", void 0);
|
|
83
|
+
tslib_1.__decorate([
|
|
84
|
+
(0, simple_database_1.column)({ type: "date" })
|
|
85
|
+
], MemberPlatformMembership.prototype, "startDate", void 0);
|
|
86
|
+
tslib_1.__decorate([
|
|
87
|
+
(0, simple_database_1.column)({ type: "date" })
|
|
88
|
+
], MemberPlatformMembership.prototype, "endDate", void 0);
|
|
89
|
+
tslib_1.__decorate([
|
|
90
|
+
(0, simple_database_1.column)({ type: "date", nullable: true })
|
|
91
|
+
], MemberPlatformMembership.prototype, "expireDate", void 0);
|
|
92
|
+
tslib_1.__decorate([
|
|
93
|
+
(0, simple_database_1.column)({ type: "string", nullable: true })
|
|
94
|
+
], MemberPlatformMembership.prototype, "invoiceItemDetailId", void 0);
|
|
95
|
+
tslib_1.__decorate([
|
|
96
|
+
(0, simple_database_1.column)({ type: "string", nullable: true })
|
|
97
|
+
], MemberPlatformMembership.prototype, "invoiceId", void 0);
|
|
98
|
+
tslib_1.__decorate([
|
|
99
|
+
(0, simple_database_1.column)({ type: "integer" })
|
|
100
|
+
], MemberPlatformMembership.prototype, "price", void 0);
|
|
101
|
+
tslib_1.__decorate([
|
|
102
|
+
(0, simple_database_1.column)({
|
|
103
|
+
type: "datetime", beforeSave(old) {
|
|
104
|
+
if (old !== undefined) {
|
|
105
|
+
return old;
|
|
106
|
+
}
|
|
107
|
+
const date = new Date();
|
|
108
|
+
date.setMilliseconds(0);
|
|
109
|
+
return date;
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
], MemberPlatformMembership.prototype, "createdAt", void 0);
|
|
113
|
+
tslib_1.__decorate([
|
|
114
|
+
(0, simple_database_1.column)({
|
|
115
|
+
type: "datetime", beforeSave() {
|
|
116
|
+
const date = new Date();
|
|
117
|
+
date.setMilliseconds(0);
|
|
118
|
+
return date;
|
|
119
|
+
},
|
|
120
|
+
skipUpdate: true
|
|
121
|
+
})
|
|
122
|
+
], MemberPlatformMembership.prototype, "updatedAt", void 0);
|
|
123
|
+
//# sourceMappingURL=MemberPlatformMembership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberPlatformMembership.js","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Model } from "@simonbackx/simple-database";
|
|
|
2
2
|
import { DecodedRequest } from '@simonbackx/simple-endpoints';
|
|
3
3
|
import { I18n } from "@stamhoofd/backend-i18n";
|
|
4
4
|
import { EmailInterfaceRecipient } from "@stamhoofd/email";
|
|
5
|
-
import { Address, EmailTemplateType, Organization as OrganizationStruct,
|
|
5
|
+
import { Address, EmailTemplateType, OrganizationMetaData, OrganizationPrivateMetaData, Organization as OrganizationStruct, PaymentMethod, PaymentProvider, PrivatePaymentConfiguration, Recipient, TransferSettings } from "@stamhoofd/structures";
|
|
6
6
|
import { OrganizationServerMetaData } from '../structures/OrganizationServerMetaData';
|
|
7
7
|
import { Group, StripeAccount } from "./";
|
|
8
8
|
export declare class Organization extends Model {
|
|
@@ -12,6 +12,7 @@ export declare class Organization extends Model {
|
|
|
12
12
|
website: string | null;
|
|
13
13
|
registerDomain: string | null;
|
|
14
14
|
uri: string;
|
|
15
|
+
periodId: string;
|
|
15
16
|
/**
|
|
16
17
|
* Public meta data
|
|
17
18
|
*/
|
|
@@ -28,6 +29,7 @@ export declare class Organization extends Model {
|
|
|
28
29
|
searchIndex: string;
|
|
29
30
|
createdAt: Date;
|
|
30
31
|
updatedAt: Date;
|
|
32
|
+
active: boolean;
|
|
31
33
|
/**
|
|
32
34
|
* Return default locale confiruation
|
|
33
35
|
*/
|
|
@@ -50,16 +52,16 @@ export declare class Organization extends Model {
|
|
|
50
52
|
* Format is 2331c59a-0cbe-4279-871c-ea9d0474cd54.api.stamhoofd.app
|
|
51
53
|
*/
|
|
52
54
|
static fromApiHost(host: string): Promise<Organization>;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Potentially includes a path
|
|
57
|
+
*/
|
|
58
|
+
getHost(i18n?: I18n): string;
|
|
59
|
+
getDefaultHost(i18n?: I18n): string;
|
|
55
60
|
get marketingDomain(): string;
|
|
56
61
|
getApiHost(): string;
|
|
57
62
|
getStructure({ emptyGroups }?: {
|
|
58
63
|
emptyGroups: boolean;
|
|
59
64
|
}): Promise<OrganizationStruct>;
|
|
60
|
-
cleanCategories(groups: {
|
|
61
|
-
id: string;
|
|
62
|
-
}[]): Promise<void>;
|
|
63
65
|
updateDNSRecords(): Promise<void>;
|
|
64
66
|
sendEmailTemplate(data: {
|
|
65
67
|
type: EmailTemplateType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Organization.d.ts","sourceRoot":"","sources":["../../../src/models/Organization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAS,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAA4B,iBAAiB,EAAE,YAAY,IAAI,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Organization.d.ts","sourceRoot":"","sources":["../../../src/models/Organization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAS,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAA4B,iBAAiB,EAAqB,oBAAoB,EAAE,2BAA2B,EAA4G,YAAY,IAAI,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,2BAA2B,EAAE,SAAS,EAA8B,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQva,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAiB,KAAK,EAAsD,aAAa,EAAE,MAAM,IAAI,CAAC;AAE7G,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAK9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKrC,GAAG,EAAE,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IAEH,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;OAEG;IAEH,WAAW,EAAE,2BAA2B,CAAyC;IAEjF;;OAEG;IAEH,UAAU,EAAE,0BAA0B,CAAwC;IAG9E,OAAO,EAAE,OAAO,CAAC;IAOjB,WAAW,EAAE,MAAM,CAAA;IAYnB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,MAAM,UAAQ;IAEd;;OAEG;IACH,IAAI,IAAI,SAEP;IAED;;OAEG;IACH,IAAI,sBAAsB,IAAI,gBAAgB,CAE7C;WAIY,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;WAexD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;WA2C5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAcjF;;;;OAIG;WACU,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAS1F;;;OAGG;WACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB7D;;OAEG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM;IAa5B,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM;IAanC,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,UAAU,IAAI,MAAM;IAQd,YAAY,CAAC,EAAC,WAAW,EAAC;;KAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsC/E,gBAAgB;IAmHhB,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,OAAO,CAAA;KAChB;IA2DK,sBAAsB,CAAC,UAAU,EAAE,MAAM;IA0C/C;;OAEG;IACG,sBAAsB;IAqGtB,UAAU;IA4JhB;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAe1D;;OAEG;IACG,aAAa;IASnB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgB5D;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAqChD;;OAEG;IACG,oBAAoB;IAa1B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,UAAO;IAO1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,aAAa,UAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;IAsCjG,aAAa,CAAC,KAAK,EAAE,KAAK;;;;IAI1B,eAAe,CAAC,aAAa,UAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;IAsC/E,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAC7F,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;QACjC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KACtC,CAAC;IAuBI,4BAA4B,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAqBnE"}
|
|
@@ -7,7 +7,6 @@ const simple_errors_1 = require("@simonbackx/simple-errors");
|
|
|
7
7
|
const backend_i18n_1 = require("@stamhoofd/backend-i18n");
|
|
8
8
|
const email_1 = require("@stamhoofd/email");
|
|
9
9
|
const structures_1 = require("@stamhoofd/structures");
|
|
10
|
-
const utility_1 = require("@stamhoofd/utility");
|
|
11
10
|
const sesv2_1 = tslib_1.__importDefault(require("aws-sdk/clients/sesv2"));
|
|
12
11
|
const uuid_1 = require("uuid");
|
|
13
12
|
const DNSValidator_1 = require("../helpers/DNSValidator");
|
|
@@ -30,6 +29,7 @@ class Organization extends simple_database_1.Model {
|
|
|
30
29
|
* Data only accessible by the server
|
|
31
30
|
*/
|
|
32
31
|
this.serverMeta = OrganizationServerMetaData_1.OrganizationServerMetaData.create({});
|
|
32
|
+
this.active = true;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Return default locale confiruation
|
|
@@ -124,15 +124,28 @@ class Organization extends simple_database_1.Model {
|
|
|
124
124
|
}
|
|
125
125
|
return organization;
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Potentially includes a path
|
|
129
|
+
*/
|
|
130
|
+
getHost(i18n) {
|
|
128
131
|
if (this.registerDomain) {
|
|
129
|
-
|
|
132
|
+
let d = this.registerDomain;
|
|
133
|
+
if (i18n && i18n.language != this.i18n.language) {
|
|
134
|
+
d += "/" + i18n.language;
|
|
135
|
+
}
|
|
136
|
+
return d;
|
|
130
137
|
}
|
|
131
|
-
return this.getDefaultHost();
|
|
138
|
+
return this.getDefaultHost(i18n);
|
|
132
139
|
}
|
|
133
|
-
getDefaultHost() {
|
|
134
|
-
var _a;
|
|
135
|
-
|
|
140
|
+
getDefaultHost(i18n) {
|
|
141
|
+
var _a, _b;
|
|
142
|
+
if (!STAMHOOFD.domains.registration) {
|
|
143
|
+
return STAMHOOFD.domains.dashboard + '/' + ((_a = i18n === null || i18n === void 0 ? void 0 : i18n.locale) !== null && _a !== void 0 ? _a : this.i18n.locale) + '/leden/' + this.uri;
|
|
144
|
+
}
|
|
145
|
+
let defaultDomain = (_b = STAMHOOFD.domains.registration[this.address.country]) !== null && _b !== void 0 ? _b : STAMHOOFD.domains.registration[""];
|
|
146
|
+
if (i18n && i18n.language != this.i18n.language) {
|
|
147
|
+
defaultDomain += "/" + i18n.language;
|
|
148
|
+
}
|
|
136
149
|
return this.uri + "." + defaultDomain;
|
|
137
150
|
}
|
|
138
151
|
get marketingDomain() {
|
|
@@ -148,7 +161,10 @@ class Organization extends simple_database_1.Model {
|
|
|
148
161
|
}
|
|
149
162
|
async getStructure({ emptyGroups } = { emptyGroups: false }) {
|
|
150
163
|
var _a, _b;
|
|
151
|
-
const
|
|
164
|
+
const oPeriods = await _1.OrganizationRegistrationPeriod.where({ periodId: this.periodId }, { limit: 1 });
|
|
165
|
+
const oPeriod = oPeriods[0];
|
|
166
|
+
const period = await _1.RegistrationPeriod.getByID(this.periodId);
|
|
167
|
+
const groups = emptyGroups ? [] : (await (await Promise.resolve().then(() => tslib_1.__importStar(require("./Group")))).Group.getAll(this.id, this.periodId));
|
|
152
168
|
const struct = structures_1.Organization.create({
|
|
153
169
|
id: this.id,
|
|
154
170
|
name: this.name,
|
|
@@ -157,7 +173,12 @@ class Organization extends simple_database_1.Model {
|
|
|
157
173
|
registerDomain: this.registerDomain,
|
|
158
174
|
uri: this.uri,
|
|
159
175
|
website: this.website,
|
|
160
|
-
groups: groups.map(g => g.getStructure())
|
|
176
|
+
groups: groups.map(g => g.getStructure()),
|
|
177
|
+
createdAt: this.createdAt,
|
|
178
|
+
period: structures_1.OrganizationRegistrationPeriod.create({
|
|
179
|
+
...oPeriod,
|
|
180
|
+
period: period.getStructure()
|
|
181
|
+
})
|
|
161
182
|
});
|
|
162
183
|
if (this.meta.modules.disableActivities) {
|
|
163
184
|
// Only show groups that are in a given category
|
|
@@ -171,54 +192,6 @@ class Organization extends simple_database_1.Model {
|
|
|
171
192
|
}
|
|
172
193
|
return struct;
|
|
173
194
|
}
|
|
174
|
-
async cleanCategories(groups) {
|
|
175
|
-
const reachable = new Map();
|
|
176
|
-
const queue = [this.meta.rootCategoryId];
|
|
177
|
-
reachable.set(this.meta.rootCategoryId, true);
|
|
178
|
-
let shouldSave = false;
|
|
179
|
-
const usedGroupIds = new Set();
|
|
180
|
-
while (queue.length > 0) {
|
|
181
|
-
const id = queue.shift();
|
|
182
|
-
if (!id) {
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
const category = this.meta.categories.find(c => c.id === id);
|
|
186
|
-
if (!category) {
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
for (const i of category.categoryIds) {
|
|
190
|
-
if (!reachable.get(i)) {
|
|
191
|
-
reachable.set(i, true);
|
|
192
|
-
queue.push(i);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
// Remove groupIds that no longer exist or are in a different category already
|
|
196
|
-
let filtered = category.groupIds.filter(id => !!groups.find(g => g.id === id) && !usedGroupIds.has(id));
|
|
197
|
-
// Remove duplicate groups
|
|
198
|
-
filtered = utility_1.Formatter.uniqueArray(filtered);
|
|
199
|
-
if (filtered.length !== category.groupIds.length) {
|
|
200
|
-
shouldSave = true;
|
|
201
|
-
console.log("Deleted " + (category.groupIds.length - filtered.length) + " group ids from category " + category.id + ", in organization " + this.id);
|
|
202
|
-
category.groupIds = filtered;
|
|
203
|
-
}
|
|
204
|
-
for (const groupId of category.groupIds) {
|
|
205
|
-
usedGroupIds.add(groupId);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
const reachableCategoryIds = [...reachable.keys()];
|
|
209
|
-
// Delete all categories that are not reachable anymore
|
|
210
|
-
const beforeCount = this.meta.categories.length;
|
|
211
|
-
this.meta.categories = this.meta.categories.filter(c => reachableCategoryIds.includes(c.id));
|
|
212
|
-
if (this.meta.categories.length !== beforeCount) {
|
|
213
|
-
console.log("Deleted " + (beforeCount - this.meta.categories.length) + " categories from organization " + this.id);
|
|
214
|
-
await this.save();
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
if (shouldSave) {
|
|
218
|
-
await this.save();
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
195
|
async updateDNSRecords() {
|
|
223
196
|
var _a, _b, _c, _d;
|
|
224
197
|
const organization = this;
|
|
@@ -643,7 +616,7 @@ class Organization extends simple_database_1.Model {
|
|
|
643
616
|
const User = (await Promise.resolve().then(() => tslib_1.__importStar(require('./User')))).User;
|
|
644
617
|
const admins = await User.getAdmins([this.id], { verified: true });
|
|
645
618
|
// Only full access
|
|
646
|
-
return admins.filter(a => a.permissions && a.permissions.
|
|
619
|
+
return admins.filter(a => { var _a; return a.permissions && ((_a = a.permissions.forOrganization(this)) === null || _a === void 0 ? void 0 : _a.hasFullAccess()); });
|
|
647
620
|
}
|
|
648
621
|
/**
|
|
649
622
|
* These email addresess are private
|
|
@@ -706,7 +679,7 @@ class Organization extends simple_database_1.Model {
|
|
|
706
679
|
// Circular reference fix
|
|
707
680
|
const User = (await Promise.resolve().then(() => tslib_1.__importStar(require('./User')))).User;
|
|
708
681
|
const admins = await User.where({ organizationId: this.id, permissions: { sign: "!=", value: null } });
|
|
709
|
-
const filtered = admins.filter(a => a.
|
|
682
|
+
const filtered = admins.filter(a => a.organizationPermissions && (a.organizationPermissions.hasFullAccess(this.privateMeta.roles) || a.organizationPermissions.hasFinanceAccess(this.privateMeta.roles)));
|
|
710
683
|
if (filtered.length > 0) {
|
|
711
684
|
return filtered.map(f => f.getEmailTo()).join(", ");
|
|
712
685
|
}
|
|
@@ -856,6 +829,9 @@ tslib_1.__decorate([
|
|
|
856
829
|
tslib_1.__decorate([
|
|
857
830
|
(0, simple_database_1.column)({ type: "string" })
|
|
858
831
|
], Organization.prototype, "uri", void 0);
|
|
832
|
+
tslib_1.__decorate([
|
|
833
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
834
|
+
], Organization.prototype, "periodId", void 0);
|
|
859
835
|
tslib_1.__decorate([
|
|
860
836
|
(0, simple_database_1.column)({ type: "json", decoder: structures_1.OrganizationMetaData })
|
|
861
837
|
], Organization.prototype, "meta", void 0);
|
|
@@ -897,4 +873,7 @@ tslib_1.__decorate([
|
|
|
897
873
|
skipUpdate: true
|
|
898
874
|
})
|
|
899
875
|
], Organization.prototype, "updatedAt", void 0);
|
|
876
|
+
tslib_1.__decorate([
|
|
877
|
+
(0, simple_database_1.column)({ type: 'boolean' })
|
|
878
|
+
], Organization.prototype, "active", void 0);
|
|
900
879
|
//# sourceMappingURL=Organization.js.map
|