155 lines
4.8 KiB
TypeScript
155 lines
4.8 KiB
TypeScript
import express from "express";
|
|
|
|
import {IWorkLenzRequest} from "../interfaces/worklenz-request";
|
|
import {IWorkLenzResponse} from "../interfaces/worklenz-response";
|
|
import {ITaskMovedToDoneRecord} from "../interfaces/task-moved-to-done";
|
|
import {IProjectDigest} from "../interfaces/project-digest";
|
|
import {ICommentEmailNotification} from "../interfaces/comment-email-notification";
|
|
|
|
const router = express.Router({strict: false});
|
|
|
|
const TEMPLATES_BASE = "../../worklenz-email-templates";
|
|
|
|
router.get("/task-assignee-change", (req: IWorkLenzRequest, res: IWorkLenzResponse) => {
|
|
const sampleData = {
|
|
"name": "Dinindu Wanniarachchi",
|
|
"email": "dinindu.office@gmail.com",
|
|
"team_member_id": "e3f95f03-5ea7-4cf7-9f61-123c55d8f6d9",
|
|
"teams": [
|
|
{
|
|
"id": "16c4ac3b-27c7-45e5-b32e-b78cc5d354b9",
|
|
"name": "Automation",
|
|
"team_member_id": "e3f95f03-5ea7-4cf7-9f61-123c55d8f6d9",
|
|
"projects": [
|
|
{
|
|
"id": "6de9c9df-2193-4212-8d64-9dfc36a83ed2",
|
|
"name": "Allen LLC",
|
|
"tasks": [
|
|
{
|
|
"name": "Soloman's Island Project - SIM Registration + Central DB + KYC",
|
|
"updater_name": "Dinindu",
|
|
"members": "Dinindu, Dinindu Wanniarachchi, Pasindu Ishan"
|
|
},
|
|
{
|
|
"name": "Theory everyone send half sure.",
|
|
"updater_name": "Dinindu",
|
|
"members": "Dinindu Wanniarachchi"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "33ad4f38-27a9-450d-8524-74e9469bca2b",
|
|
"name": "AA",
|
|
"team_member_id": "17a4a959-d83a-41e8-bcc6-6c9dca1eb021",
|
|
"projects": []
|
|
}
|
|
]
|
|
};
|
|
res.render(`${TEMPLATES_BASE}/email-notifications/task-assignee-change`, sampleData);
|
|
});
|
|
|
|
router.get("/daily-digest", (req: IWorkLenzRequest, res: IWorkLenzResponse) => {
|
|
|
|
const teams = [
|
|
{
|
|
id: "16c4ac3b-27c7-45e5-b32e-b78cc5d354b9",
|
|
name: "Automation",
|
|
team_member_id: "e3f95f03-5ea7-4cf7-9f61-123c55d8f6d9",
|
|
projects: [
|
|
{
|
|
id: "6de9c9df-2193-4212-8d64-9dfc36a83ed2",
|
|
name: "Allen LLC",
|
|
tasks: [
|
|
{
|
|
name: "Soloman's Island Project - SIM Registration + Central DB + KYC",
|
|
members: "Dinindu, Dinindu Wanniarachchi, Pasindu Ishan"
|
|
},
|
|
{
|
|
name: "Theory everyone send half sure.",
|
|
members: "Dinindu Wanniarachchi"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: "33ad4f38-27a9-450d-8524-74e9469bca2b",
|
|
name: "AA",
|
|
team_member_id: "17a4a959-d83a-41e8-bcc6-6c9dca1eb021",
|
|
projects: []
|
|
}
|
|
];
|
|
|
|
const sampleData = {
|
|
greeting: "Hi Dinindu",
|
|
note: "Here's your Monday update!",
|
|
email: "dinindu.office@gmail.com",
|
|
recently_assigned: teams,
|
|
overdue: teams,
|
|
recently_completed: teams
|
|
};
|
|
res.render(`${TEMPLATES_BASE}/email-notifications/daily-digest`, sampleData);
|
|
});
|
|
|
|
router.get("/task-moved-to-done", (req: IWorkLenzRequest, res: IWorkLenzResponse) => {
|
|
|
|
const task = {
|
|
name: "Soloman's Island Project - SIM Registration + Central DB + KYC",
|
|
members: "Dinindu, Dinindu Wanniarachchi, Pasindu Ishan",
|
|
url: "http://localhost:4200/worklenz/projects/6de9c9df-2193-4212-8d64-9dfc36a83ed2?tab=tasks-list&task=f8b3fc45-a28b-4d8f-985e-9e43f8577aa8",
|
|
team_name: "Automation",
|
|
project_name: "Allen LLC"
|
|
};
|
|
|
|
const sampleData: ITaskMovedToDoneRecord = {
|
|
greeting: "Hi Dinindu",
|
|
summary: "Great news! a task just got completed!",
|
|
settings_url: "/settings",
|
|
task
|
|
};
|
|
res.render(`${TEMPLATES_BASE}/email-notifications/task-moved-to-done`, sampleData);
|
|
});
|
|
|
|
router.get("/project-daily-digest", (req: IWorkLenzRequest, res: IWorkLenzResponse) => {
|
|
const sampleData: IProjectDigest = {
|
|
id: "",
|
|
name: "Worklenz",
|
|
team_name: "Ceydigital",
|
|
greeting: `Hi Dinindu`,
|
|
due_tomorrow: [],
|
|
settings_url: "/",
|
|
project_url: "/",
|
|
subscribers: [],
|
|
summary: `Here's the "Worklenz" summary | Ceydigital`,
|
|
today_completed: [
|
|
{
|
|
id: "abc123",
|
|
name: "Sample Task",
|
|
url: "/",
|
|
members: "John Doe, Jane Smith",
|
|
}
|
|
],
|
|
today_new: [],
|
|
};
|
|
res.render(`${TEMPLATES_BASE}/email-notifications/project-daily-digest`, sampleData);
|
|
});
|
|
|
|
router.get("/task-comment", (req: IWorkLenzRequest, res: IWorkLenzResponse) => {
|
|
const data: ICommentEmailNotification = {
|
|
greeting: "Hi Dinindu",
|
|
summary: `"Dinindu Office" added a new comment on "Email Notifications"`,
|
|
team: "Ceydigital",
|
|
project_name: "Worklenz",
|
|
comment: "Any updates on this?",
|
|
task: "Email Notifications",
|
|
settings_url: "/",
|
|
task_url: "/",
|
|
};
|
|
|
|
res.render(`${TEMPLATES_BASE}/email-notifications/task-comment`, data);
|
|
});
|
|
|
|
export default router;
|