]>
Commit | Line | Data |
---|---|---|
1 | import { logger } from '@server/helpers/logger' | |
2 | import express from 'express' | |
3 | import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes' | |
4 | import { ContactForm } from '../../../../shared/models/server' | |
5 | import { Emailer } from '../../../lib/emailer' | |
6 | import { Redis } from '../../../lib/redis' | |
7 | import { asyncMiddleware, contactAdministratorValidator } from '../../../middlewares' | |
8 | ||
9 | const contactRouter = express.Router() | |
10 | ||
11 | contactRouter.post('/contact', | |
12 | asyncMiddleware(contactAdministratorValidator), | |
13 | asyncMiddleware(contactAdministrator) | |
14 | ) | |
15 | ||
16 | async function contactAdministrator (req: express.Request, res: express.Response) { | |
17 | const data = req.body as ContactForm | |
18 | ||
19 | Emailer.Instance.addContactFormJob(data.fromEmail, data.fromName, data.subject, data.body) | |
20 | ||
21 | try { | |
22 | await Redis.Instance.setContactFormIp(req.ip) | |
23 | } catch (err) { | |
24 | logger.error(err) | |
25 | } | |
26 | ||
27 | return res.status(HttpStatusCode.NO_CONTENT_204).end() | |
28 | } | |
29 | ||
30 | // --------------------------------------------------------------------------- | |
31 | ||
32 | export { | |
33 | contactRouter | |
34 | } |