@bc443e/mongoose-diff-history
Version:
Manage Mongo Collection diff History and versions. Forked from mongoose-diff-history
107 lines (89 loc) • 2.67 kB
Markdown
This is sample express REST application which demonstrates how `mongoose-diff-history` is used.
Install all npm dependencies required
```
npm install
```
start the express server
```
npm test
```
Start a mongo server.
From the rest client you can create a employee entry, with following:
```
Method: POST
URL: http://localhost:3000/employees
Payload: {
"name":"Saurabh",
"email":"mimani.saurabh@gmail.com",
"mobile":"123234123",
"employeeId":"934934"
}
```
You can get the employee with following:
```
Method: GET
URL: http://localhost:3000/:employeeId
Sample Payload
{
"_id": "579cc08545505db69239a776",
"name": "Saurabh",
"email": "saurabh.124@gmail.com",
"mobile": "099999",
"employeeId": "934934",
"__v": 0
}
```
I have written three APIs to update employees. These 3 APIs use three different mongoose methods to update the object.
Update the employee using `save` method, following is the API signature:
```
Method: PUT
URL: http://localhost:3000/:employeeId
Payload: {
"email":"mimani.new@gmail.com",
"mobile":"123234123",
}
```
Update the employee using `update` method, following is the API signature:
```
Method: PUT
URL: http://localhost:3000/update/:employeeId
Payload: {
"email":"mimani.new@gmail.com",
"mobile":"123234123",
}
```
Update the employee using `update` method, following is the API signature:
```
Method: PUT
URL: http://localhost:3000/findOneAndUpdate/:employeeId
Payload: {
"email":"mimani.new@gmail.com",
"mobile":"123234123",
}
```
On updating an employee entry, you will see an entry created in history collection as well, which will have diff between the earlier object and the updated object.
You can get all the histories for a particular object using following API:
```
Method: GET
URL: http://localhost:3000/:employeeId/histories
Sample Response: [
{
"changedBy": "Mimani",
"changedAt": "2016-08-14T13:36:20.538Z",
"reason": "Mimani changed this",
"commment": "modified mobile from 9343476766 to 9343434766"
},
{
"changedBy": "Mimani",
"changedAt": "2016-08-14T13:37:09.645Z",
"reason": "Mimani changed this",
"commment": "modified email from mimani@fmail.com to saurabh@fmail.com"
}
]
```