Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
23a1cb7
feat: add backend implementation for configurable email templates
Jul 15, 2025
ecb009e
Merge branch 'develop' into add-configurable-email-templates
Jul 15, 2025
bbf6b81
feat: add skeleton for frontend implementation of configurable email …
Jul 17, 2025
16fc59e
Merge branch 'develop' into add-configurable-email-templates
Jul 17, 2025
c032423
feat: update backed for email templates
Jul 21, 2025
892ca3b
Merge branch 'develop' into add-configurable-email-templates
Jul 21, 2025
4647053
feat: update migration script
Jul 22, 2025
537f445
--amend
Jul 22, 2025
2ade6c1
Merge branch 'develop' into add-configurable-email-templates
Jul 22, 2025
ac9919e
feat: update email templates backend
Aug 18, 2025
bb3ae4b
Merge branch 'develop' into add-configurable-email-templates
Aug 21, 2025
2ed631c
feat: update graphql
Aug 21, 2025
0a69611
Merge branch 'develop' into add-configurable-email-templates
Aug 21, 2025
0301e94
feat: add validation for email template delete
Aug 25, 2025
9828a7e
feat: start backend test implementation
Sep 1, 2025
209bcb9
Merge branch 'develop' into add-configurable-email-templates
Sep 1, 2025
8ac3a81
feat: add backend tests
Sep 2, 2025
e9cb621
feat: fix email template events
Sep 2, 2025
593c1b0
Merge branch 'develop' into add-configurable-email-templates
Sep 8, 2025
7f035d1
fix: restore vite.config.mts
Sep 8, 2025
8d04cd8
fix: e2e tests
Sep 8, 2025
3884223
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 8, 2025
6e808f6
fix: update email folder for temporary template files
Sep 9, 2025
3306878
Merge branch 'add-configurable-email-templates' of https://github.com…
Sep 9, 2025
62e48a5
fix: update Mail service for e2e run
Sep 9, 2025
19fac52
fix: update Mail service for e2e run
Sep 9, 2025
97683e4
fix: change email templates verification
Sep 10, 2025
868727a
fix: update email temp directory
Sep 10, 2025
0336aec
fix: update e2d for email templates
Sep 10, 2025
048b88e
fix: update e2d for email templates
Sep 10, 2025
0061bcf
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 11, 2025
75ec614
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 11, 2025
e5adfe1
fix: complete failed merge
Sep 11, 2025
bbc250c
fix: delete unnecessary db seed file
Sep 12, 2025
bcc44ae
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 12, 2025
2bd3ea2
fix: add logs
Sep 15, 2025
7d15582
Merge branch 'add-configurable-email-templates' of https://github.com…
Sep 15, 2025
e0eb37e
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 15, 2025
ce7e11b
fix: change temporary template file name
Sep 15, 2025
be11205
fix: add check for template file existence
Sep 16, 2025
36e4341
fix: add logs
Sep 16, 2025
5d5ecb0
fix: update e2e tests
Sep 16, 2025
f2af9bc
fix: update e2e tests
Sep 16, 2025
c441c9f
fix: update test-build.yml
Sep 16, 2025
09ebc7c
Merge branch 'develop' into add-configurable-email-templates
Sep 17, 2025
f4a4f61
Merge branch 'develop' into add-configurable-email-templates
Sep 17, 2025
c3602ec
Merge branch 'develop' into add-configurable-email-templates
Sep 25, 2025
9124e43
fix email template create patch to deal with NULL array length
Sep 25, 2025
434a482
Merge branch 'develop' into add-configurable-email-templates
Sep 29, 2025
61adfb7
Merge branch 'develop' into add-configurable-email-templates
gnyiri Sep 29, 2025
eda5b1d
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 1, 2025
587ad82
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 1, 2025
5d66635
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 2, 2025
8e0c4c3
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 3, 2025
481d4b8
Merge branch 'develop' into add-configurable-email-templates
Oct 10, 2025
9cd5c9c
Merge branch 'develop' into add-configurable-email-templates
Oct 13, 2025
3bfb6bc
fix: change resetDb in statusActions.ts.cy
Oct 13, 2025
d561534
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 15, 2025
6381bc5
Merge branch 'develop' into add-configurable-email-templates
gnyiri Oct 15, 2025
89d9645
Merge
Oct 28, 2025
bc4f54f
Merge
Nov 6, 2025
cdc1c05
Merge branch 'develop' into add-configurable-email-templates
Nov 17, 2025
b3fb8a6
fix: review comments
Nov 18, 2025
d2657ca
fix: build error
Nov 19, 2025
18f6995
Merge branch 'develop' into add-configurable-email-templates
gnyiri Nov 19, 2025
b599dc2
fix: review comments
Nov 24, 2025
4fc0ff7
Merge branch 'develop' into add-configurable-email-templates
Nov 24, 2025
23b7078
fix: email template delete
Nov 24, 2025
039f3c8
fix: backend test
Nov 24, 2025
60aa48c
fix: e2e tests
Nov 25, 2025
5235f1b
fix: review findings
Jan 5, 2026
0c9625d
Merge branch 'develop' into add-configurable-email-templates
Jan 5, 2026
09bbddd
fix: use rendered html directly when sending email
Jan 6, 2026
60667c4
fix: backend tests
Jan 7, 2026
6464c61
fix: e2e tests
Jan 7, 2026
39dd7f5
fix: e2e tests
Jan 7, 2026
1958cb3
fix: e2e tests
Jan 7, 2026
59cf824
fix: e2e tests
Jan 8, 2026
ccd1efa
fix: e2e tests
Jan 9, 2026
b362fdf
fix: backend tests
Jan 9, 2026
ab6bb33
fix: remove migration part of DB script
Jan 12, 2026
27e797c
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 16, 2026
f613257
Merge branch 'develop' into add-configurable-email-templates
Jan 20, 2026
febf06b
Merge branch 'develop' into add-configurable-email-templates
Jan 20, 2026
333a24e
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 20, 2026
09753e2
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 22, 2026
eef02e8
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 23, 2026
c2db754
fix: rename emailTemplateId to emailTemplateName
Jan 27, 2026
d5cfb10
Merge branch 'develop' into add-configurable-email-templates
Jan 27, 2026
b9d22f2
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 27, 2026
56bf649
Merge branch 'develop' into add-configurable-email-templates
gnyiri Jan 27, 2026
8deded2
Merge branch 'develop' into add-configurable-email-templates
Jan 28, 2026
b035a01
Merge branch 'add-configurable-email-templates' of https://github.com…
Jan 28, 2026
085b07d
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 6, 2026
3cdca8f
Merge branch 'develop' into add-configurable-email-templates
mutambaraf Feb 9, 2026
06990cf
fix: look for the email template file first and only use the DB if no…
Feb 10, 2026
3634ed6
add email template option to use subject and body from template file
Feb 11, 2026
0d500d3
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 12, 2026
23d3444
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 13, 2026
68642d5
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 16, 2026
27b3069
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 16, 2026
b431871
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 17, 2026
82ae153
fix: review findings
Feb 18, 2026
74b539a
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 18, 2026
1ba552b
Merge branch 'add-configurable-email-templates' of https://github.com…
Feb 19, 2026
485f69b
Merge branch 'develop' into add-configurable-email-templates
Feb 19, 2026
41a16c6
fix: review findings
Feb 20, 2026
7ef1077
Merge branch 'develop' into add-configurable-email-templates
Feb 23, 2026
09229a6
fix: backend tests for email templates
Feb 23, 2026
48d6389
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 23, 2026
0303f95
fix: e2e tests for statusActions
Feb 23, 2026
34fd178
fix: e2e tests for statusActions
Feb 23, 2026
5c626af
fix: e2e tests for statusActions
Feb 24, 2026
96a4678
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 24, 2026
85e6cc7
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 24, 2026
1a81547
fix: lint
Feb 24, 2026
33c8764
fix: lint
Feb 25, 2026
9d30834
fix: validation of email template delete
Feb 25, 2026
bec1e3d
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 25, 2026
2d690da
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 25, 2026
aa666db
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 25, 2026
2574725
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 27, 2026
c3620e4
Merge branch 'develop' into add-configurable-email-templates
gnyiri Feb 27, 2026
f0b8daa
fix: import order
Feb 27, 2026
47ac413
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 2, 2026
f5ddfd0
fix: backend tests for essEmailHandler
Mar 2, 2026
7cc346b
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 2, 2026
08016f7
fix: backend tests for essEmailHandler
Mar 2, 2026
9327fbb
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 2, 2026
400bbba
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 3, 2026
eebe042
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 3, 2026
0ea99d9
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 4, 2026
b8c01e7
Merge branch 'develop' into add-configurable-email-templates
mutambaraf Mar 4, 2026
0c81007
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 5, 2026
9037a29
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 6, 2026
e979bb4
Merge branch 'develop' into add-configurable-email-templates
mutambaraf Mar 9, 2026
5445336
Merge branch 'develop' into add-configurable-email-templates
bolmsten Mar 10, 2026
44aabce
Merge branch 'develop' into add-configurable-email-templates
gnyiri Mar 11, 2026
f67f9a9
Merge branch 'develop' into add-configurable-email-templates
yoganandaness Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,7 @@ jobs:
EMAIL_AUTH_HOST: exchsmtp.stfc.ac.uk
EMAIL_TEMPLATE_PATH: /config/emails/
EMAIL_FOOTER_IMAGE_PATH: /config/logos/STFC-Logo-small.png
SKIP_SMTP_EMAIL_SENDING: true
EXTERNAL_AUTH_LOGIN_URL: http://localhost:9003/auth/Login.aspx
EXTERNAL_AUTH_LOGOUT_URL: http://localhost:9003/auth/Login.aspx
EXTERNAL_UOWS_API_URL: http://localhost:1080/users-service
Expand Down
18 changes: 18 additions & 0 deletions apps/backend/db_patches/0202_CreateEmailTemplatesTable.sql
Comment thread
gnyiri marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
DO
$$
BEGIN
IF register_patch('CreateEmailTemplatesTable.sql', 'Gergely Nyiri', 'Create email templates table', '2025-07-15') THEN
CREATE TABLE IF NOT EXISTS email_templates (
email_template_id serial PRIMARY KEY,
created_by INT NOT NULL REFERENCES users(user_id),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
name varchar(100) NOT NULL UNIQUE,
description varchar(255) NOT NULL,
use_template_file boolean DEFAULT FALSE,
subject varchar(160),
body text
);
END IF;
END;
$$
LANGUAGE plpgsql;
16 changes: 16 additions & 0 deletions apps/backend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions apps/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
"@types/content-disposition": "^0.5.4",
"@types/cors": "^2.8.13",
"@types/cron": "^1.7.3",
"@types/ejs": "^3.1.5",
Comment thread
gnyiri marked this conversation as resolved.
"@types/email-templates": "^8.0.4",
"@types/express": "^4.17.13",
"@types/express-jwt": "^6.0.4",
Expand All @@ -106,6 +107,7 @@
"@types/node": "^22.13.10",
"@types/pg": "^8.11.5",
"@types/pg-large-object": "^2.0.7",
"@types/pug": "^2.0.10",
"@types/sanitize-html": "^2.6.2",
"@types/simple-oauth2": "^4.1.1",
"@types/sinon": "^9.0.11",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'reflect-metadata';
import { faker } from '@faker-js/faker';
import 'reflect-metadata';
import sinon from 'sinon';
import { container } from 'tsyringe';

import { Tokens } from '../../config/Tokens';
import { EmailTemplateId } from '../../eventHandlers/email/essEmailHandler';
import { EmailTemplateId } from '../../eventHandlers/email/emailTemplateId';
import { Invite } from '../../models/Invite';
import { RoleClaim } from '../../models/RoleClaim';
import { SettingsId } from '../../models/Settings';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ const checkInviteReminder = async () => {
try {
await mailService.sendMail({
content: {
template_id: templateId,
template: templateId,
},
substitution_data: {
email: invite.email,
Expand Down
4 changes: 4 additions & 0 deletions apps/backend/src/buildContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import PDFServices from './middlewares/factory/factoryServices';
import AdminMutations from './mutations/AdminMutations';
import CallMutations from './mutations/CallMutations';
import DataAccessUsersMutations from './mutations/DataAccessUsersMutations';
import EmailTemplateMutations from './mutations/EmailTemplateMutations';
import ExperimentMutations from './mutations/ExperimentMutation';
import ExperimentSafetyPdfTemplateMutations from './mutations/ExperimentSafetyPdfTemplateMutations';
import FapMutations from './mutations/FapMutations';
Expand Down Expand Up @@ -35,6 +36,7 @@ import WorkflowMutations from './mutations/WorkflowMutations';
import AdminQueries from './queries/AdminQueries';
import CallQueries from './queries/CallQueries';
import DataAccessUsersQueries from './queries/DataAccessUsersQueries';
import EmailTemplateQueries from './queries/EmailTemplateQueries';
import EventLogQueries from './queries/EventLogQueries';
import ExperimentQueries from './queries/ExperimentQueries';
import ExperimentSafetyPdfTemplateQueries from './queries/ExperimentSafetyPdfTemplateQueries';
Expand Down Expand Up @@ -103,6 +105,7 @@ const context: BasicResolverContext = {
settings: container.resolve(SettingsQueries),
tag: container.resolve(TagQueries),
experiment: container.resolve(ExperimentQueries),
emailTemplate: container.resolve(EmailTemplateQueries),
},
mutations: {
admin: container.resolve(AdminMutations),
Expand Down Expand Up @@ -135,6 +138,7 @@ const context: BasicResolverContext = {
workflow: container.resolve(WorkflowMutations),
tag: container.resolve(TagMutations),
experiment: container.resolve(ExperimentMutations),
emailTemplate: container.resolve(EmailTemplateMutations),
},
clients: {
scheduler: async () => {
Expand Down
1 change: 1 addition & 0 deletions apps/backend/src/config/Tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export const Tokens = {
DataAccessUsersDataSource: Symbol('DataAccessUsersDataSource'),
DataAccessUsersAuthorization: Symbol('DataAccessUsersAuthorization'),
EmailEventHandler: Symbol('EmailEventHandler'),
EmailTemplateDataSource: Symbol('EmailTemplateDataSource'),
EventBus: Symbol('EventBus'),
EventLogsDataSource: Symbol('EventLogsDataSource'),
FeedbackDataSource: Symbol('FeedbackDataSource'),
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigDefault.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { PostgresAdminDataSourceWithAutoUpgrade } from '../datasources/postgres/
import PostgresCallDataSource from '../datasources/postgres/CallDataSource';
import PostgresCoProposerClaimDataSource from '../datasources/postgres/CoProposerClaimDataSource';
import PostgresDataAccessUsersDataSource from '../datasources/postgres/DataAccessUsersDataSource';
import PostgresEmailTemplateDataSource from '../datasources/postgres/EmailTemplateDataSource';
import PostgresEventLogsDataSource from '../datasources/postgres/EventLogsDataSource';
import PostgresExperimentDataSource from '../datasources/postgres/ExperimentDataSource';
import PostgresExperimentSafetyPdfTemplateDataSource from '../datasources/postgres/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -122,6 +123,7 @@ mapClass(Tokens.WorkflowDataSource, PostgresWorkflowDataSource);
mapClass(Tokens.StatusDataSource, PostgresStatusDataSource);
mapClass(Tokens.ExperimentDataSource, PostgresExperimentDataSource);
mapClass(Tokens.TagDataSource, PostgresTagDataSource);
mapClass(Tokens.EmailTemplateDataSource, PostgresEmailTemplateDataSource);

mapClass(Tokens.UserAuthorization, OAuthAuthorization);
mapClass(Tokens.ProposalAuthorization, ProposalAuthorization);
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigE2E.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import PostgresAdminDataSource from '../datasources/postgres/AdminDataSource';
import PostgresCallDataSource from '../datasources/postgres/CallDataSource';
import PostgresCoProposerClaimDataSource from '../datasources/postgres/CoProposerClaimDataSource';
import PostgresDataAccessUsersDataSource from '../datasources/postgres/DataAccessUsersDataSource';
import PostgresEmailTemplateDataSource from '../datasources/postgres/EmailTemplateDataSource';
import PostgresEventLogsDataSource from '../datasources/postgres/EventLogsDataSource';
import PostgresExperimentDataSource from '../datasources/postgres/ExperimentDataSource';
import PostgresExperimentSafetyPdfTemplateDataSource from '../datasources/postgres/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -112,6 +113,7 @@ mapClass(Tokens.StatusActionsLogsDataSource, StatusActionsLogsDataSource);
mapClass(Tokens.WorkflowDataSource, PostgresWorkflowDataSource);
mapClass(Tokens.StatusDataSource, PostgresStatusDataSource);
mapClass(Tokens.TagDataSource, PostgresTagDataSource);
mapClass(Tokens.EmailTemplateDataSource, PostgresEmailTemplateDataSource);

mapClass(Tokens.ExperimentDataSource, PostgresExperimentDataSource);
mapClass(Tokens.UserAuthorization, OAuthAuthorization);
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigELI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { PostgresAdminDataSourceWithAutoUpgrade } from '../datasources/postgres/
import PostgresCallDataSource from '../datasources/postgres/CallDataSource';
import PostgresCoProposerClaimDataSource from '../datasources/postgres/CoProposerClaimDataSource';
import PostgresDataAccessUsersDataSource from '../datasources/postgres/DataAccessUsersDataSource';
import PostgresEmailTemplateDataSource from '../datasources/postgres/EmailTemplateDataSource';
import PostgresEventLogsDataSource from '../datasources/postgres/EventLogsDataSource';
import PostgresExperimentDataSource from '../datasources/postgres/ExperimentDataSource';
import PostgresExperimentSafetyPdfTemplateDataSource from '../datasources/postgres/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -115,6 +116,7 @@ mapClass(Tokens.StatusActionsLogsDataSource, StatusActionsLogsDataSource);
mapClass(Tokens.WorkflowDataSource, PostgresWorkflowDataSource);
mapClass(Tokens.StatusDataSource, PostgresStatusDataSource);
mapClass(Tokens.TagDataSource, PostgresTagDataSource);
mapClass(Tokens.EmailTemplateDataSource, PostgresEmailTemplateDataSource);

mapClass(Tokens.ExperimentDataSource, PostgresExperimentDataSource);
mapClass(Tokens.UserAuthorization, ELIUserAuthorization);
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigESS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { PostgresAdminDataSourceWithAutoUpgrade } from '../datasources/postgres/
import PostgresCallDataSource from '../datasources/postgres/CallDataSource';
import PostgresCoProposerClaimDataSource from '../datasources/postgres/CoProposerClaimDataSource';
import PostgresDataAccessUsersDataSource from '../datasources/postgres/DataAccessUsersDataSource';
import PostgresEmailTemplateDataSource from '../datasources/postgres/EmailTemplateDataSource';
import PostgresEventLogsDataSource from '../datasources/postgres/EventLogsDataSource';
import PostgresExperimentDataSource from '../datasources/postgres/ExperimentDataSource';
import PostgresExperimentSafetyPdfTemplateDataSource from '../datasources/postgres/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -116,6 +117,7 @@ mapClass(Tokens.TagDataSource, PostgresTagDataSource);
mapClass(Tokens.WorkflowDataSource, PostgresWorkflowDataSource);
mapClass(Tokens.StatusDataSource, PostgresStatusDataSource);
mapClass(Tokens.ExperimentDataSource, PostgresExperimentDataSource);
mapClass(Tokens.EmailTemplateDataSource, PostgresEmailTemplateDataSource);

mapClass(Tokens.UserAuthorization, OAuthAuthorization);
mapClass(Tokens.ProposalAuthorization, ProposalAuthorization);
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigSTFC.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { PostgresAdminDataSourceWithAutoUpgrade } from '../datasources/postgres/
import PostgresCallDataSource from '../datasources/postgres/CallDataSource';
import PostgresCoProposerClaimDataSource from '../datasources/postgres/CoProposerClaimDataSource';
import PostgresDataAccessUsersDataSource from '../datasources/postgres/DataAccessUsersDataSource';
import PostgresEmailTemplateDataSource from '../datasources/postgres/EmailTemplateDataSource';
import PostgresEventLogsDataSource from '../datasources/postgres/EventLogsDataSource';
import PostgresExperimentDataSource from '../datasources/postgres/ExperimentDataSource';
import PostgresExperimentSafetyPdfTemplateDataSource from '../datasources/postgres/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -112,6 +113,7 @@ mapClass(Tokens.StatusActionsLogsDataSource, StatusActionsLogsDataSource);
mapClass(Tokens.WorkflowDataSource, PostgresWorkflowDataSource);
mapClass(Tokens.StatusDataSource, PostgresStatusDataSource);
mapClass(Tokens.TagDataSource, PostgresTagDataSource);
mapClass(Tokens.EmailTemplateDataSource, PostgresEmailTemplateDataSource);

mapClass(Tokens.ExperimentDataSource, PostgresExperimentDataSource);
mapClass(Tokens.UserAuthorization, StfcUserAuthorization);
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/src/config/dependencyConfigTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { AdminDataSourceMock } from '../datasources/mockups/AdminDataSource';
import { CallDataSourceMock } from '../datasources/mockups/CallDataSource';
import { CoProposerClaimDataSourceMock } from '../datasources/mockups/CoProposerClaimDataSource';
import MockDataAccessUsersDataSource from '../datasources/mockups/DataAccessUsersDataSource';
import { EmailTemplateDataSourceMock } from '../datasources/mockups/EmailTemplateDataSource';
import { EventLogsDataSourceMock } from '../datasources/mockups/EventLogsDataSource';
import { ExperimentDataSourceMock } from '../datasources/mockups/ExperimentDataSource';
import { ExperimentSafetyPdfTemplateDataSourceMock } from '../datasources/mockups/ExperimentSafetyPdfTemplateDataSource';
Expand Down Expand Up @@ -104,6 +105,7 @@ mapClass(Tokens.VisitRegistrationAuthorization, VisitRegistrationAuthorization);
mapClass(Tokens.PredefinedMessageDataSource, PredefinedMessageDataSourceMock);
mapClass(Tokens.StatusActionsLogsDataSource, StatusActionsLogsDataSourceMock);
mapClass(Tokens.TagDataSource, TagDataSourceMock);
mapClass(Tokens.EmailTemplateDataSource, EmailTemplateDataSourceMock);

mapClass(Tokens.UserAuthorization, UserAuthorizationMock);
mapClass(Tokens.ProposalAuthorization, ProposalAuthorization);
Expand Down
4 changes: 4 additions & 0 deletions apps/backend/src/context/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { UserWithRole } from '../models/User';
import AdminMutations from '../mutations/AdminMutations';
import CallMutations from '../mutations/CallMutations';
import DataAccessUsersMutations from '../mutations/DataAccessUsersMutations';
import EmailTemplateMutations from '../mutations/EmailTemplateMutations';
import ExperimentMutations from '../mutations/ExperimentMutation';
import ExperimentSafetyPdfTemplateMutations from '../mutations/ExperimentSafetyPdfTemplateMutations';
import FapMutations from '../mutations/FapMutations';
Expand Down Expand Up @@ -34,6 +35,7 @@ import WorkflowMutations from '../mutations/WorkflowMutations';
import AdminQueries from '../queries/AdminQueries';
import CallQueries from '../queries/CallQueries';
import DataAccessUsersQueries from '../queries/DataAccessUsersQueries';
import EmailTemplateQueries from '../queries/EmailTemplateQueries';
import EventLogQueries from '../queries/EventLogQueries';
import ExperimentQueries from '../queries/ExperimentQueries';
import ExperimentSafetyPdfTemplateQueries from '../queries/ExperimentSafetyPdfTemplateQueries';
Expand Down Expand Up @@ -99,6 +101,7 @@ interface ResolverContextQueries {
statusAction: StatusActionQueries;
tag: TagQueries;
experiment: ExperimentQueries;
emailTemplate: EmailTemplateQueries;
}

interface ResolverContextMutations {
Expand Down Expand Up @@ -130,6 +133,7 @@ interface ResolverContextMutations {
workflow: WorkflowMutations;
tag: TagMutations;
experiment: ExperimentMutations;
emailTemplate: EmailTemplateMutations;
}
interface ResolverContextServices {
pdfServices: PDFServices;
Expand Down
30 changes: 30 additions & 0 deletions apps/backend/src/datasources/EmailTemplateDataSource.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { EmailTemplate } from '../models/EmailTemplate';
import { EmailTemplatesFilter } from '../resolvers/queries/EmailTemplatesQuery';

export interface EmailTemplateDataSource {
getEmailTemplate(id: number): Promise<EmailTemplate | null>;
getEmailTemplateByName(name: string): Promise<EmailTemplate | null>;
getEmailTemplates(
filter?: EmailTemplatesFilter
): Promise<{ totalCount: number; emailTemplates: EmailTemplate[] }>;

create(
createdByUserId: number,
name: string,
description: string,
useTemplateFile: boolean,
subject?: string,
body?: string
): Promise<EmailTemplate>;

update(
id: number,
name: string,
description: string,
useTemplateFile: boolean,
subject?: string,
body?: string
): Promise<EmailTemplate>;

delete(id: number): Promise<EmailTemplate>;
}
4 changes: 4 additions & 0 deletions apps/backend/src/datasources/StatusActionsDataSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ export interface StatusActionsDataSource {
workflowConnectionId: number,
statusActionId: number
): Promise<ConnectionHasStatusAction>;
hasEmailTemplateIdConnectionStatusAction(
emailTemplateId: number
): Promise<boolean>;

updateConnectionStatusAction(
data: ConnectionHasStatusAction
): Promise<ConnectionHasStatusAction>;
Expand Down
Loading
Loading