@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
|
@@ -1,82 +1,81 @@
|
|
|
1
1
|
import { column, Model } from '@simonbackx/simple-database';
|
|
2
2
|
import { EmailRecipient as EmailRecipientStruct, Replacement } from '@stamhoofd/structures';
|
|
3
|
-
import { v4 as uuidv4 } from
|
|
3
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
4
4
|
|
|
5
5
|
import { ArrayDecoder } from '@simonbackx/simple-encoding';
|
|
6
6
|
|
|
7
7
|
export class EmailRecipient extends Model {
|
|
8
|
-
static table =
|
|
8
|
+
static table = 'email_recipients';
|
|
9
9
|
|
|
10
10
|
@column({
|
|
11
|
-
primary: true, type:
|
|
11
|
+
primary: true, type: 'string', beforeSave(value) {
|
|
12
12
|
return value ?? uuidv4();
|
|
13
|
-
}
|
|
13
|
+
},
|
|
14
14
|
})
|
|
15
15
|
id!: string;
|
|
16
16
|
|
|
17
|
-
@column({ type:
|
|
18
|
-
emailId: string
|
|
17
|
+
@column({ type: 'string' })
|
|
18
|
+
emailId: string;
|
|
19
19
|
|
|
20
|
-
@column({ type:
|
|
20
|
+
@column({ type: 'string', nullable: true })
|
|
21
21
|
firstName: string | null = null;
|
|
22
22
|
|
|
23
|
-
@column({ type:
|
|
23
|
+
@column({ type: 'string', nullable: true })
|
|
24
24
|
lastName: string | null = null;
|
|
25
25
|
|
|
26
|
-
@column({ type:
|
|
26
|
+
@column({ type: 'string' })
|
|
27
27
|
email: string;
|
|
28
28
|
|
|
29
|
-
@column({ type:
|
|
30
|
-
replacements: Replacement[] = []
|
|
29
|
+
@column({ type: 'json', decoder: new ArrayDecoder(Replacement) })
|
|
30
|
+
replacements: Replacement[] = [];
|
|
31
31
|
|
|
32
|
-
@column({ type:
|
|
33
|
-
failErrorMessage: string|null = null
|
|
32
|
+
@column({ type: 'string', nullable: true })
|
|
33
|
+
failErrorMessage: string | null = null;
|
|
34
34
|
|
|
35
|
-
@column({ type:
|
|
36
|
-
failCount = 0
|
|
35
|
+
@column({ type: 'integer' })
|
|
36
|
+
failCount = 0;
|
|
37
37
|
|
|
38
38
|
@column({
|
|
39
|
-
type:
|
|
40
|
-
nullable: true
|
|
39
|
+
type: 'datetime',
|
|
40
|
+
nullable: true,
|
|
41
41
|
})
|
|
42
|
-
firstFailedAt: Date|null = null
|
|
42
|
+
firstFailedAt: Date | null = null;
|
|
43
43
|
|
|
44
44
|
@column({
|
|
45
|
-
type:
|
|
46
|
-
nullable: true
|
|
45
|
+
type: 'datetime',
|
|
46
|
+
nullable: true,
|
|
47
47
|
})
|
|
48
|
-
lastFailedAt: Date|null = null
|
|
48
|
+
lastFailedAt: Date | null = null;
|
|
49
49
|
|
|
50
50
|
@column({
|
|
51
|
-
type:
|
|
52
|
-
nullable: true
|
|
51
|
+
type: 'datetime',
|
|
52
|
+
nullable: true,
|
|
53
53
|
})
|
|
54
|
-
sentAt: Date|null = null
|
|
55
|
-
|
|
54
|
+
sentAt: Date | null = null;
|
|
55
|
+
|
|
56
56
|
@column({
|
|
57
|
-
type:
|
|
57
|
+
type: 'datetime', beforeSave(old?: any) {
|
|
58
58
|
if (old !== undefined) {
|
|
59
59
|
return old;
|
|
60
60
|
}
|
|
61
|
-
const date = new Date()
|
|
62
|
-
date.setMilliseconds(0)
|
|
63
|
-
return date
|
|
64
|
-
}
|
|
61
|
+
const date = new Date();
|
|
62
|
+
date.setMilliseconds(0);
|
|
63
|
+
return date;
|
|
64
|
+
},
|
|
65
65
|
})
|
|
66
|
-
createdAt: Date
|
|
66
|
+
createdAt: Date;
|
|
67
67
|
|
|
68
68
|
@column({
|
|
69
|
-
type:
|
|
70
|
-
const date = new Date()
|
|
71
|
-
date.setMilliseconds(0)
|
|
72
|
-
return date
|
|
69
|
+
type: 'datetime', beforeSave() {
|
|
70
|
+
const date = new Date();
|
|
71
|
+
date.setMilliseconds(0);
|
|
72
|
+
return date;
|
|
73
73
|
},
|
|
74
|
-
skipUpdate: true
|
|
74
|
+
skipUpdate: true,
|
|
75
75
|
})
|
|
76
|
-
updatedAt: Date
|
|
76
|
+
updatedAt: Date;
|
|
77
77
|
|
|
78
78
|
getStructure() {
|
|
79
|
-
return EmailRecipientStruct.create(this)
|
|
79
|
+
return EmailRecipientStruct.create(this);
|
|
80
80
|
}
|
|
81
|
-
|
|
82
81
|
}
|
|
@@ -1,70 +1,69 @@
|
|
|
1
|
-
import { column, Model, SQLResultNamespacedRow } from
|
|
2
|
-
import { AnyDecoder } from
|
|
3
|
-
import { SQL, SQLSelect } from
|
|
4
|
-
import { EmailTemplate as EmailTemplateStruct, EmailTemplateType } from
|
|
5
|
-
import { v4 as uuidv4 } from
|
|
6
|
-
|
|
1
|
+
import { column, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
|
+
import { AnyDecoder } from '@simonbackx/simple-encoding';
|
|
3
|
+
import { SQL, SQLSelect } from '@stamhoofd/sql';
|
|
4
|
+
import { EmailTemplate as EmailTemplateStruct, EmailTemplateType } from '@stamhoofd/structures';
|
|
5
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Holds the challenges for a given email. User should not exist, since that would allow user enumeration attacks
|
|
10
9
|
*/
|
|
11
10
|
export class EmailTemplate extends Model {
|
|
12
|
-
static table =
|
|
11
|
+
static table = 'email_templates';
|
|
13
12
|
|
|
14
13
|
@column({
|
|
15
|
-
primary: true, type:
|
|
14
|
+
primary: true, type: 'string', beforeSave(value) {
|
|
16
15
|
return value ?? uuidv4();
|
|
17
|
-
}
|
|
16
|
+
},
|
|
18
17
|
})
|
|
19
18
|
id!: string;
|
|
20
19
|
|
|
21
|
-
@column({ type:
|
|
20
|
+
@column({ type: 'string' })
|
|
22
21
|
subject: string;
|
|
23
22
|
|
|
24
|
-
@column({ type:
|
|
23
|
+
@column({ type: 'string', nullable: true })
|
|
25
24
|
organizationId: string | null;
|
|
26
25
|
|
|
27
|
-
@column({ type:
|
|
26
|
+
@column({ type: 'string', nullable: true })
|
|
28
27
|
groupId: string | null = null;
|
|
29
28
|
|
|
30
|
-
@column({ type:
|
|
29
|
+
@column({ type: 'string', nullable: true })
|
|
31
30
|
webshopId: string | null = null;
|
|
32
31
|
|
|
33
|
-
@column({ type:
|
|
32
|
+
@column({ type: 'string' })
|
|
34
33
|
type: EmailTemplateType; // should be enumeration
|
|
35
34
|
|
|
36
|
-
/** Raw json structure to edit the template */
|
|
37
|
-
@column({ type:
|
|
35
|
+
/** Raw json structure to edit the template */
|
|
36
|
+
@column({ type: 'json', decoder: AnyDecoder })
|
|
38
37
|
json: any;
|
|
39
38
|
|
|
40
39
|
/** Template converted to HTML, with the {{replacements}} already correctly in place */
|
|
41
|
-
@column({ type:
|
|
40
|
+
@column({ type: 'string' })
|
|
42
41
|
html: string;
|
|
43
42
|
|
|
44
|
-
@column({ type:
|
|
43
|
+
@column({ type: 'string' })
|
|
45
44
|
text: string;
|
|
46
45
|
|
|
47
46
|
@column({
|
|
48
|
-
type:
|
|
49
|
-
const date = new Date()
|
|
50
|
-
date.setMilliseconds(0)
|
|
51
|
-
return date
|
|
52
|
-
}
|
|
47
|
+
type: 'datetime', beforeSave() {
|
|
48
|
+
const date = new Date();
|
|
49
|
+
date.setMilliseconds(0);
|
|
50
|
+
return date;
|
|
51
|
+
},
|
|
53
52
|
})
|
|
54
|
-
createdAt: Date
|
|
53
|
+
createdAt: Date;
|
|
55
54
|
|
|
56
55
|
@column({
|
|
57
|
-
type:
|
|
58
|
-
const date = new Date()
|
|
59
|
-
date.setMilliseconds(0)
|
|
60
|
-
return date
|
|
56
|
+
type: 'datetime', beforeSave() {
|
|
57
|
+
const date = new Date();
|
|
58
|
+
date.setMilliseconds(0);
|
|
59
|
+
return date;
|
|
61
60
|
},
|
|
62
|
-
skipUpdate: true
|
|
61
|
+
skipUpdate: true,
|
|
63
62
|
})
|
|
64
|
-
updatedAt: Date
|
|
63
|
+
updatedAt: Date;
|
|
65
64
|
|
|
66
65
|
getStructure() {
|
|
67
|
-
return EmailTemplateStruct.create(this)
|
|
66
|
+
return EmailTemplateStruct.create(this);
|
|
68
67
|
}
|
|
69
68
|
|
|
70
69
|
/**
|
|
@@ -72,16 +71,16 @@ export class EmailTemplate extends Model {
|
|
|
72
71
|
*/
|
|
73
72
|
static select() {
|
|
74
73
|
const transformer = (row: SQLResultNamespacedRow): EmailTemplate => {
|
|
75
|
-
const d = (this as typeof EmailTemplate & typeof Model).fromRow(row[this.table] as any) as EmailTemplate|undefined
|
|
74
|
+
const d = (this as typeof EmailTemplate & typeof Model).fromRow(row[this.table] as any) as EmailTemplate | undefined;
|
|
76
75
|
|
|
77
76
|
if (!d) {
|
|
78
|
-
throw new Error(
|
|
77
|
+
throw new Error('EmailTemplate not found');
|
|
79
78
|
}
|
|
80
79
|
|
|
81
80
|
return d;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const select = new SQLSelect(transformer, SQL.wildcard())
|
|
85
|
-
return select.from(SQL.table(this.table))
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const select = new SQLSelect(transformer, SQL.wildcard());
|
|
84
|
+
return select.from(SQL.table(this.table));
|
|
86
85
|
}
|
|
87
86
|
}
|