export default async function pipeline(event) {
    log.info(event);
    const rawReading = event.data.element;
    const source = (
        rawReading.source ?
        rawReading.source :
        path(["measurements", "0", "source"], rawReading)
    );
    /*
     *   Workaround: some events have been incorrectly generated and thus don't
     *   have an `element` property. When processing said events, just return and
     *   move on without failing, as failures can block the kinesis stream.
     */
    if (!rawReading ||
        !rawReading.sensorId ||
        !(source === "reading") ||
        !rawReading.measurements ||
        !rawReading.measurements.find(x => x.type === "activeEnergy") &&
        !rawReading.measurements.find(x => x.type === "maxPower") &&
        !rawReading.measurements.find(x => x.type === "reactiveEnergy")
    ) {
        return null;
    }

    await insertConsumption(rawReading);
}
Ejemplo n.º 2
0
export default async function pipeline(event) {
    log.info(event);
    const rawReading = event.data.element;
    /*
     *   Workaround: some events have been incorrectly generated and thus don't
     *   have an `element` property. When processing said events, just return and
     *   move on without failing, as failures can block the kinesis stream.
     */

    if (!rawReading ||
        !rawReading.sensorId ||
        !rawReading.measurements ||
        !rawReading.measurements.find(x => x.type == "weather-humidity") ||
        !rawReading.measurements.find(x => x.type == "weather-cloudeness") ||
        !rawReading.measurements.find(x => x.type == "weather-temperature") ||
        !rawReading.measurements.find(x => x.type == "weather-id")
    ) {
        return null;
    }

    await insertWeather(rawReading);
}
Ejemplo n.º 3
0
 .listen(config.PORT, () => {
     log.info(`Server listening on port ${config.PORT}`);
 });