loopback-softdelete-mixin2
Version:
A mixin to provide soft deletes by adding a deletedAt attribute for loopback Models
49 lines (37 loc) • 1.59 kB
Markdown
SoftDelete
=============
This module is designed for the [Strongloop Loopback](https://github.com/strongloop/loopback) framework. It allows entities of any Model to be "soft deleted" by adding a `deletedAt` attribute. Queries following the standard format will not return these entities; they can only be accessed by adding `{ deleted: true }` to the query object (at the same level as `where`, `include` etc).
This is a fork from [loopback-softdelete-mixin](https://github.com/gausie/loopback-softdelete-mixin). The only real difference is that this module does not use the _isDeleted property on a model.
Install
-------
```bash
npm install --save loopback-softdelete-mixin2
```
Configure
----------
To use with your Models add the `mixins` attribute to the definition object of your model config.
```json
{
"name": "Widget",
"properties": {
"name": {
"type": "string",
},
},
"mixins": {
"SoftDelete" : true,
},
},
```
There are a number of configurable options to the mixin. You can specify an alternative property name for `deletedAt`, as well as configuring deletion to "scrub" the entity. If true, this sets all but the "id" fields to null. If an array, it will only scrub properties with those names.
```json
"mixins": {
"SoftDelete": {
"deletedAt": "deleted_at",
"scrub": true,
},
},
```
Retrieving deleted entities
---------------------------
To run queries that include deleted items in the response, add `{ deleted: true }` to the query object (at the same level as `where`, `include` etc).