UNPKG

@cityssm/worktech-api

Version:

Integrations with the WorkTech (Pearl) work order management system.

35 lines (34 loc) 1.08 kB
import { NodeCache } from '@cacheable/node-cache'; import { cacheTimeToLiveSeconds } from '../../apiConfig.js'; import { getEquipment } from './getEquipment.js'; const cache = new NodeCache({ stdTTL: cacheTimeToLiveSeconds }); /** * Retrieves a piece of equipment. * @param mssqlConfig - SQL Server configuration. * @param equipmentId - The equipment id. * @param bypassCache - Whether to bypass the cache * @returns - The equipment record, if available. */ export async function getEquipmentByEquipmentId(mssqlConfig, equipmentId, bypassCache = false) { let equipment = bypassCache ? undefined : cache.get(equipmentId); if (equipment !== undefined) { return equipment; } const equipmentList = await getEquipment(mssqlConfig, { equipmentIds: [equipmentId] }); if (equipmentList.length === 0) { return undefined; } equipment = equipmentList[0]; cache.set(equipmentId, equipment); return equipment; } /** * Clears the equipment cache. */ export function clearEquipmentCache() { cache.flushAll(); }