]>
Commit | Line | Data |
---|---|---|
e72ace5a | 1 | import { logger } from '@server/helpers/logger' |
41fb13c3 | 2 | import express from 'express' |
c0e8b12e | 3 | import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes' |
4c7e60bc C |
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' | |
a4101923 C |
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 | ||
c0e8b12e | 19 | Emailer.Instance.addContactFormJob(data.fromEmail, data.fromName, data.subject, data.body) |
a4101923 | 20 | |
e72ace5a | 21 | try { |
22 | await Redis.Instance.setContactFormIp(req.ip) | |
23 | } catch (err) { | |
24 | logger.error(err) | |
25 | } | |
a4101923 | 26 | |
2d53be02 | 27 | return res.status(HttpStatusCode.NO_CONTENT_204).end() |
a4101923 C |
28 | } |
29 | ||
30 | // --------------------------------------------------------------------------- | |
31 | ||
32 | export { | |
33 | contactRouter | |
34 | } |