@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
59 lines (42 loc) • 2.37 kB
text/typescript
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 ;
}