Skip to content

Commit 1b5031a

Browse files
authored
feat: Send email upon company registration to company donations team (#686)
1 parent ab1ccd8 commit 1b5031a

File tree

6 files changed

+100
-1
lines changed

6 files changed

+100
-1
lines changed

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,4 @@ CACHE_TTL=30000
111111
## AdminEmail ##
112112
##############
113113
CAMPAIGN_COORDINATOR_EMAIL=[email protected]
114+
CORPORATE_DONORS_EMAIL=

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,4 @@ CACHE_TTL=30000
111111
## AdminEmail ##
112112
##############
113113
CAMPAIGN_COORDINATOR_EMAIL=[email protected]
114+
CORPORATE_DONORS_EMAIL=
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"subject": "Нова корпоративна регистрация"
3+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<mjml>
2+
<mj-body background-color="#ffffff" font-size="13px">
3+
<mj-section
4+
background-color="#009FE3"
5+
vertical-align="top"
6+
padding-bottom="0px"
7+
padding-top="0">
8+
<mj-column vertical-align="top" width="100%">
9+
<mj-text
10+
align="center"
11+
color="#ffffff"
12+
font-size="45px"
13+
font-weight="bold"
14+
font-family="open Sans Helvetica, Arial, sans-serif"
15+
padding-left="25px"
16+
padding-right="25px"
17+
padding-top="50px">
18+
{{corporateActivationTitle}}
19+
</mj-text>
20+
</mj-column>
21+
</mj-section>
22+
<mj-section background-color="#009fe3" padding-bottom="20px">
23+
<mj-column vertical-align="middle" width="100%">
24+
<mj-text
25+
align="left"
26+
color="#ffffff"
27+
font-size="22px"
28+
font-family="open Sans Helvetica, Arial, sans-serif"
29+
padding-left="25px"
30+
padding-right="25px">
31+
<br /><br />
32+
</mj-text>
33+
<mj-text
34+
align="center"
35+
color="#ffffff"
36+
font-size="24px"
37+
font-family="open Sans Helvetica, Arial, sans-serif"
38+
padding-left="25px"
39+
padding-right="25px">
40+
Заявена е нова корпоративна регистрация от {{companyName}} с представител
41+
{{representitiveName}}. За повече информация може да свържете с тях на
42+
{{representitiveEmail}}.
43+
</mj-text>
44+
<mj-button
45+
background-color="#feeb35"
46+
font-family="Helvetica, Arial, sans-serif"
47+
font-size="17px"
48+
border-radius="30px"
49+
color="#000000"
50+
padding="15px 30px"
51+
href="{{activationLink}}"
52+
target="_blank">
53+
Активирай акаунт
54+
</mj-button>
55+
<mj-text
56+
align="left"
57+
color="#ffffff"
58+
font-size="15px"
59+
font-family="open Sans Helvetica, Arial, sans-serif"
60+
padding-left="25px"
61+
padding-right="25px">
62+
Поздрави, <br />
63+
Екипът на Подкрепи.бг
64+
</mj-text>
65+
</mj-column>
66+
</mj-section>
67+
</mj-body>
68+
</mjml>

apps/api/src/auth/auth.service.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { UpdatePersonDto } from '../person/dto/update-person.dto'
3030
import { ForgottenPasswordEmailDto } from './dto/forgot-password.dto'
3131
import { JwtService } from '@nestjs/jwt'
3232
import { EmailService } from '../email/email.service'
33-
import { ForgottenPasswordMailDto } from '../email/template.interface'
33+
import { ForgottenPasswordMailDto, CorporateActivationEmailDto } from '../email/template.interface'
3434
import { NewPasswordDto } from './dto/recovery-password.dto'
3535
import { MarketingNotificationsService } from '../notifications/notifications.service'
3636
import { PersonService } from '../person/person.service'
@@ -230,6 +230,21 @@ export class AuthService {
230230
company = await this.createCompany(registerDto)
231231
}
232232
person = await this.createPerson(registerDto, user.id, company?.id)
233+
234+
if (isCorporateReg) {
235+
const mail = new CorporateActivationEmailDto({
236+
corporateActivationTitle: 'Нова корпоративна регистрация',
237+
companyName: registerDto.companyName || '',
238+
representitiveName: `${registerDto.firstName} ${registerDto.lastName}`,
239+
representitiveEmail: registerDto.email,
240+
activationLink: `${this.config.get('APP_URL')}/admin/users?search=${registerDto.email}`,
241+
})
242+
await this.sendEmail.sendFromTemplate(
243+
mail,
244+
{ to: [this.config.get('CORPORATE_DONORS_EMAIL', '')] },
245+
{ bypassUnsubscribeManagement: { enable: true } }
246+
)
247+
}
233248
} catch (error) {
234249
const response = {
235250
error: error.message,

apps/api/src/email/template.interface.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export enum TemplateType {
1616
refundDonation = 'refund-donation',
1717
createCampaignApplicationAdmin = 'create-campaign-application-admin',
1818
createCampaignApplicationOrganizer = 'create-campaign-application-organizer',
19+
corporateActivation = 'corporate-activation',
1920
}
2021
export type TemplateTypeKeys = keyof typeof TemplateType
2122
export type TemplateTypeValues = typeof TemplateType[TemplateTypeKeys]
@@ -122,3 +123,13 @@ export class CreateCampaignApplicationOrganizerEmailDto extends EmailTemplate<{
122123
}> {
123124
name = TemplateType.createCampaignApplicationOrganizer
124125
}
126+
127+
export class CorporateActivationEmailDto extends EmailTemplate<{
128+
corporateActivationTitle: string
129+
companyName: string
130+
representitiveName: string
131+
representitiveEmail: string
132+
activationLink: string
133+
}> {
134+
name = TemplateType.corporateActivation
135+
}

0 commit comments

Comments
 (0)