Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 59x 59x 142x 142x 142x 142x 142x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 59x 59x | import { Response } from 'express';
import Controller from '../controller';
import { Logger } from '../../logger';
import { IUnleashConfig } from '../../types/option';
import { IUnleashServices } from '../../types/services';
import UserFeedbackService from '../../services/user-feedback-service';
import { IAuthRequest } from '../unleash-types';
import { NONE } from '../../types/permissions';
interface IFeedbackBody {
neverShow?: boolean;
feedbackId: string;
given?: Date;
}
class UserFeedbackController extends Controller {
private logger: Logger;
private userFeedbackService: UserFeedbackService;
constructor(
config: IUnleashConfig,
{ userFeedbackService }: Pick<IUnleashServices, 'userFeedbackService'>,
) {
super(config);
this.logger = config.getLogger('feedback-controller.ts');
this.userFeedbackService = userFeedbackService;
this.post('/', this.recordFeedback, NONE);
this.put('/:id', this.updateFeedbackSettings, NONE);
}
private async recordFeedback(
req: IAuthRequest<any, any, IFeedbackBody, any>,
res: Response,
): Promise<void> {
const BAD_REQUEST = 400;
const { user } = req;
const { feedbackId } = req.body;
if (!feedbackId) {
res.status(BAD_REQUEST).json({
error: 'feedbackId must be present.',
});
return;
}
const feedback = {
...req.body,
userId: user.id,
given: new Date(),
neverShow: req.body.neverShow || false,
};
const updated = await this.userFeedbackService.updateFeedback(feedback);
res.json(updated);
}
private async updateFeedbackSettings(
req: IAuthRequest<any, any, IFeedbackBody, any>,
res: Response,
): Promise<void> {
const { user } = req;
const { id } = req.params;
const feedback = {
...req.body,
feedbackId: id,
userId: user.id,
neverShow: req.body.neverShow || false,
};
const updated = await this.userFeedbackService.updateFeedback(feedback);
res.json(updated);
}
}
module.exports = UserFeedbackController;
export default UserFeedbackController;
|