mirror of
https://github.com/hex248/sprint.git
synced 2026-02-07 18:23:03 +00:00
provided current project context
This commit is contained in:
@@ -34,70 +34,71 @@ export const buildContext = async (orgId: number, projectId: number, user: UserR
|
||||
<current_context>
|
||||
<user id="${user.id}" name="${user.name}" username="${user.username}" />
|
||||
|
||||
<organisation name="${organisation.name}" slug="${organisation.slug}">
|
||||
<current_organisation name="${organisation.name}" slug="${organisation.slug}">
|
||||
<statuses>
|
||||
${Object.entries(organisation.statuses)
|
||||
.map(([name, color]) => ` <status name="${name}" color="${color}" />`)
|
||||
.join("\n")}
|
||||
</statuses>
|
||||
</organisation>
|
||||
</current_organisation>
|
||||
|
||||
<projects>
|
||||
<organisation_projects id="${organisation.id}_projects" name="Projects for ${organisation.name}" count="${projects.length}">
|
||||
${projects.map((p) => ` <project key="${p.Project.key}" name="${p.Project.name}" />`).join("\n")}
|
||||
</projects>
|
||||
</organisation_projects>
|
||||
|
||||
<sprints>
|
||||
${sprints.map((s) => ` <sprint id="${s.id}" name="${s.name}" start="${s.startDate.toUTCString()?.split("T")[0]}" end="${s.endDate?.toUTCString().split("T")[0]}" />`).join("\n")}
|
||||
</sprints>
|
||||
<current_project key="${project.key}" name="${project.name}">
|
||||
<sprints>
|
||||
${sprints.map((s) => ` <sprint id="${s.id}" name="${s.name}" start="${s.startDate.toUTCString()?.split("T")[0]}" end="${s.endDate?.toUTCString().split("T")[0]}" />`).join("\n")}
|
||||
</sprints>
|
||||
|
||||
<all_issues count="${issues.length}">
|
||||
${issues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, """)}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
|
||||
</all_issues>
|
||||
<all_issues count="${issues.length}">
|
||||
${issues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, """)}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
|
||||
</all_issues>
|
||||
|
||||
<my_issues count="${assignedIssues.length}">
|
||||
${assignedIssues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, """)}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
|
||||
</my_issues>
|
||||
|
||||
<my_issues count="${assignedIssues.length}">
|
||||
${assignedIssues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, """)}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
|
||||
</my_issues>
|
||||
<issues_by_status>
|
||||
<status name="TO DO" count="${byStatus("TO DO").length}">
|
||||
${byStatus("TO DO")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
<status name="IN PROGRESS" count="${byStatus("IN PROGRESS").length}">
|
||||
${byStatus("IN PROGRESS")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
<status name="DONE" count="${byStatus("DONE").length}">
|
||||
${byStatus("DONE")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
</issues_by_status>
|
||||
|
||||
<issues_by_status>
|
||||
<status name="TO DO" count="${byStatus("TO DO").length}">
|
||||
${byStatus("TO DO")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
<status name="IN PROGRESS" count="${byStatus("IN PROGRESS").length}">
|
||||
${byStatus("IN PROGRESS")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
<status name="DONE" count="${byStatus("DONE").length}">
|
||||
${byStatus("DONE")
|
||||
.map(
|
||||
(i) =>
|
||||
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, """)}" />`,
|
||||
)
|
||||
.join("\n")}
|
||||
</status>
|
||||
</issues_by_status>
|
||||
|
||||
<issue_details>
|
||||
${assignedIssues
|
||||
.map(
|
||||
(i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}">
|
||||
<title>${i.Issue.title.replace(/"/g, """)}</title>
|
||||
<description>${(i.Issue.description || "").replace(/"/g, """)}</description>
|
||||
<status>${i.Issue.status}</status>
|
||||
<type>${i.Issue.type}</type>
|
||||
<sprint>${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "None"}</sprint>
|
||||
</issue>`,
|
||||
)
|
||||
.join("\n")}
|
||||
</issue_details>
|
||||
<issue_details>
|
||||
${assignedIssues
|
||||
.map(
|
||||
(i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}">
|
||||
<title>${i.Issue.title.replace(/"/g, """)}</title>
|
||||
<description>${(i.Issue.description || "").replace(/"/g, """)}</description>
|
||||
<status>${i.Issue.status}</status>
|
||||
<type>${i.Issue.type}</type>
|
||||
<sprint>${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "None"}</sprint>
|
||||
</issue>`,
|
||||
)
|
||||
.join("\n")}
|
||||
</issue_details>
|
||||
</current_project>
|
||||
</current_context>`;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user