Source

services/box-service.js

import api from '@/api'
import normalizeBoxConfiguration from '@/services/entities/box-configuration.js'
import normalizeSensorAssignment from '@/services/entities/sensor-assignment.js'
import APIUrls from '@/config/simpliciti-apis.js'

export const boxAssignmentColorsTable = {
  1: 'red',
  2: 'orange',
  3: 'yellow',
  4: 'green',
  5: 'blue',
  6: 'purple',
  7: 'pink',
  8: 'gray',
  9: 'white',
}

/**
 * @warn Unused
 * @returns
 */
export async function getBoxConfigurations() {
  return (await api.v3.get(APIUrls.APIV3_BOX_CONFIGURATIONS)).data.map(
    normalizeBoxConfiguration
  )
}

/**
 * * Used by Diagnostics module
 * @param {*} boxConfigurationId
 * @returns
 */
export async function getBoxSensorAssigments(boxConfigurationId) {
  return (
    await api.v3.get(
      APIUrls.APIV3_BOX_SENSOR_ASSIGNMENTS,
      {
        'boxConfiguration.id': boxConfigurationId,
      },
      {
        populate: ['sensor'],
      }
    )
  ).data.map(normalizeSensorAssignment)
}

/**
 * Used by Diagnostics module
 * @param {Number} vehicleId Required
 * @param {Number|Array} filterParams.boxNumber i.g 43 or [43,85,23]
 * @returns {Array} Array of vehicle box allocations (Affectation boitier)
 */
export async function getVehicleBoxAllocations(vehicleIds, filterParams = {}) {
  filterParams['vehicle.id'] = vehicleIds || []
  return (
    (await api.v3.get(APIUrls.APIV3_VEHICLE_BOX_ALLOCATIONS, filterParams))
      .data || []
  ).map((item) => {
    let boxConfigId = parseInt((item.boxConfiguration || '').split('/').pop())
    item.boxConfigId = boxConfigId

    return item
  })
}