@moartube/moartube-node
Version:
A free, open-source, self-hosted, anonymous, decentralized video/live stream platform. Scalable via Cloudflare, works in the cloud or from home WiFi.
57 lines (47 loc) • 2.01 kB
JavaScript
const {
isReportIdValid
} = require('../utils/validators');
const {
performDatabaseReadJob_ALL, performDatabaseReadJob_GET, submitDatabaseWriteJob
} = require('../utils/database');
async function reportsVideos_GET() {
const reports = await performDatabaseReadJob_ALL('SELECT * FROM videoreports', [])
return { isError: false, reports: reports };
}
async function reportsVideosArchive_POST(reportId) {
if (isReportIdValid(reportId)) {
const report = await performDatabaseReadJob_GET('SELECT * FROM videoreports WHERE report_id = ?', [reportId]);
if (report != null) {
const reportId = report.report_id;
const timestamp = report.timestamp;
const videoTimestamp = report.video_timestamp;
const videoId = report.video_id;
const email = report.email;
const type = report.type;
const message = report.message;
await submitDatabaseWriteJob('INSERT INTO videoreportsarchives(report_id, timestamp, video_timestamp, video_id, email, type, message) VALUES (?, ?, ?, ?, ?, ?, ?)', [reportId, timestamp, videoTimestamp, videoId, email, type, message]);
await submitDatabaseWriteJob('DELETE FROM videoreports WHERE report_id = ?', [reportId]);
return { isError: false };
}
else {
throw new Error('report with id does not exist: ' + reportId);
}
}
else {
throw new Error('invalid report id: ' + reportId);
}
}
async function reportsVideosReportIdDelete_DELETE(reportId) {
if (isReportIdValid(reportId)) {
await submitDatabaseWriteJob('DELETE FROM videoreports WHERE report_id = ?', [reportId]);
return { isError: false };
}
else {
throw new Error('invalid report id: ' + reportId);
}
}
module.exports = {
reportsVideos_GET,
reportsVideosArchive_POST,
reportsVideosReportIdDelete_DELETE
}