summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-03-15 13:48:17 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-03-15 13:48:17 +0900
commit6bb90f56fa9c937049336ec918b858523e0b2e2f (patch)
tree21447b7370f9d07c692e2a50859e781f0531c03c /src/server/api
parent:art: (diff)
downloadsharkey-6bb90f56fa9c937049336ec918b858523e0b2e2f.tar.gz
sharkey-6bb90f56fa9c937049336ec918b858523e0b2e2f.tar.bz2
sharkey-6bb90f56fa9c937049336ec918b858523e0b2e2f.zip
ジョブを一覧できるように
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/queue/jobs.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/src/server/api/endpoints/admin/queue/jobs.ts
new file mode 100644
index 0000000000..c2496d7ef7
--- /dev/null
+++ b/src/server/api/endpoints/admin/queue/jobs.ts
@@ -0,0 +1,40 @@
+import $ from 'cafy';
+import define from '../../../define';
+import { deliverQueue, inboxQueue } from '../../../../../queue';
+
+export const meta = {
+ tags: ['admin'],
+
+ requireCredential: true,
+ requireModerator: true,
+
+ params: {
+ domain: {
+ validator: $.str,
+ },
+
+ state: {
+ validator: $.str,
+ },
+
+ limit: {
+ validator: $.optional.num,
+ default: 50
+ },
+ }
+};
+
+export default define(meta, async (ps) => {
+ const queue =
+ ps.domain === 'deliver' ? deliverQueue :
+ ps.domain === 'inbox' ? inboxQueue :
+ null;
+
+ const jobs = await queue.getJobs([ps.state], 0, ps.limit);
+
+ return jobs.map(job => ({
+ id: job.id,
+ data: job.data,
+ attempts: job.attemptsMade,
+ }));
+});