UNPKG

@cityssm/worktech-api

Version:

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

39 lines (38 loc) 1.41 kB
import { connect } from '@cityssm/mssql-multi-pool'; import { clearEquipmentCache } from './getEquipmentByEquipmentId.js'; const columnNameMappings = { equipmentDescription: 'DESC', equipmentStatus: 'Status', equipmentClass: 'ItemClass', serialNumber: 'Serial', plate: 'Plate', equipmentBrand: 'Brand', equipmentModel: 'Model', equipmentModelYear: 'Year', departmentOwned: 'Dept', location: 'Location', comments: 'Comments', odometer: 'Odom' }; /** * Updates fields for a piece of equipment. * @param mssqlConfig - SQL Server configuration. * @param equipmentSystemId - The equipment system id. * @param fieldsToUpdate - The fields to update. * @returns True if the update was successful. */ export async function updateEquipmentFields(mssqlConfig, equipmentSystemId, fieldsToUpdate) { const pool = await connect(mssqlConfig); let request = pool.request(); const updateList = []; for (const [fieldName, fieldValue] of Object.entries(fieldsToUpdate)) { const columnName = columnNameMappings[fieldName]; updateList.push(`[${columnName}] = @${fieldName}`); request = request.input(fieldName, fieldValue); } await request.input('equipmentSystemId', equipmentSystemId).query(`update WMITM set ${updateList.join(', ')} where ITMSysID = @equipmentSystemId`); clearEquipmentCache(); return true; }