const catchAsync = require('../../globalErrorHandler/catchAsync') const belongingService = require('./belongingService') const { eventEmitter } = require('../../events/eventEmitter') exports.searchBelongings = catchAsync(async (req, res, next) => { const { facets, belongings, totalCount, pagesCount } = await belongingService.searchBelongings(req.query) res.status(200).json({ status: 'success', facets, belongings, totalCount, pagesCount, }) }) exports.indexAllBelongings = catchAsync(async (req, res, next) => { const { indexedCount } = await belongingService.indexAllBelongings() res.status(200).json({ status: 'success', indexedCount, }) }) exports.indexOneBelonging = catchAsync(async (req, res, next) => { await belongingService.indexOneBelonging() res.status(200).json({ status: 'success', }) }) exports.getAllBelongings = catchAsync(async (req, res, next) => { const belongings = await belongingService.getAllBelongings() res.status(200).json({ status: 'success', results: belongings.length, data: belongings, }) }) exports.createBelonging = catchAsync(async (req, res, next) => { const belonging = await belongingService.createBelonging(req.body) eventEmitter.emit('createBelonging', belonging) res.status(201).json({ status: 'success', data: belonging, }) }) exports.getBelonging = catchAsync(async (req, res, next) => { const belonging = await belongingService.getBelonging(req.params.belongingId) res.status(200).json({ status: 'success', data: belonging, }) }) exports.updateBelonging = catchAsync(async (req, res, next) => { const belonging = await belongingService.updateBelonging(req.params.belongingId, req.body) await belongingService.indexAllBelongings() res.status(200).json({ status: 'success', data: belonging, }) }) exports.deleteBelonging = catchAsync(async (req, res, next) => { await belongingService.deleteBelonging(req.params.belongingId) // eventEmitter.emit('deleteBelonging') res.status(204).json({ status: 'success', data: null, }) })