From the code stated in the above documentation link, I get TypeError: RecordsRemover is not a constructor
const express = require('express');
const { PermissionMiddlewareCreator,
RecordCreator,
RecordUpdater,
RecordRemover,
RecordsRemover,
RecordsGetter } = require('forest-express-mongoose');
const { outfitProductsCollection } = require('../models');
const mongoose = require('mongoose');
const router = express.Router();
const permissionMiddlewareCreator = new PermissionMiddlewareCreator('outfitProductsCollection');
/* The others routes*/
// Delete a list of outfits
router.delete('/outfitProductsCollection', permissionMiddlewareCreator.delete(), (request, response, next) => {
// Learn what this route does here: https://docs.forestadmin.com/documentation/v/v6/reference-guide/routes/default-routes#delete-a-list-of-records
new RecordsGetter(outfitProductsCollection).getIdsFromRequest(request)
.then((ids) => {
const recordsRemover = new RecordsRemover(ids);
recordsRemover.perform(request)
.then(() => response.status(204).send())
.catch(next);
})
.catch(next);
});
Failure Logs
[start] DELETE /forest/outfitProductsCollection 500 283 - 12.286 ms
[start] TypeError: RecordsRemover is not a constructor
at /Users/emixam23/Workspace/forest-admin/eyesapp/routes/outfit-products-collection.js:71:28
Context
Please provide any relevant information about your setup.
We just released a new version of forest-express-mongoose (and forest-express-sequelize) that exposes the RecordsRemover service. You will have to update your dependency to latest version (i.e: 6.2.1):
# Using yarn
yarn add forest-express-mongoose@latest
# Or with NPM
npm i forest-express-mongoose@latest
Then you can update your delete route. I just tried on one of my local projects with this code and it works (using a users model):
// Delete a list of Users
router.delete('/users', permissionMiddlewareCreator.delete(), (request, response, next) => {
new RecordsGetter(users).getIdsFromRequest(request)
.then((ids) => {
const recordsRemover = new RecordsRemover(users);
recordsRemover.remove(ids)
.then(() => response.status(204).send())
.catch(next);
})
.catch(next);
});
Side note: currently, there are a some errors in the documentation about this method, it will be fixed soon! Lines 17 to 20 should be updated since we have to use remove instead of perform:
const recordsRemover = new RecordsRemover(companies);
recordsRemover.remove(ids)
.then(() => response.status(204).send())
.catch(next);