import { Request, Response } from "express"; import QueryStoreFactory from "../../../factory/admin/configuration/queryStore"; import QueryStoreService from "../../../service/configuration/queryStoreService"; import { CreateQueryStoreCommand, DeleteQueryStoreCommand, UpdateQueryStoreCommand, } from "../../../command/configuration/queryStore/queryStoreCommand"; import QueryStoreCommandHandler from "../../../command/configuration/queryStore/queryStoreCommandHandler"; /** * @description get all queryStores * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getAllQueryStores(req: Request, res: Response): Promise { let queryStores = await QueryStoreService.getAll(); res.json(QueryStoreFactory.mapToBase(queryStores)); } /** * @description get queryStore by id * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getQueryStoreById(req: Request, res: Response): Promise { const id = parseInt(req.params.id); let queryStore = await QueryStoreService.getById(id); res.json(QueryStoreFactory.mapToSingle(queryStore)); } /** * @description create new queryStore * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function createQueryStore(req: Request, res: Response): Promise { const query = req.body.query; const title = req.body.title; let createQueryStore: CreateQueryStoreCommand = { title: title, query: query, }; let id = await QueryStoreCommandHandler.create(createQueryStore); res.status(200).send(id); } /** * @description update queryStore * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function updateQueryStore(req: Request, res: Response): Promise { const id = parseInt(req.params.id); const query = req.body.query; let updateQueryStore: UpdateQueryStoreCommand = { id: id, query: query, }; await QueryStoreCommandHandler.update(updateQueryStore); res.sendStatus(204); } /** * @description delete queryStore * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function deleteQueryStore(req: Request, res: Response): Promise { const id = parseInt(req.params.id); let deleteQueryStore: DeleteQueryStoreCommand = { id: id, }; await QueryStoreCommandHandler.delete(deleteQueryStore); res.sendStatus(204); }