@meridianjs/meridian 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/admin/my/tasks/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBAyFhD,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export const GET = async (req, res) => {
|
|
2
|
+
const issueService = req.scope.resolve("issueModuleService");
|
|
3
|
+
const projectService = req.scope.resolve("projectModuleService");
|
|
4
|
+
const limit = Math.min(Number(req.query.limit) || 50, 200);
|
|
5
|
+
const offset = Number(req.query.offset) || 0;
|
|
6
|
+
// Broad fetch — then post-filter by assignee
|
|
7
|
+
let [issues, count] = await issueService.listAndCountIssues({}, { limit: 500, offset: 0, orderBy: { updated_at: "DESC" } });
|
|
8
|
+
const userId = req.user?.id;
|
|
9
|
+
if (!userId) {
|
|
10
|
+
res.status(401).json({ error: { message: "Unauthorized" } });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Filter to only issues assigned to the current user
|
|
14
|
+
issues = issues.filter((i) => (i.assignee_ids ?? []).includes(userId));
|
|
15
|
+
// Filter by workspace_id(s)
|
|
16
|
+
if (req.query.workspace_id) {
|
|
17
|
+
const wsIds = req.query.workspace_id.split(",").filter(Boolean);
|
|
18
|
+
issues = issues.filter((i) => wsIds.includes(i.workspace_id));
|
|
19
|
+
}
|
|
20
|
+
// Apply optional filters
|
|
21
|
+
if (req.query.priority) {
|
|
22
|
+
const priorities = req.query.priority.split(",").filter(Boolean);
|
|
23
|
+
issues = issues.filter((i) => priorities.includes(i.priority));
|
|
24
|
+
}
|
|
25
|
+
if (req.query.type) {
|
|
26
|
+
const types = req.query.type.split(",").filter(Boolean);
|
|
27
|
+
issues = issues.filter((i) => types.includes(i.type));
|
|
28
|
+
}
|
|
29
|
+
// Collect unique project IDs for enrichment
|
|
30
|
+
const projectIds = [...new Set(issues.map((i) => i.project_id))];
|
|
31
|
+
// Batch-fetch projects and their statuses
|
|
32
|
+
const projectMap = new Map();
|
|
33
|
+
const statusMap = new Map();
|
|
34
|
+
if (projectIds.length > 0) {
|
|
35
|
+
const [projects] = await projectService.listAndCountProjects({ id: { $in: projectIds } }, { limit: projectIds.length });
|
|
36
|
+
for (const p of projects) {
|
|
37
|
+
projectMap.set(p.id, { name: p.name, identifier: p.identifier });
|
|
38
|
+
}
|
|
39
|
+
// Fetch statuses for all projects
|
|
40
|
+
for (const pid of projectIds) {
|
|
41
|
+
try {
|
|
42
|
+
const statuses = await projectService.listProjectStatuss({ project_id: pid }, { limit: 50 });
|
|
43
|
+
for (const s of statuses) {
|
|
44
|
+
// Key by project_id + status_key for lookup
|
|
45
|
+
statusMap.set(`${pid}:${s.key}`, { name: s.name, color: s.color, category: s.category });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Project may not have custom statuses
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Enrich issues
|
|
54
|
+
const enriched = issues.map((issue) => {
|
|
55
|
+
const proj = projectMap.get(issue.project_id);
|
|
56
|
+
const status = statusMap.get(`${issue.project_id}:${issue.status}`);
|
|
57
|
+
return {
|
|
58
|
+
...issue,
|
|
59
|
+
_project: proj ?? null,
|
|
60
|
+
_status: status ?? { name: issue.status, color: "#94a3b8", category: "backlog" },
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
// Apply category filter after enrichment
|
|
64
|
+
if (req.query.category) {
|
|
65
|
+
const categories = req.query.category.split(",").filter(Boolean);
|
|
66
|
+
const filtered = enriched.filter((i) => categories.includes(i._status.category));
|
|
67
|
+
res.json({ issues: filtered.slice(offset, offset + limit), count: filtered.length, limit, offset });
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
count = enriched.length;
|
|
71
|
+
res.json({ issues: enriched.slice(offset, offset + limit), count, limit, offset });
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../src/api/admin/my/tasks/route.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meridianjs/meridian",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Default API routes, workflows, links, and subscribers for Meridian applications",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"prepublishOnly": "cd ../.. && npm run check:routes && cd packages/meridian && npm run build"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@meridianjs/framework": "^1.
|
|
24
|
-
"@meridianjs/framework-utils": "^1.
|
|
25
|
-
"@meridianjs/workflow-engine": "^1.
|
|
26
|
-
"@meridianjs/types": "^1.
|
|
23
|
+
"@meridianjs/framework": "^1.3.0",
|
|
24
|
+
"@meridianjs/framework-utils": "^1.3.0",
|
|
25
|
+
"@meridianjs/workflow-engine": "^1.3.0",
|
|
26
|
+
"@meridianjs/types": "^1.3.0",
|
|
27
27
|
"@meridianjs/user": "^1.0.0",
|
|
28
28
|
"@meridianjs/workspace": "^1.0.0",
|
|
29
|
-
"@meridianjs/auth": "^1.
|
|
29
|
+
"@meridianjs/auth": "^1.3.0",
|
|
30
30
|
"@meridianjs/project": "^1.0.0",
|
|
31
31
|
"@meridianjs/issue": "^1.0.0",
|
|
32
32
|
"@meridianjs/sprint": "^1.0.0",
|