Skip to content

Commit

Permalink
Decoding of fuel code to valueDescription property
Browse files Browse the repository at this point in the history
  • Loading branch information
dex4er committed Aug 18, 2018
1 parent 14df789 commit c495ca7
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 19 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog

## v0.3.0 2018-08-18

* Decoding of fuel code to `valueDescription` property.

## v0.2.0 2018-08-06

* Support for old data format.
Expand Down
4 changes: 3 additions & 1 deletion README.md
Expand Up @@ -70,6 +70,7 @@ Property which contains decoded data object. This object is an instance of
`PolishVehicleRegistrationCertificateNewFormatData` or
`PolishVehicleRegistrationCertificateOldFormatData` class. Each property of this
data object is an object with `name`, `description` and `value` properties.
Object for `rodzajPaliwa` has additional `valueDescription` property.

_Example:_

Expand Down Expand Up @@ -340,7 +341,8 @@ Output:
"rodzajPaliwa": {
"name": "P.3",
"description": "rodzaj paliwa",
"value": "P "
"value": "P",
"valueDescription": "benzyna"
},
"dataPierwszejRejestracjiPojazdu": {
"name": "B",
Expand Down
17 changes: 3 additions & 14 deletions lib/polish-vehicle-registration-certificate-decoder.d.ts
Expand Up @@ -6,30 +6,19 @@ export interface PolishVehicleRegistrationCertificateFuel {
name: string
description: string
value: PolishVehicleRegistrationCertificateFuelCode
}

export interface PolishVehicleRegistrationCertificateIssuerValue extends Array<string> {
0: string
1: string
2: string
3: string
valueDescription: string
}

export interface PolishVehicleRegistrationCertificateIssuer {
name: string
description: string
value: PolishVehicleRegistrationCertificateIssuerValue
}

export interface PolishVehicleRegistrationCertificateAddressValue extends Array<string> {
0: string
1: string
value: string[4]
}

export interface PolishVehicleRegistrationCertificateAddress {
name: string
description: string
value: PolishVehicleRegistrationCertificateAddressValue
value: string[2]
}

export interface PolishVehicleRegistrationCertificateField {
Expand Down
21 changes: 19 additions & 2 deletions lib/polish-vehicle-registration-certificate-decoder.js
Expand Up @@ -48,6 +48,20 @@ class PolishVehicleRegistrationCertificateDecoder {

const isNewFormat = outputFields[0].startsWith('XX')

const fuelCodes = {
P: 'benzyna',
D: 'olej napędowy',
M: 'mieszanka (paliwo-olej)',
LPG: 'gaz płynny (propan-butan)',
CNG: 'gaz ziemny sprężony (metan)',
H: 'wodór',
LNG: 'gaz ziemny skroplony (metan)',
BD: 'biodiesel',
E85: 'etanol',
EE: 'energia elektryczna',
999: 'inne'
}

const fieldsDefinition = {
format: { name: 'nd.', description: 'identyfikator formatu', newFormatIndex: 0 },
seriaDr: { name: 'SERIA DR', description: '', newFormatIndex: 1, oldFormatIndex: 0 },
Expand Down Expand Up @@ -124,9 +138,12 @@ class PolishVehicleRegistrationCertificateDecoder {
const newDataField = { name: field.name, description: field.description }
const index = isNewFormat ? field.newFormatIndex : field.oldFormatIndex
if (field.lines) {
newDataField.value = outputFields.slice(index, index + field.lines)
newDataField.value = outputFields.slice(index, index + field.lines).map((s) => s.trim())
} else {
newDataField.value = outputFields[index]
newDataField.value = outputFields[index].trim()
}
if (key === 'rodzajPaliwa') {
newDataField.valueDescription = fuelCodes[newDataField.value]
}
this.data[key] = newDataField
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "polish-vehicle-registration-certificate-decoder",
"version": "0.2.0",
"version": "0.3.0",
"description": "Decode Polish Vehicle Registration Certificate Aztec 2D barcode data",
"main": "lib/polish-vehicle-registration-certificate-decoder.js",
"typings": "lib/polish-vehicle-registration-certificate-decoder.d.ts",
Expand Down
3 changes: 2 additions & 1 deletion test/polish-vehicle-registration-certificate-decoder.js
Expand Up @@ -268,7 +268,8 @@ Feature('Test nrv2eDecompress', () => {
rodzajPaliwa: {
name: 'P.3',
description: 'rodzaj paliwa',
value: 'P '
value: 'P',
valueDescription: 'benzyna'
},
dataPierwszejRejestracjiPojazdu: {
name: 'B',
Expand Down

0 comments on commit c495ca7

Please sign in to comment.