diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-10-19 19:29:04 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-10-19 19:29:04 +0900 |
| commit | 87f61e714ad3b17856a6a5ac66051707badb3bd0 (patch) | |
| tree | 353b384f026bb326d16b7194d5fa5dfee7f12069 /src/server/api/endpoints/admin | |
| parent | 12.48.3 (diff) | |
| download | sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.tar.gz sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.tar.bz2 sharkey-87f61e714ad3b17856a6a5ac66051707badb3bd0.zip | |
Resolve #6087
Diffstat (limited to 'src/server/api/endpoints/admin')
| -rw-r--r-- | src/server/api/endpoints/admin/abuse-user-reports.ts | 38 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/resolve-abuse-user-report.ts (renamed from src/server/api/endpoints/admin/remove-abuse-user-report.ts) | 7 |
2 files changed, 43 insertions, 2 deletions
diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts index d5a52184d1..6a7f380e16 100644 --- a/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -23,12 +23,50 @@ export const meta = { untilId: { validator: $.optional.type(ID), }, + + state: { + validator: $.optional.nullable.str, + default: null, + }, + + reporterOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, + + targetUserOrigin: { + validator: $.optional.str.or([ + 'combined', + 'local', + 'remote', + ]), + default: 'combined' + }, } }; export default define(meta, async (ps) => { const query = makePaginationQuery(AbuseUserReports.createQueryBuilder('report'), ps.sinceId, ps.untilId); + switch (ps.state) { + case 'resolved': query.andWhere('report.resolved = TRUE'); break; + case 'unresolved': query.andWhere('report.resolved = FALSE'); break; + } + + switch (ps.reporterOrigin) { + case 'local': query.andWhere('report.reporterHost IS NULL'); break; + case 'remote': query.andWhere('report.reporterHost IS NOT NULL'); break; + } + + switch (ps.targetUserOrigin) { + case 'local': query.andWhere('report.targetUserHost IS NULL'); break; + case 'remote': query.andWhere('report.targetUserHost IS NOT NULL'); break; + } + const reports = await query.take(ps.limit!).getMany(); return await AbuseUserReports.packMany(reports); diff --git a/src/server/api/endpoints/admin/remove-abuse-user-report.ts b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts index 150de5f5d4..0a62b5f365 100644 --- a/src/server/api/endpoints/admin/remove-abuse-user-report.ts +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -16,12 +16,15 @@ export const meta = { } }; -export default define(meta, async (ps) => { +export default define(meta, async (ps, me) => { const report = await AbuseUserReports.findOne(ps.reportId); if (report == null) { throw new Error('report not found'); } - await AbuseUserReports.delete(report.id); + await AbuseUserReports.update(report.id, { + resolved: true, + assigneeId: me.id, + }); }); |