UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

150 lines 7.46 kB
import { getHelpfullError } from '../../../logic/Errors/friendly'; import { getCurrentPageLink, getUrlParamsWithBloatCheck, getWebUrlFromLink, makeListLink, makeSiteLink } from '../../../logic/Links/UrlFunctions'; import * as AL from '../interfaces/EasyContents'; import { check4This, Check4 } from '../../../logic/Links/CheckSearch'; import { createAnalyticsSourceProps } from '../../../components/atoms/easy-analytics/functions/createAnalyticsSourceProps'; import { postSourceItemAPI } from '../../lists/items/postSourceItemAPI'; import { makeAbsoluteUrl } from '../../../logic/Strings/getSiteCollectionUrlFromLink'; /** * 2024-12-08: EVALUATE Refactoring this... it may be really close to saveAnalytics2,3,4 * After further review, this could be condensed and combined with savePermissionHistoryD. * Just add it in the if-save loop once it's smaller. * And of course, send to saveAnalytics4 * * 2025-01-03: Migrated from fps-library-v2/lib/pnpjs/Permissions, pnp2/lib/services/sp/perms * combination of v2: savePermissionAnalyticsD, * * import { savePermissionAnalyticsAPI } from "@mikezimm/fps-core-v7/lib/restAPIs/logging/Permissions/savePermissionAnalyticsAPI"; * * * @param analyticsWeb * @param analyticsList * @param SiteLink * @param webTitle * @param saveTitle * @param TargetSite * @param TargetList * @param itemInfo1 * @param itemInfo2 * @param result * @param RichTextJSON1 * @param Setting * @param RichTextJSON2 * @param RichTextJSON3 * @returns */ export async function savePermissionAnalyticsAPI(fpsSpService, analyticsWeb, analyticsList, SiteLink, webTitle, saveTitle, TargetSite, TargetList, itemInfo1, itemInfo2, result, RichTextJSON1, Setting, RichTextJSON2, RichTextJSON3) { //Do nothing if either of these strings is blank if (!analyticsList) { return; } if (!analyticsWeb) { return; } let finalSaveObject = { Title: saveTitle, Result: result, PageLink: getCurrentPageLink(), // REFACTOR NOTE: saveAnalytics2 handles the PageLink for you. }; let startTime = getTheCurrentTime(); finalSaveObject.zzzText1 = startTime.now; finalSaveObject.zzzText2 = startTime.theTime; let TargetListValues = TargetList ? TargetList.split('|') : [null]; finalSaveObject.getParams = getUrlParamsWithBloatCheck(); finalSaveObject.Setting = Setting; /** * REFACTOR NOTE: saveAnalytics2 handles the strignifying this automatically. */ // console.log('saveAnalytics StringifyActionJson: ', RichTextJSON1, RichTextJSON2, RichTextJSON3 ); if (RichTextJSON1) finalSaveObject.zzzRichText1 = JSON.stringify(RichTextJSON1); if (RichTextJSON2) finalSaveObject.zzzRichText2 = JSON.stringify(RichTextJSON2); if (RichTextJSON3) finalSaveObject.zzzRichText3 = JSON.stringify(RichTextJSON3); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ if (analyticsList === AL.EasyContentsRailsGroups || analyticsList === AL.EasyContentsRailsApply || analyticsList === AL.PermissionsHistory) { //Rails Off finalSaveObject.ListTitle = itemInfo1; let infos2 = itemInfo2 ? itemInfo2.split('|') : []; finalSaveObject.zzzText3 = infos2[0]; finalSaveObject.zzzText7 = infos2[1] ? parseInt(infos2[1]) < 10 ? '0' + infos2[1] : infos2[1] : undefined; //stepOrder finalSaveObject.zzzNumber4 = infos2[2] ? parseInt(infos2[2]) : undefined; finalSaveObject.zzzNumber5 = infos2[3] ? parseInt(infos2[3]) : undefined; finalSaveObject.zzzText1 = infos2[4] ? infos2[4] : undefined; finalSaveObject.zzzText4 = infos2[5] ? infos2[5] : undefined; let tempSite = TargetSite ? TargetSite.split('|') : []; TargetSite = tempSite[0] ? tempSite[0] : null; finalSaveObject.WebID = tempSite[1] ? tempSite[1] : null; finalSaveObject.CollectionUrl = tempSite[2] ? tempSite[2] : null; finalSaveObject.SiteID = tempSite[3] ? tempSite[3] : null; finalSaveObject.zzzText5 = finalSaveObject.SiteID; //Add List ID if it's available if (TargetListValues.length > 0 && TargetListValues[1]) { finalSaveObject.ListID = TargetListValues[1]; } let tempTitle = saveTitle.split('|'); finalSaveObject.zzzText6 = tempTitle[1] ? tempTitle[1] : undefined; //Get scope - site or list } else { finalSaveObject.zzzText3 = itemInfo1; finalSaveObject.zzzText4 = itemInfo2; } /** * WARNING, ALWAYS be sure to add this saving items - Pivot Tiles Permissions Save ;( */ // finalSaveObject.__metadata = { type: `SP.Data.${analyticsList}ListItem` }; /** * REFACTOR NOTE: saveAnalytics2 handles the Site Link for you automatically. */ SiteLink = getWebUrlFromLink(SiteLink, 'abs'); if (webTitle === '' || !webTitle) { finalSaveObject.SiteTitle = SiteLink.substring(SiteLink.lastIndexOf("/") + 1); } finalSaveObject.SiteLink = { 'Url': makeAbsoluteUrl(SiteLink), 'Description': finalSaveObject.SiteTitle, }; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /** * REFACTOR NOTE: saveAnalytics2 handles TargetSite and TargetList automatically. * NOTE: You need to just add the url to the subproperty: loadProperties.TargetSite, loadProperties.TargetList */ if (TargetSite) finalSaveObject.TargetSite = makeSiteLink(TargetSite, finalSaveObject.SiteTitle); if (TargetList) finalSaveObject.TargetList = makeListLink(TargetListValues[0], webTitle); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /** * REFACTOR NOTE: saveAnalytics2 handles creating SourceProps, DigestValue and the call * NOTE: You need to just add the url to the subproperty: loadProperties.TargetSite, loadProperties.TargetList */ // https://github.com/mikezimm/pivottiles7/issues/417 const sourceProps = createAnalyticsSourceProps(fpsSpService, `${analyticsList}`, analyticsWeb); // 2024-12-22: digestValue not required when using SpHTTPClient // sourceProps.digestValue = await getThisFPSDigestValueFromUrl(analyticsWeb); const saveResult = await postSourceItemAPI(sourceProps, finalSaveObject, false, true); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // This was the Pnp2 call: // const saveResult = await saveThisLogItemAsync( analyticsWeb, analyticsList, finalSaveObject, false ); if (saveResult.status !== 'Success') { const err = getHelpfullError(saveResult, false, false, true); if (check4This(Check4.fpsShowFetchResults_Eq_true) === true) { console.log(`fps-core-v7 ERROR: savePermissionAnalytics ~ 181`, err); alert(`saveThisLogItemError\n\n${err.friendly}`); } ; } } export function getTheCurrentTime() { const now = new Date(); const theTime = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "." + now.getMilliseconds(); let result = { 'now': now, 'theTime': theTime, 'milliseconds': now.getMilliseconds(), }; return result; } //# sourceMappingURL=savePermissionAnalyticsAPI.js.map