mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
add server to monorepo.
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import { Inject, Service } from 'typedi';
|
||||
import { Router, NextFunction, Response } from 'express';
|
||||
import { check } from 'express-validator';
|
||||
import { Request } from 'express-validator/src/base';
|
||||
import EasySmsIntegration from '@/services/SmsIntegration/EasySmsIntegration';
|
||||
import BaseController from '../BaseController';
|
||||
|
||||
@Service()
|
||||
export default class EasySmsIntegrationController extends BaseController {
|
||||
@Inject()
|
||||
easySmsIntegrationService: EasySmsIntegration;
|
||||
|
||||
/**
|
||||
* Controller router.
|
||||
*/
|
||||
public router = () => {
|
||||
const router = Router();
|
||||
|
||||
router.post(
|
||||
'/easysms/integrate',
|
||||
[check('token').exists()],
|
||||
this.integrationEasySms
|
||||
);
|
||||
router.post(
|
||||
'/easysms/disconnect',
|
||||
this.disconnectEasysms
|
||||
)
|
||||
router.get('/easysms', this.getIntegrationMeta);
|
||||
|
||||
return router;
|
||||
};
|
||||
|
||||
/**
|
||||
* Easysms integration API.
|
||||
* @param {Request} req - Request object.
|
||||
* @param {Response} res - Response object.
|
||||
* @param {NextFunction} next - Next function.
|
||||
*/
|
||||
private integrationEasySms = async (
|
||||
req: Request,
|
||||
res: Response,
|
||||
next: NextFunction
|
||||
) => {
|
||||
const { tenantId } = req;
|
||||
const easysmsIntegrateDTO = this.matchedBodyData(req);
|
||||
|
||||
try {
|
||||
await this.easySmsIntegrationService.integrate(
|
||||
tenantId,
|
||||
easysmsIntegrateDTO
|
||||
);
|
||||
return res.status(200).send({
|
||||
message:
|
||||
'The system has been integrated with Easysms sms gateway successfully.',
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieve the Easysms integration meta.
|
||||
* @param req
|
||||
* @param res
|
||||
* @param next
|
||||
* @returns
|
||||
*/
|
||||
private getIntegrationMeta = async (
|
||||
req: Request,
|
||||
res: Response,
|
||||
next: NextFunction
|
||||
) => {
|
||||
const { tenantId } = req;
|
||||
|
||||
try {
|
||||
const data = await this.easySmsIntegrationService.getIntegrationMeta(
|
||||
tenantId
|
||||
);
|
||||
return res.status(200).send({ data });
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param req
|
||||
* @param res
|
||||
* @param next
|
||||
* @returns
|
||||
*/
|
||||
private disconnectEasysms = async (
|
||||
req: Request,
|
||||
res: Response,
|
||||
next: NextFunction
|
||||
) => {
|
||||
const { tenantId } = req;
|
||||
|
||||
try {
|
||||
await this.easySmsIntegrationService.disconnect(
|
||||
tenantId,
|
||||
);
|
||||
return res.status(200).send({
|
||||
message: 'The sms gateway integration has been disconnected successfully.',
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user