loopback-sdelete-mixin
Version:
A mixin to automatically generate created and updated Date attributes for loopback Models
51 lines (39 loc) • 1.67 kB
Markdown
SoftDelete
=============
This is forked from [gausie/loopback-softdelete-mixin](https://github.com/gausie/loopback-softdelete-mixin)
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 `deletedAt` and `_isDeleted` attributes. Queries following the standard format will no return these entities; they can only be accessed by adding `{ deleted: true }` to the query object (at the same level as `where`, `include` etc).
It is heavily inspired by [loopback-ds-timestamp-mixin](https://github.com/clarkbw/loopback-ds-timestamp-mixin).
Install
-------
```bash
npm install --save loopback-sdelete-mixin
```
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 alternative property names for `deletedAt` and `_isDeleted`, 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": "deletedOn",
"_isDeleted": "deleted",
"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).