mirror of
https://github.com/Mueller-Patrick/Betterzon.git
synced 2025-04-19 23:39:18 +00:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
/**
|
|
* Required External Modules and Interfaces
|
|
*/
|
|
|
|
import express, {Request, Response} from 'express';
|
|
import * as CrawlingStatusService from './crawling_status.service';
|
|
import {Crawling_Status} from './crawling_status.interface';
|
|
import {Crawling_Statuses} from './crawling_statuses.interface';
|
|
import * as UserService from '../users/users.service';
|
|
|
|
|
|
/**
|
|
* Router Definition
|
|
*/
|
|
|
|
export const crawlingstatusRouter = express.Router();
|
|
|
|
|
|
/**
|
|
* Controller Definitions
|
|
*/
|
|
|
|
// GET crawlingstatus/
|
|
crawlingstatusRouter.get('/', async (req: Request, res: Response) => {
|
|
try {
|
|
// Authenticate user
|
|
const user_ip = req.connection.remoteAddress ?? '';
|
|
const session_id = (req.query.session_id ?? '').toString();
|
|
const session_key = (req.query.session_key ?? '').toString();
|
|
const user = await UserService.checkSession(session_id, session_key, user_ip);
|
|
|
|
if (!user.is_admin) {
|
|
res.status(403).send({});
|
|
return;
|
|
}
|
|
|
|
const status: Crawling_Status = await CrawlingStatusService.getCurrent();
|
|
|
|
res.status(200).send(status);
|
|
} catch (e) {
|
|
console.log('Error handling a request: ' + e.message);
|
|
res.status(500).send(JSON.stringify({'message': 'Internal Server Error. Try again later.'}));
|
|
}
|
|
});
|