mirror of
https://github.com/crystelf/crystelf-core.git
synced 2025-07-04 06:39:18 +00:00
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import express from 'express';
|
|
import sampleService from './sample.service';
|
|
|
|
class SampleController {
|
|
private readonly router: express.Router;
|
|
|
|
constructor() {
|
|
this.router = express.Router();
|
|
this.initializeRoutes();
|
|
}
|
|
|
|
public getRouter(): express.Router {
|
|
return this.router;
|
|
}
|
|
|
|
private initializeRoutes(): void {
|
|
this.router.get('/hello', this.getHello);
|
|
this.router.post('/greet', this.postGreet);
|
|
}
|
|
|
|
private getHello = (req: express.Request, res: express.Response): void => {
|
|
try {
|
|
const result = sampleService.getHello();
|
|
this.sendSuccess(res, result);
|
|
} catch (error) {
|
|
this.sendError(res, error);
|
|
}
|
|
};
|
|
|
|
private postGreet = (req: express.Request, res: express.Response): void => {
|
|
try {
|
|
const { name } = req.body;
|
|
const result = sampleService.generateGreeting(name);
|
|
this.sendSuccess(res, result);
|
|
} catch (error) {
|
|
this.sendError(res, error);
|
|
}
|
|
};
|
|
|
|
private sendSuccess(res: express.Response, data: any, statusCode = 200): void {
|
|
res.status(statusCode).json({
|
|
success: true,
|
|
data,
|
|
timestamp: new Date().toISOString(),
|
|
});
|
|
}
|
|
|
|
private sendError(res: express.Response, error: any, statusCode = 500): void {
|
|
res.status(statusCode).json({
|
|
success: false,
|
|
message: error.message,
|
|
timestamp: new Date().toISOString(),
|
|
});
|
|
}
|
|
}
|
|
|
|
export default new SampleController();
|