crystelf-core/modules/words/words.controller.ts
2025-07-07 21:48:42 +08:00

67 lines
1.8 KiB
TypeScript

import express from 'express';
import WordsService from './words.service';
import response from '../../core/utils/system/response';
import tools from '../../core/utils/modules/tools';
class WordsController {
private readonly router: express.Router;
constructor() {
this.router = express.Router();
this.init();
}
public getRouter(): express.Router {
return this.router;
}
private init(): void {
this.router.get('/getText/:id', this.getText);
this.router.post('/reloadText', this.reloadWord);
}
/**
* 获取随机文案
* @param req
* @param res
*/
private getText = async (req: express.Request, res: express.Response): Promise<void> => {
try {
const id = req.params.id;
const texts = await WordsService.loadWordById(id.toString());
if (!texts || texts.length === 0) {
return await response.error(res, `文案${id}不存在或为空..`, 404);
}
const randomIndex = Math.floor(Math.random() * texts.length);
const result = texts[randomIndex];
await response.success(res, result);
} catch (e) {
await response.error(res);
}
};
/**
* 重载文案
* @param req
* @param res
*/
private reloadWord = async (req: express.Request, res: express.Response): Promise<void> => {
try {
const id = req.params.id;
const token = req.params.token;
if (tools.checkToken(token)) {
if (await WordsService.reloadWord(id.toString())) {
await response.success(res, '成功重载..');
} else {
await response.error(res, '重载失败..');
}
} else {
await tools.tokenCheckFailed(res, token);
}
} catch (e) {
await response.error(res);
}
};
}
export default new WordsController();