Initial commit: Angular frontend and Expressjs backend
This commit is contained in:
75
worklenz-backend/src/cron_jobs/helpers.ts
Normal file
75
worklenz-backend/src/cron_jobs/helpers.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import {ITaskAssignmentModelProject, ITaskAssignmentModelTeam} from "../interfaces/task-assignments-model";
|
||||
import {isLocalServer} from "../shared/utils";
|
||||
|
||||
export function mapMembersWithAnd(members: string) {
|
||||
const $members = members.split(",").map(m => m.trim());
|
||||
if ($members.length > 1) {
|
||||
const last = $members.pop();
|
||||
const end = last ? ` and ${last}` : "";
|
||||
return `${$members.join(", ")}${end}`;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
export function getBaseUrl() {
|
||||
if (isLocalServer()) return `http://${process.env.HOSTNAME}`;
|
||||
return `https://${process.env.HOSTNAME}`;
|
||||
}
|
||||
|
||||
function mapMembers(project: ITaskAssignmentModelProject) {
|
||||
for (const task of project.tasks || []) {
|
||||
if (task.members)
|
||||
task.members = mapMembersWithAnd(task.members);
|
||||
}
|
||||
}
|
||||
|
||||
function updateUrls(project: ITaskAssignmentModelProject) {
|
||||
project.url = `${getBaseUrl()}/worklenz/projects/${project.id}`;
|
||||
if (project.tasks) {
|
||||
project.tasks = project.tasks.map(task => {
|
||||
if (task.id)
|
||||
task.url = `${project.url}?task=${task.id}`;
|
||||
return task;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function mapTeams(data?: ITaskAssignmentModelTeam[]) {
|
||||
if (!data) return [];
|
||||
|
||||
const result = [];
|
||||
for (const item of data || []) {
|
||||
const projects = item.projects?.filter(project => project.tasks?.length);
|
||||
for (const project of projects || []) {
|
||||
if (project.id) {
|
||||
mapMembers(project);
|
||||
updateUrls(project);
|
||||
}
|
||||
}
|
||||
|
||||
if (projects?.length) {
|
||||
item.projects = projects;
|
||||
result.push(item);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
export function mapProjects(data?: ITaskAssignmentModelTeam[]) {
|
||||
if (!data) return [];
|
||||
|
||||
const result = [];
|
||||
for (const item of data || []) {
|
||||
const projects = item.projects?.filter(project => project.tasks?.length);
|
||||
for (const project of projects || []) {
|
||||
if (project.id) {
|
||||
mapMembers(project);
|
||||
updateUrls(project);
|
||||
result.push(project);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user