docparse-generate-bill-id
v1.0.0
Published
Generate a unique _id for a bill to use when saving to couchdb
Downloads
4
Readme
Generate Bill ID
When bills are saved into the couchdb database, they need an _id to uniquely identify themselves. It is possible to let couchdb generate the _id value. However using couchdb-generated _id values means that we need to perform existance checks client-side before saving a bill to ensure uniqueness
There should only every be a single record for a given bill in the database. Couchdb internally requires that each document have a unique _id value. If the _id for a bill is generated manually we can ensure each bill only gets saved once.
Example
Each bill can be uniquely identified using the following fields.
- supplierCode
- accountNumber
- billDate
- billNumber
To generate the _id this module concatenates these values and calculates the sha1 hash value of the concatenated string. The sha1 hash is then used as the _id value
var generateBillID = require('docparse-generate-bill-id')
var generateData = {
supplierCode: 'NGE',
accountNumber: 'fooAccountNumber',
billDate: '2011-01-19 00:00:00 +00:00',
billNumber: 'barBillNumber'
}
generateBillID(generateData, function (err, billID) {
if (err) {
console.dir('error generating bill id')
console.dir(err)
return
}
console.dir('generated bill id', billID)
})
Implementation
See index.js
for a implementation details
Tests
To run the tests execute in the shell
# install development dependencies
npm install
# run tests
npm test