Now handles top level files and recursive files in folders. Set max line length to be 100
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import PromiseRouter from '../PromiseRouter';
|
|
import * as middleware from '../middlewares';
|
|
import Parse from 'parse/node';
|
|
|
|
export class PurgeRouter extends PromiseRouter {
|
|
handlePurge(req) {
|
|
if (req.auth.isReadOnly) {
|
|
throw new Parse.Error(
|
|
Parse.Error.OPERATION_FORBIDDEN,
|
|
"read-only masterKey isn't allowed to purge a schema."
|
|
);
|
|
}
|
|
return req.config.database
|
|
.purgeCollection(req.params.className)
|
|
.then(() => {
|
|
var cacheAdapter = req.config.cacheController;
|
|
if (req.params.className == '_Session') {
|
|
cacheAdapter.user.clear();
|
|
} else if (req.params.className == '_Role') {
|
|
cacheAdapter.role.clear();
|
|
}
|
|
return { response: {} };
|
|
})
|
|
.catch(error => {
|
|
if (!error || (error && error.code === Parse.Error.OBJECT_NOT_FOUND)) {
|
|
return { response: {} };
|
|
}
|
|
throw error;
|
|
});
|
|
}
|
|
|
|
mountRoutes() {
|
|
this.route('DELETE', '/purge/:className', middleware.promiseEnforceMasterKeyAccess, req => {
|
|
return this.handlePurge(req);
|
|
});
|
|
}
|
|
}
|
|
|
|
export default PurgeRouter;
|