decode #
This method must be implemented in order to decode the payload.
It has to return a promise resolving to a DeviceContent with the following information:
reference: device identifiermeasures: measures received in the payloadqos: additional information about device state like battery, etc. (optional)
abstract decode (payload: JSONObject, request: KuzzleRequest): Promise<DeviceContent>| Arguments | Type | Description | 
|---|---|---|
payload | JSONObject  | Raw payload received in the API action body | 
request | KuzzleRequest  | API request of origin | 
Returns #
Returns a promise resolving to a DeviceContent.
Usage #
Considering the following payload:
{
  deviceEUI: '12345',
  register55: 23.3,
  batteryLevel: 0.8,
}The following decode method could be implemented:
import { JSONObject, KuzzleRequest } from 'kuzzle';
import { Decoder, DeviceContent } from 'kuzzle-plugin-device-manager';
class KarakoyDecoder extends Decoder {
  // [...]
  async decode (payload: JSONObject, request: KuzzleRequest): Promise<DeviceContent> {
    const deviceContent: DeviceContent = {
      reference: payload.deviceEUI,
      measures: {
        temperature: {
          updatedAt: Date.now(),
          value: payload.register55,
        }
      },
      qos: {
        battery: payload.batteryLevel * 100
      }
    };
    return deviceContent;
  }
}