import * as Facility from '@labshare/facility'; import * as _ from 'lodash'; import { ReservationConstants as rConstants } from '../constants/reservation.constants'; export default class Reservations { private facilityId; private loginName; constructor(facilityId, loginName) { this.facilityId = facilityId; this.loginName = loginName; } public async add(listName, itemData, instrument) { let data = []; const proxyList = new Facility.Proxy.Lists({ facilityId: this.facilityId || '/', loginName: this.loginName, listName: listName }); const proxyItems = new Facility.Proxy.Items({ facilityId: this.facilityId || '/', loginName: this.loginName, listName }); // removing the instruments object from the payload itemData = _.omit(itemData, [rConstants.INSTRUMENTS]); // find the instrument properties positions get the index. let instrumentObjectIndex = itemData.Properties.findIndex(x => x.internalName == rConstants.INSTRUMENT); let cloneInputData = _.cloneDeep(itemData); // adding the instruments object to the properties array. cloneInputData.Properties[instrumentObjectIndex].value = { Refs: [instrument] }; // adding the item to sharepoint const Id = await proxyItems.add(cloneInputData); cloneInputData = null; return { 'id': Id }; } }