Source

services/entities/trip-history-step.js

import { getNestedValue } from '@/utils/object'
import { getPolylineFromLinestring } from '@/utils/map.js'
import { datetimeToTimestamp } from '@/utils/dates.js'

/**
 * Used by Diagnostic module
 * @param {*} item
 * @param {*} options
 * @returns
 */
export default function normalizeTripHistoryStepItem(item, options = {}) {
  return {
    startTimestamp: datetimeToTimestamp(item.dh_trajet_deb),
    endTimestamp: datetimeToTimestamp(item.dh_trajet_fin),
    polylines: convertLinestringToPolylines(
      getNestedValue(item, 'linestring'),
      []
    ),
  }
}

/**
 * APIV2: linestring can be String or Array of strings (Zone interdiction might split trip history sometimes)
 */
function convertLinestringToPolylines(linestringValue) {
  let polylines = []
  if (linestringValue instanceof Array) {
    return linestringValue.map(getPolylineFromLinestring)
  } else {
    return [getPolylineFromLinestring(linestringValue)]
  }
}