UNPKG

@mikezimm/npmfunctions

Version:
59 lines (42 loc) 2.37 kB
import { Web, Items, } from '@pnp/sp/presets/all'; import { getHelpfullErrorV2, saveThisLogItem } from '../Logging/ErrorHandler'; import { getExpandColumns, getSelectColumns, IZBasicList, IPerformanceSettings, createFetchList, } from '../../Lists/getV1/getFunctions'; import { IRailAnalytics } from '../Arrays/grouping'; import { getFullUrlFromSlashSitesUrl } from '../Strings/urlServices'; /** * * @param analyticsWeb * @param analyticsList * @param WebID * @param ListID * @param fetchOnlyThisList : Set to true in order to add the list ID to the rest filter to return only relavent items */ export async function fetchAnalytics( analyticsWeb: string, analyticsList: string, WebID: string, ListID: string | null = null, fetchOnlyThisList: boolean = false, theseColumns: any[] = [], top: number = 5000, baseErrorTrace: string ) { //Do nothing if either of these strings is blank if (!analyticsList) { return ; } if (!analyticsWeb) { return ; } let items: IRailAnalytics[] = []; let allColumns : any = theseColumns.length > 0 ? JSON.parse(JSON.stringify( theseColumns )) : [ 'Created','Modified','Author/Name','Author/Id','Author/Title','Id', 'Title', 'zzzRichText1', 'zzzRichText2', 'zzzRichText3', 'getParams', 'zzzNumber1', 'zzzNumber2', 'zzzNumber3', 'zzzNumber4', 'zzzNumber5', 'zzzText1', 'zzzText2', 'zzzText3', 'zzzText4', 'zzzText5', 'zzzText6', 'zzzText7', 'PageLink', 'SiteLink', 'SiteTitle', 'TargetSite', 'Result', 'TargetList', 'ListTitle', 'Setting','WebID','SiteID','CollectionUrl', 'ListID' ]; let expColumns : any = getExpandColumns(allColumns); analyticsWeb = getFullUrlFromSlashSitesUrl( analyticsWeb ); try { let web = Web(analyticsWeb); let restFilter = "WebID eq '" + WebID + "'"; if ( fetchOnlyThisList === true && ListID && ListID.length > 0 ) { restFilter += " and ListID eq '" + ListID + "'"; } if ( top == null ) { top = 5000 ; } items = await web.lists.getByTitle(analyticsList).items.select(allColumns) .expand(expColumns).filter( restFilter ).top(top).orderBy('Id',false).get(); } catch (e) { console.log('e',getHelpfullErrorV2(e, true,true, [ baseErrorTrace , 'Failed', 'Fetch Analytics', ].join('|') ) ); } return items ; }