@stamhoofd/models 2.39.0 → 2.40.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/dist/src/factories/AddressFactory.d.ts +3 -4
- package/dist/src/factories/AddressFactory.d.ts.map +1 -1
- package/dist/src/factories/AddressFactory.js +13 -13
- package/dist/src/factories/EmergencyContactFactory.d.ts +3 -4
- package/dist/src/factories/EmergencyContactFactory.d.ts.map +1 -1
- package/dist/src/factories/EmergencyContactFactory.js +27 -27
- package/dist/src/factories/EmergencyContactFactory.js.map +1 -1
- package/dist/src/factories/GroupFactory.d.ts +4 -4
- package/dist/src/factories/GroupFactory.d.ts.map +1 -1
- package/dist/src/factories/GroupFactory.js +8 -8
- package/dist/src/factories/GroupFactory.js.map +1 -1
- package/dist/src/factories/MemberFactory.d.ts +4 -4
- package/dist/src/factories/MemberFactory.d.ts.map +1 -1
- package/dist/src/factories/MemberFactory.js +17 -17
- package/dist/src/factories/MemberFactory.js.map +1 -1
- package/dist/src/factories/OrganizationFactory.d.ts +4 -4
- package/dist/src/factories/OrganizationFactory.js +8 -8
- package/dist/src/factories/OrganizationFactory.js.map +1 -1
- package/dist/src/factories/ParentFactory.d.ts +1 -1
- package/dist/src/factories/ParentFactory.js +19 -19
- package/dist/src/factories/ParentFactory.js.map +1 -1
- package/dist/src/factories/RecordFactory.d.ts +2 -3
- package/dist/src/factories/RecordFactory.d.ts.map +1 -1
- package/dist/src/factories/RecordFactory.js +1 -1
- package/dist/src/factories/RecordFactory.js.map +1 -1
- package/dist/src/factories/RegisterCodeFactory.d.ts +2 -2
- package/dist/src/factories/RegisterCodeFactory.d.ts.map +1 -1
- package/dist/src/factories/RegisterCodeFactory.js +2 -2
- package/dist/src/factories/RegistrationFactory.d.ts +3 -3
- package/dist/src/factories/RegistrationFactory.d.ts.map +1 -1
- package/dist/src/factories/RegistrationFactory.js.map +1 -1
- package/dist/src/factories/RegistrationPeriodFactory.d.ts +2 -2
- package/dist/src/factories/RegistrationPeriodFactory.js.map +1 -1
- package/dist/src/factories/UserFactory.d.ts +3 -3
- package/dist/src/factories/UserFactory.d.ts.map +1 -1
- package/dist/src/factories/UserFactory.js +3 -3
- package/dist/src/factories/UserFactory.js.map +1 -1
- package/dist/src/factories/WebshopFactory.d.ts +4 -4
- package/dist/src/factories/WebshopFactory.d.ts.map +1 -1
- package/dist/src/factories/WebshopFactory.js +1 -1
- package/dist/src/factories/WebshopFactory.js.map +1 -1
- package/dist/src/helpers/DNSValidator.d.ts +1 -1
- package/dist/src/helpers/DNSValidator.d.ts.map +1 -1
- package/dist/src/helpers/DNSValidator.js +33 -33
- package/dist/src/helpers/DNSValidator.js.map +1 -1
- package/dist/src/helpers/EmailBuilder.d.ts +10 -10
- package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
- package/dist/src/helpers/EmailBuilder.js +34 -34
- package/dist/src/helpers/EmailBuilder.js.map +1 -1
- package/dist/src/helpers/GroupBuilder.d.ts.map +1 -1
- package/dist/src/helpers/GroupBuilder.js +57 -57
- package/dist/src/helpers/GroupBuilder.js.map +1 -1
- package/dist/src/helpers/Handlebars.d.ts.map +1 -1
- package/dist/src/helpers/Handlebars.js +29 -29
- package/dist/src/helpers/Handlebars.js.map +1 -1
- package/dist/src/helpers/MemberMerger.d.ts +1 -1
- package/dist/src/helpers/MemberMerger.d.ts.map +1 -1
- package/dist/src/helpers/MemberMerger.js +33 -33
- package/dist/src/helpers/MemberMerger.js.map +1 -1
- package/dist/src/helpers/MemberMerger.test.js +194 -194
- package/dist/src/helpers/MemberMerger.test.js.map +1 -1
- package/dist/src/helpers/RateLimiter.d.ts.map +1 -1
- package/dist/src/helpers/RateLimiter.js +2 -2
- package/dist/src/helpers/RateLimiter.js.map +1 -1
- package/dist/src/helpers/SetupStepsUpdater.d.ts +22 -0
- package/dist/src/helpers/SetupStepsUpdater.d.ts.map +1 -0
- package/dist/src/helpers/SetupStepsUpdater.js +255 -0
- package/dist/src/helpers/SetupStepsUpdater.js.map +1 -0
- package/dist/src/helpers/WebshopCounter.d.ts +1 -1
- package/dist/src/helpers/WebshopCounter.d.ts.map +1 -1
- package/dist/src/helpers/WebshopCounter.js +1 -1
- package/dist/src/helpers/WebshopCounter.js.map +1 -1
- package/dist/src/helpers/WebshopCounter.test.js +6 -6
- package/dist/src/helpers/WebshopCounter.test.js.map +1 -1
- package/dist/src/index.d.ts +20 -19
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/1605262045-import-postcodes.js +12 -12
- package/dist/src/migrations/1605262046-import-postcodes-nl.js +10 -10
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +37 -37
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
- package/dist/src/models/BalanceItemPayment.js +13 -13
- package/dist/src/models/BalanceItemPayment.js.map +1 -1
- package/dist/src/models/BuckarooPayment.d.ts +1 -1
- package/dist/src/models/BuckarooPayment.d.ts.map +1 -1
- package/dist/src/models/BuckarooPayment.js +5 -5
- package/dist/src/models/BuckarooPayment.js.map +1 -1
- package/dist/src/models/CachedOutstandingBalance.d.ts.map +1 -1
- package/dist/src/models/CachedOutstandingBalance.js +37 -37
- package/dist/src/models/CachedOutstandingBalance.js.map +1 -1
- package/dist/src/models/Document.d.ts +4 -4
- package/dist/src/models/Document.d.ts.map +1 -1
- package/dist/src/models/Document.js +27 -27
- package/dist/src/models/Document.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts +4 -4
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +72 -72
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/Email.d.ts.map +1 -1
- package/dist/src/models/Email.js +63 -64
- package/dist/src/models/Email.js.map +1 -1
- package/dist/src/models/EmailRecipient.d.ts.map +1 -1
- package/dist/src/models/EmailRecipient.js +20 -20
- package/dist/src/models/EmailRecipient.js.map +1 -1
- package/dist/src/models/EmailTemplate.d.ts +3 -3
- package/dist/src/models/EmailTemplate.d.ts.map +1 -1
- package/dist/src/models/EmailTemplate.js +16 -16
- package/dist/src/models/EmailTemplate.js.map +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts +2 -2
- package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
- package/dist/src/models/EmailVerificationCode.js +57 -55
- package/dist/src/models/EmailVerificationCode.js.map +1 -1
- package/dist/src/models/Event.d.ts +2 -2
- package/dist/src/models/Event.d.ts.map +1 -1
- package/dist/src/models/Event.js +15 -15
- package/dist/src/models/Event.js.map +1 -1
- package/dist/src/models/Group.d.ts +3 -1
- package/dist/src/models/Group.d.ts.map +1 -1
- package/dist/src/models/Group.js +46 -35
- package/dist/src/models/Group.js.map +1 -1
- package/dist/src/models/Image.d.ts +1 -1
- package/dist/src/models/Image.d.ts.map +1 -1
- package/dist/src/models/Image.js +26 -26
- package/dist/src/models/Image.js.map +1 -1
- package/dist/src/models/Member.d.ts +8 -8
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +60 -60
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +3 -3
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
- package/dist/src/models/MemberPlatformMembership.js +26 -26
- package/dist/src/models/MemberPlatformMembership.js.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.d.ts.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.js +13 -13
- package/dist/src/models/MemberResponsibilityRecord.js.map +1 -1
- package/dist/src/models/MergedMember.d.ts +3 -3
- package/dist/src/models/MergedMember.d.ts.map +1 -1
- package/dist/src/models/MergedMember.js +19 -19
- package/dist/src/models/MergedMember.js.map +1 -1
- package/dist/src/models/MolliePayment.d.ts +1 -1
- package/dist/src/models/MolliePayment.d.ts.map +1 -1
- package/dist/src/models/MolliePayment.js +5 -5
- package/dist/src/models/MolliePayment.js.map +1 -1
- package/dist/src/models/MollieToken.d.ts.map +1 -1
- package/dist/src/models/MollieToken.js +60 -60
- package/dist/src/models/MollieToken.js.map +1 -1
- package/dist/src/models/OneTimeToken.d.ts +2 -2
- package/dist/src/models/OneTimeToken.d.ts.map +1 -1
- package/dist/src/models/OneTimeToken.js +13 -13
- package/dist/src/models/OneTimeToken.js.map +1 -1
- package/dist/src/models/Order.d.ts +1 -1
- package/dist/src/models/Order.d.ts.map +1 -1
- package/dist/src/models/Order.js +70 -70
- package/dist/src/models/Order.js.map +1 -1
- package/dist/src/models/Organization.d.ts +5 -5
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js +127 -127
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.js +15 -15
- package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
- package/dist/src/models/PasswordToken.d.ts +3 -3
- package/dist/src/models/PasswordToken.d.ts.map +1 -1
- package/dist/src/models/PasswordToken.js +17 -17
- package/dist/src/models/PasswordToken.js.map +1 -1
- package/dist/src/models/PayconiqPayment.d.ts +1 -1
- package/dist/src/models/PayconiqPayment.d.ts.map +1 -1
- package/dist/src/models/PayconiqPayment.js +49 -49
- package/dist/src/models/PayconiqPayment.js.map +1 -1
- package/dist/src/models/Payment.d.ts +3 -3
- package/dist/src/models/Payment.d.ts.map +1 -1
- package/dist/src/models/Payment.js +36 -36
- package/dist/src/models/Payment.js.map +1 -1
- package/dist/src/models/Platform.d.ts +2 -2
- package/dist/src/models/Platform.d.ts.map +1 -1
- package/dist/src/models/Platform.js +8 -8
- package/dist/src/models/Platform.js.map +1 -1
- package/dist/src/models/RegisterCode.d.ts +1 -1
- package/dist/src/models/RegisterCode.d.ts.map +1 -1
- package/dist/src/models/RegisterCode.js +11 -11
- package/dist/src/models/RegisterCode.js.map +1 -1
- package/dist/src/models/Registration.d.ts +1 -1
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +88 -88
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/RegistrationPeriod.js +12 -12
- package/dist/src/models/RegistrationPeriod.js.map +1 -1
- package/dist/src/models/STCredit.d.ts +1 -1
- package/dist/src/models/STCredit.d.ts.map +1 -1
- package/dist/src/models/STCredit.js +12 -12
- package/dist/src/models/STCredit.js.map +1 -1
- package/dist/src/models/STInvoice.d.ts +1 -1
- package/dist/src/models/STInvoice.d.ts.map +1 -1
- package/dist/src/models/STInvoice.js +16 -16
- package/dist/src/models/STInvoice.js.map +1 -1
- package/dist/src/models/STPackage.d.ts +1 -1
- package/dist/src/models/STPackage.d.ts.map +1 -1
- package/dist/src/models/STPackage.js +39 -39
- package/dist/src/models/STPackage.js.map +1 -1
- package/dist/src/models/STPendingInvoice.d.ts +1 -1
- package/dist/src/models/STPendingInvoice.d.ts.map +1 -1
- package/dist/src/models/STPendingInvoice.js +11 -11
- package/dist/src/models/STPendingInvoice.js.map +1 -1
- package/dist/src/models/StripeAccount.d.ts.map +1 -1
- package/dist/src/models/StripeAccount.js +13 -13
- package/dist/src/models/StripeAccount.js.map +1 -1
- package/dist/src/models/StripeCheckoutSession.d.ts +1 -1
- package/dist/src/models/StripeCheckoutSession.d.ts.map +1 -1
- package/dist/src/models/StripeCheckoutSession.js +7 -7
- package/dist/src/models/StripeCheckoutSession.js.map +1 -1
- package/dist/src/models/StripePaymentIntent.d.ts +1 -1
- package/dist/src/models/StripePaymentIntent.d.ts.map +1 -1
- package/dist/src/models/StripePaymentIntent.js +7 -7
- package/dist/src/models/StripePaymentIntent.js.map +1 -1
- package/dist/src/models/Ticket.d.ts +2 -2
- package/dist/src/models/Ticket.d.ts.map +1 -1
- package/dist/src/models/Ticket.js +23 -23
- package/dist/src/models/Ticket.js.map +1 -1
- package/dist/src/models/Token.d.ts +3 -3
- package/dist/src/models/Token.d.ts.map +1 -1
- package/dist/src/models/Token.js +27 -27
- package/dist/src/models/Token.js.map +1 -1
- package/dist/src/models/Token.test.js +11 -11
- package/dist/src/models/UsedRegisterCode.d.ts +1 -1
- package/dist/src/models/UsedRegisterCode.d.ts.map +1 -1
- package/dist/src/models/UsedRegisterCode.js +10 -10
- package/dist/src/models/UsedRegisterCode.js.map +1 -1
- package/dist/src/models/User.d.ts +4 -4
- package/dist/src/models/User.d.ts.map +1 -1
- package/dist/src/models/User.js +53 -51
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/models/UserPermissions.d.ts +3 -3
- package/dist/src/models/UserPermissions.d.ts.map +1 -1
- package/dist/src/models/UserPermissions.js +12 -12
- package/dist/src/models/UserPermissions.js.map +1 -1
- package/dist/src/models/Webshop.d.ts +1 -1
- package/dist/src/models/Webshop.d.ts.map +1 -1
- package/dist/src/models/Webshop.js +23 -23
- package/dist/src/models/Webshop.js.map +1 -1
- package/dist/src/models/WebshopDiscountCode.d.ts +1 -1
- package/dist/src/models/WebshopDiscountCode.d.ts.map +1 -1
- package/dist/src/models/WebshopDiscountCode.js +16 -16
- package/dist/src/models/WebshopDiscountCode.js.map +1 -1
- package/dist/src/models/addresses/City.d.ts.map +1 -1
- package/dist/src/models/addresses/City.js +9 -9
- package/dist/src/models/addresses/City.js.map +1 -1
- package/dist/src/models/addresses/PostalCode.d.ts.map +1 -1
- package/dist/src/models/addresses/PostalCode.js +11 -11
- package/dist/src/models/addresses/PostalCode.js.map +1 -1
- package/dist/src/models/addresses/PostalCode.test.js +22 -22
- package/dist/src/models/addresses/PostalCode.test.js.map +1 -1
- package/dist/src/models/addresses/Province.d.ts.map +1 -1
- package/dist/src/models/addresses/Province.js +5 -5
- package/dist/src/models/addresses/Province.js.map +1 -1
- package/dist/src/models/addresses/Street.d.ts.map +1 -1
- package/dist/src/models/addresses/Street.js +6 -6
- package/dist/src/models/addresses/Street.js.map +1 -1
- package/dist/src/models/index.d.ts +46 -46
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +0 -1
- package/dist/src/models/index.js.map +1 -1
- package/dist/src/structures/OrganizationServerMetaData.d.ts.map +1 -1
- package/dist/src/structures/OrganizationServerMetaData.js +4 -4
- package/dist/src/structures/OrganizationServerMetaData.js.map +1 -1
- package/dist/tests/jest.global.setup.d.ts.map +1 -1
- package/dist/tests/jest.global.setup.js +15 -13
- package/dist/tests/jest.global.setup.js.map +1 -1
- package/dist/tests/jest.setup.js +3 -1
- package/dist/tests/jest.setup.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -3
- package/src/factories/AddressFactory.ts +17 -17
- package/src/factories/EmergencyContactFactory.ts +30 -31
- package/src/factories/GroupFactory.ts +30 -30
- package/src/factories/MemberFactory.ts +41 -38
- package/src/factories/OrganizationFactory.ts +15 -15
- package/src/factories/ParentFactory.ts +24 -24
- package/src/factories/RecordFactory.ts +5 -4
- package/src/factories/RegisterCodeFactory.ts +7 -7
- package/src/factories/RegistrationFactory.ts +16 -16
- package/src/factories/RegistrationPeriodFactory.ts +5 -5
- package/src/factories/UserFactory.ts +20 -19
- package/src/factories/WebshopFactory.ts +14 -14
- package/src/helpers/DNSValidator.ts +89 -84
- package/src/helpers/EmailBuilder.ts +141 -135
- package/src/helpers/GroupBuilder.ts +181 -181
- package/src/helpers/Handlebars.ts +57 -54
- package/src/helpers/MemberMerger.test.ts +702 -702
- package/src/helpers/MemberMerger.ts +83 -77
- package/src/helpers/RateLimiter.ts +25 -27
- package/src/helpers/SetupStepsUpdater.ts +402 -0
- package/src/helpers/WebshopCounter.test.ts +12 -12
- package/src/helpers/WebshopCounter.ts +20 -19
- package/src/index.ts +20 -19
- package/src/migrations/1605262045-import-postcodes.ts +59 -63
- package/src/migrations/1605262046-import-postcodes-nl.ts +41 -43
- package/src/models/BalanceItem.ts +173 -172
- package/src/models/BalanceItemPayment.ts +32 -33
- package/src/models/BuckarooPayment.ts +7 -7
- package/src/models/CachedOutstandingBalance.ts +98 -99
- package/src/models/Document.ts +90 -87
- package/src/models/DocumentTemplate.ts +207 -198
- package/src/models/Email.ts +198 -200
- package/src/models/EmailRecipient.ts +38 -39
- package/src/models/EmailTemplate.ts +36 -37
- package/src/models/EmailVerificationCode.ts +146 -142
- package/src/models/Event.ts +53 -53
- package/src/models/Group.ts +136 -123
- package/src/models/Image.ts +48 -48
- package/src/models/Member.ts +277 -275
- package/src/models/MemberPlatformMembership.ts +71 -71
- package/src/models/MemberResponsibilityRecord.ts +32 -32
- package/src/models/MergedMember.ts +77 -77
- package/src/models/MolliePayment.ts +7 -7
- package/src/models/MollieToken.ts +131 -126
- package/src/models/OneTimeToken.ts +40 -39
- package/src/models/Order.ts +379 -372
- package/src/models/Organization.ts +332 -325
- package/src/models/OrganizationRegistrationPeriod.ts +50 -50
- package/src/models/PasswordToken.ts +42 -42
- package/src/models/PayconiqPayment.ts +80 -76
- package/src/models/Payment.ts +86 -86
- package/src/models/Platform.ts +21 -22
- package/src/models/RegisterCode.ts +26 -26
- package/src/models/Registration.ts +167 -168
- package/src/models/RegistrationPeriod.ts +29 -29
- package/src/models/STCredit.ts +24 -25
- package/src/models/STInvoice.ts +34 -34
- package/src/models/STPackage.ts +143 -136
- package/src/models/STPendingInvoice.ts +26 -26
- package/src/models/StripeAccount.ts +27 -27
- package/src/models/StripeCheckoutSession.ts +10 -10
- package/src/models/StripePaymentIntent.ts +10 -10
- package/src/models/Ticket.ts +51 -52
- package/src/models/Token.test.ts +13 -13
- package/src/models/Token.ts +64 -63
- package/src/models/UsedRegisterCode.ts +20 -21
- package/src/models/User.ts +148 -144
- package/src/models/UserPermissions.ts +25 -28
- package/src/models/Webshop.ts +53 -53
- package/src/models/WebshopDiscountCode.ts +33 -33
- package/src/models/addresses/City.ts +12 -12
- package/src/models/addresses/PostalCode.test.ts +68 -69
- package/src/models/addresses/PostalCode.ts +57 -57
- package/src/models/addresses/Province.ts +8 -8
- package/src/models/addresses/Street.ts +10 -12
- package/src/models/index.ts +54 -55
- package/src/structures/OrganizationServerMetaData.ts +36 -36
package/src/models/Document.ts
CHANGED
|
@@ -1,202 +1,205 @@
|
|
|
1
|
-
|
|
2
|
-
import { column, Model } from "@simonbackx/simple-database";
|
|
1
|
+
import { column, Model } from '@simonbackx/simple-database';
|
|
3
2
|
import { Document as DocumentStruct, DocumentData, DocumentStatus } from '@stamhoofd/structures';
|
|
4
|
-
import { Formatter } from
|
|
5
|
-
import { v4 as uuidv4 } from
|
|
3
|
+
import { Formatter } from '@stamhoofd/utility';
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
6
5
|
|
|
7
|
-
import { render } from
|
|
8
|
-
import { RegistrationWithMember } from
|
|
9
|
-
import { Organization } from
|
|
6
|
+
import { render } from '../helpers/Handlebars';
|
|
7
|
+
import { RegistrationWithMember } from './Member';
|
|
8
|
+
import { Organization } from './Organization';
|
|
10
9
|
|
|
11
10
|
export class Document extends Model {
|
|
12
|
-
static table =
|
|
11
|
+
static table = 'documents';
|
|
13
12
|
|
|
14
|
-
@column({ primary: true, type:
|
|
13
|
+
@column({ primary: true, type: 'string', beforeSave(value) {
|
|
15
14
|
return value ?? uuidv4();
|
|
16
15
|
} })
|
|
17
16
|
id!: string;
|
|
18
17
|
|
|
19
|
-
@column({ type:
|
|
20
|
-
organizationId: string
|
|
18
|
+
@column({ type: 'string' })
|
|
19
|
+
organizationId: string;
|
|
21
20
|
|
|
22
|
-
@column({ type:
|
|
23
|
-
templateId: string
|
|
21
|
+
@column({ type: 'string' })
|
|
22
|
+
templateId: string;
|
|
24
23
|
|
|
25
24
|
/**
|
|
26
25
|
* Used to give a member access to the document
|
|
27
26
|
*/
|
|
28
|
-
@column({ type:
|
|
29
|
-
memberId: string | null = null
|
|
27
|
+
@column({ type: 'string', nullable: true })
|
|
28
|
+
memberId: string | null = null;
|
|
30
29
|
|
|
31
30
|
/**
|
|
32
31
|
* Used to identify document already created for a registration (= to update it)
|
|
33
32
|
*/
|
|
34
|
-
@column({ type:
|
|
35
|
-
registrationId: string | null = null
|
|
33
|
+
@column({ type: 'string', nullable: true })
|
|
34
|
+
registrationId: string | null = null;
|
|
36
35
|
|
|
37
|
-
@column({ type:
|
|
38
|
-
status = DocumentStatus.Draft
|
|
36
|
+
@column({ type: 'string' })
|
|
37
|
+
status = DocumentStatus.Draft;
|
|
39
38
|
|
|
40
39
|
/**
|
|
41
40
|
* Assigned when exporting the document
|
|
42
41
|
*/
|
|
43
|
-
@column({ type:
|
|
44
|
-
number: number | null = null
|
|
42
|
+
@column({ type: 'integer', nullable: true })
|
|
43
|
+
number: number | null = null;
|
|
45
44
|
|
|
46
45
|
/**
|
|
47
46
|
* Settings of the document. This information is public
|
|
48
47
|
*/
|
|
49
|
-
@column({ type:
|
|
50
|
-
data = DocumentData.create({})
|
|
48
|
+
@column({ type: 'json', decoder: DocumentData })
|
|
49
|
+
data = DocumentData.create({});
|
|
51
50
|
|
|
52
|
-
@column({ type:
|
|
53
|
-
createdAt: Date = new Date()
|
|
51
|
+
@column({ type: 'datetime' })
|
|
52
|
+
createdAt: Date = new Date();
|
|
54
53
|
|
|
55
54
|
@column({
|
|
56
|
-
type:
|
|
57
|
-
const date = new Date()
|
|
58
|
-
date.setMilliseconds(0)
|
|
59
|
-
return date
|
|
55
|
+
type: 'datetime', beforeSave() {
|
|
56
|
+
const date = new Date();
|
|
57
|
+
date.setMilliseconds(0);
|
|
58
|
+
return date;
|
|
60
59
|
},
|
|
61
|
-
skipUpdate: true
|
|
60
|
+
skipUpdate: true,
|
|
62
61
|
})
|
|
63
|
-
updatedAt: Date
|
|
62
|
+
updatedAt: Date;
|
|
64
63
|
|
|
65
64
|
getStructure() {
|
|
66
|
-
return DocumentStruct.create(this)
|
|
65
|
+
return DocumentStruct.create(this);
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
buildContext(organization: Organization) {
|
|
70
69
|
// Convert the field answers in a simplified javascript object
|
|
71
70
|
const data = {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
'id': this.id,
|
|
72
|
+
'name': this.data.name,
|
|
73
|
+
'number': this.number,
|
|
74
|
+
'created_at': this.createdAt,
|
|
75
|
+
'organization.logo': organization.meta.squareLogo,
|
|
77
76
|
};
|
|
78
77
|
|
|
79
78
|
for (const field of this.data.fieldAnswers.values()) {
|
|
80
|
-
const keys = field.settings.id.split('.')
|
|
81
|
-
let current = data
|
|
82
|
-
const lastKey = keys.pop()
|
|
79
|
+
const keys = field.settings.id.split('.');
|
|
80
|
+
let current = data;
|
|
81
|
+
const lastKey = keys.pop()!;
|
|
83
82
|
if (!lastKey) {
|
|
84
|
-
throw new Error(
|
|
83
|
+
throw new Error('Invalid field id');
|
|
85
84
|
}
|
|
86
85
|
for (const key of keys) {
|
|
87
86
|
if (!current[key]) {
|
|
88
|
-
current[key] = {}
|
|
87
|
+
current[key] = {};
|
|
89
88
|
}
|
|
90
|
-
current = current[key]
|
|
89
|
+
current = current[key];
|
|
91
90
|
|
|
92
|
-
if (typeof current !==
|
|
93
|
-
throw new Error(
|
|
91
|
+
if (typeof current !== 'object') {
|
|
92
|
+
throw new Error('Invalid field type');
|
|
94
93
|
}
|
|
95
94
|
}
|
|
96
|
-
current[lastKey] = field.objectValue
|
|
95
|
+
current[lastKey] = field.objectValue;
|
|
97
96
|
}
|
|
98
97
|
return data;
|
|
99
98
|
}
|
|
100
99
|
|
|
101
100
|
async updateData(): Promise<void> {
|
|
102
101
|
if (!this.registrationId) {
|
|
103
|
-
console.log('No registration id, skipping update')
|
|
104
|
-
return
|
|
102
|
+
console.log('No registration id, skipping update');
|
|
103
|
+
return;
|
|
105
104
|
}
|
|
106
|
-
const DocumentTemplate = (await import(
|
|
107
|
-
const template = await DocumentTemplate.getByID(this.templateId)
|
|
105
|
+
const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
|
|
106
|
+
const template = await DocumentTemplate.getByID(this.templateId);
|
|
108
107
|
if (!template) {
|
|
109
|
-
console.log('No template, skipping update')
|
|
110
|
-
return
|
|
108
|
+
console.log('No template, skipping update');
|
|
109
|
+
return;
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
if (!template.updatesEnabled) {
|
|
114
|
-
console.log('No updatesEnabled, skipping update')
|
|
115
|
-
return
|
|
113
|
+
console.log('No updatesEnabled, skipping update');
|
|
114
|
+
return;
|
|
116
115
|
}
|
|
117
116
|
|
|
118
|
-
const Member = (await import(
|
|
119
|
-
const [registration] = await Member.getRegistrationWithMembersByIDs([this.registrationId])
|
|
117
|
+
const Member = (await import('./Member')).Member;
|
|
118
|
+
const [registration] = await Member.getRegistrationWithMembersByIDs([this.registrationId]);
|
|
120
119
|
if (!registration) {
|
|
121
|
-
console.log('No registration, skipping update')
|
|
122
|
-
return
|
|
120
|
+
console.log('No registration, skipping update');
|
|
121
|
+
return;
|
|
123
122
|
}
|
|
124
123
|
|
|
125
|
-
await template.updateDocumentFor(this, registration)
|
|
124
|
+
await template.updateDocumentFor(this, registration);
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
static async updateForMember(memberId: string) {
|
|
129
128
|
try {
|
|
130
|
-
console.log('Updating documents for member', memberId)
|
|
131
|
-
const Member = (await import(
|
|
132
|
-
const member = await Member.getWithRegistrations(memberId)
|
|
129
|
+
console.log('Updating documents for member', memberId);
|
|
130
|
+
const Member = (await import('./Member')).Member;
|
|
131
|
+
const member = await Member.getWithRegistrations(memberId);
|
|
133
132
|
if (member) {
|
|
134
|
-
const organizationIds = Formatter.uniqueArray(member.registrations.map(r => r.organizationId))
|
|
133
|
+
const organizationIds = Formatter.uniqueArray(member.registrations.map(r => r.organizationId));
|
|
135
134
|
for (const organizationId of organizationIds) {
|
|
136
|
-
await this.updateForRegistrations(member.registrations.map(r => r.id), organizationId)
|
|
135
|
+
await this.updateForRegistrations(member.registrations.map(r => r.id), organizationId);
|
|
137
136
|
}
|
|
138
137
|
}
|
|
139
|
-
}
|
|
140
|
-
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
console.error(e);
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
static async updateForRegistration(registration: RegistrationWithMember) {
|
|
145
145
|
try {
|
|
146
|
-
console.log('Updating documents for registration', registration.id)
|
|
146
|
+
console.log('Updating documents for registration', registration.id);
|
|
147
147
|
|
|
148
|
-
const DocumentTemplate = (await import(
|
|
149
|
-
const templates = await DocumentTemplate.where({updatesEnabled: 1, organizationId: registration.member.organizationId})
|
|
148
|
+
const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
|
|
149
|
+
const templates = await DocumentTemplate.where({ updatesEnabled: 1, organizationId: registration.member.organizationId });
|
|
150
150
|
|
|
151
151
|
for (const template of templates) {
|
|
152
|
-
await template.createForRegistrationIfNeeded(registration)
|
|
152
|
+
await template.createForRegistrationIfNeeded(registration);
|
|
153
153
|
}
|
|
154
|
-
}
|
|
155
|
-
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
console.error(e);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
|
|
159
160
|
static async updateForRegistrations(registrationIds: string[], organizationId: string) {
|
|
160
161
|
try {
|
|
161
|
-
console.log('Updating documents for updateForRegistrations', registrationIds)
|
|
162
|
+
console.log('Updating documents for updateForRegistrations', registrationIds);
|
|
162
163
|
|
|
163
|
-
const DocumentTemplate = (await import(
|
|
164
|
-
const templates = await DocumentTemplate.where({updatesEnabled: 1, organizationId})
|
|
164
|
+
const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
|
|
165
|
+
const templates = await DocumentTemplate.where({ updatesEnabled: 1, organizationId });
|
|
165
166
|
|
|
166
167
|
if (templates.length) {
|
|
167
|
-
const Member = (await import(
|
|
168
|
-
const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds)
|
|
168
|
+
const Member = (await import('./Member')).Member;
|
|
169
|
+
const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds);
|
|
169
170
|
|
|
170
171
|
for (const template of templates) {
|
|
171
172
|
for (const registration of registrations) {
|
|
172
|
-
await template.createForRegistrationIfNeeded(registration)
|
|
173
|
+
await template.createForRegistrationIfNeeded(registration);
|
|
173
174
|
}
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
|
-
}
|
|
177
|
-
|
|
177
|
+
}
|
|
178
|
+
catch (e) {
|
|
179
|
+
console.error(e);
|
|
178
180
|
}
|
|
179
181
|
}
|
|
180
182
|
|
|
181
183
|
// Rander handlebars template
|
|
182
184
|
async getRenderedHtml(organization: Organization): Promise<string | null> {
|
|
183
|
-
const DocumentTemplate = (await import(
|
|
184
|
-
const template = await DocumentTemplate.getByID(this.templateId)
|
|
185
|
+
const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
|
|
186
|
+
const template = await DocumentTemplate.getByID(this.templateId);
|
|
185
187
|
if (!template) {
|
|
186
|
-
return null
|
|
188
|
+
return null;
|
|
187
189
|
}
|
|
188
190
|
|
|
189
|
-
return this.getRenderedHtmlForTemplate(organization, template.html)
|
|
191
|
+
return this.getRenderedHtmlForTemplate(organization, template.html);
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
// Rander handlebars template
|
|
193
195
|
private getRenderedHtmlForTemplate(organization: Organization, htmlTemplate: string): string | null {
|
|
194
196
|
try {
|
|
195
|
-
const context = this.buildContext(organization)
|
|
197
|
+
const context = this.buildContext(organization);
|
|
196
198
|
const renderedHtml = render(htmlTemplate, context);
|
|
197
199
|
return renderedHtml;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
console.error('Failed to render document html', e);
|
|
200
203
|
return null;
|
|
201
204
|
}
|
|
202
205
|
}
|