UNPKG

@mikezimm/fps-core-v7

Version:

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

122 lines (120 loc) 7.29 kB
import { doSpHttpFetchOrPostAndCheck } from '../../../components/molecules/SpHttp/Sp/doSpHttpFetch'; // import { startPerformOpV2, updatePerformanceEndV2 } from '../../../components/molecules/Performance/functions'; // import { checkItemsResults } from '../../../components/molecules/process-results/CheckItemsResults'; import { check4This, Check4 } from '../../../logic/Links/CheckSearch'; // import { IPerformanceSettings } from '../../../components/molecules/Performance/IPerformanceSettings'; import { createErrorFpsListReturn } from '../../../components/molecules/process-results/createErrorFpsListItemsReturn'; // import { IPerformanceOp } from '../../../components/molecules/Performance/IPerformance'; import { SourcePropsNoWebUrl } from '../../../components/molecules/source-props/ISourceProps'; import { getAbsoluteWebUrlFromSourceProps, } from '../../../logic/Strings/getAbssoluteWebUrlFromSourceProps'; import { UserSelectsFull } from '../users/UserSelects'; export async function checkCurrentUserInGroup(sourceProps, GroupName, LoginName) { // const results: IFpsItemsReturn = await getGroupMembersAPI( absoluteWebUrl, GroupName, `Title eq '${LoginName}'`, false, true ); // 2024-12-05: Noticed next line may have error: The rest filter is Title eq and property says LoginName const results = await getGroupMembersAPI({ ...sourceProps, ...{ restFilter: `Title eq '${LoginName}'` } }, GroupName, false, true); return results; } export async function getAllUsersInGroup(sourceProps, GroupName) { // const results: IFpsItemsReturn = await getGroupMembersAPI( absoluteWebUrl, GroupName, `Title eq '${LoginName}'`, false, true ); const results = await getGroupMembersAPI({ ...sourceProps, restFilter: '' }, GroupName, false, true); return results; } export async function getGroupMembersAPI(sourceProps, GroupName, alertMe, consoleLog) { const { restFilter, selectThese = UserSelectsFull } = sourceProps; const useUrl = getAbsoluteWebUrlFromSourceProps(sourceProps); if (!useUrl) { // NO WebURL... Throw Alert if (alertMe === true) alert(`getGroupInfoAPI: ${SourcePropsNoWebUrl}`); const results = createErrorFpsListReturn(useUrl, ''); results.status = 'NoWeb'; return results; } if (!GroupName) { // NO WebURL... Throw Alert if (alertMe === true) alert(`${''} SourceProps does NOT have an GroupName`); const results = createErrorFpsListReturn(useUrl, ''); results.statusText = 'No GroupName'; results.status = 'NoGroup'; return results; } /** SAMPLE Full SharePoint Items Rest call: https://example.sharepoint.com/sites/MySite/_api/web/sitegroups/getbyname('GroupName')/users? $select=Id,Title,EULAText,ExpandedField1/Id,ExpandedField1/Title,ExpandedField2/Id,ExpandedField2/Title& $expand=ExpandedField1,ExpandedField2& $filter=Title eq 'SomeTitle'& $orderby=Id desc */ let fetchAPI = `${useUrl}/_api/web/sitegroups/getbyname('${GroupName}')/users?`; fetchAPI += `&$select=${selectThese.join(',')}`; fetchAPI += `&$orderby=Title asc`; if (restFilter) fetchAPI += `&$filter=${restFilter}`; const result = await doSpHttpFetchOrPostAndCheck(fetchAPI, 'GET', sourceProps.fpsSpService, '', alertMe, consoleLog, 'users', false, null); // result.users = result.items ? result.items : []; // result.fpsContentType = [ 'user' ]; result.unifiedPerformanceOps.fetch.label = `${GroupName} Users`; // result.unifiedPerformanceOps.fetch.c = result.users.length; // Add any required custom logic here // if ( resultHubSites.ok ) { // resultHubSites.items = cleanSearchedWebs( resultHubSites.items ); // } if (check4This(Check4.fpsShowFetchResults_Eq_true) === true) { console.log(`fps-core-v7 COMPLETE: getGroupMembersAPI ~ 87`, result); } return result; } /** * Original kept for now until this has been tested */ // export async function getGroupMembersAPI( sourceProps: ISourceProps, GroupName: string, alertMe: boolean | undefined, consoleLog: boolean | undefined, ): Promise<IFpsUsersReturn> { // const { restFilter, digestValue = '', selectThese = UserSelectsFull } = sourceProps; // const performanceSettings: IPerformanceSettings = { label: GroupName, includeMsStr: true, updateMiliseconds: true, op: 'fetch' }; // const fetchOp = performanceSettings ? startPerformOpV2( performanceSettings ) : null; // const useUrl: string = getAbsoluteWebUrlFromSourceProps( sourceProps ); // if ( !useUrl ) { // // NO WebURL... Throw Alert // if ( alertMe === true ) alert(`getGroupInfoAPI: ${SourcePropsNoWebUrl}`); // const results: IFpsUsersReturn = createErrorFpsListReturn( useUrl, '' ) as IFpsUsersReturn; // results.status = 'NoWeb'; // return results; // } // if ( !GroupName ) { // // NO WebURL... Throw Alert // if ( alertMe === true ) alert(`${''} SourceProps does NOT have an GroupName`); // const results: IFpsUsersReturn = createErrorFpsListReturn( useUrl, '' ) as IFpsUsersReturn; // results.statusText = 'No GroupName'; // results.status = 'NoGroup'; // return results; // } // /** // SAMPLE Full SharePoint Items Rest call: // https://example.sharepoint.com/sites/MySite/_api/web/sitegroups/getbyname('GroupName')/users? // $select=Id,Title,EULAText,ExpandedField1/Id,ExpandedField1/Title,ExpandedField2/Id,ExpandedField2/Title& // $expand=ExpandedField1,ExpandedField2& // $filter=Title eq 'SomeTitle'& // $orderby=Id desc // */ // let fetchAPI: string = `${useUrl}/_api/web/sitegroups/getbyname('${GroupName}')/users?`; // fetchAPI += `$select=${selectThese.join(',')}&`; // fetchAPI += `$orderby=Title asc`; // // if ( restFilter ) fetchAPI+= `&$filter=${ encodeURIComponent(restFilter) }&`; // if ( restFilter ) fetchAPI+= `&$filter=${ restFilter }&`; // const initialResult: IFpsUsersReturn = await doSpJsFetchOrPost( fetchAPI, 'GET', digestValue, '', null ) as unknown as IFpsUsersReturn; // initialResult.users = initialResult.items ? initialResult.items : []; // // Add any required custom logic here // // if ( resultHubSites.ok ) { // // resultHubSites.items = cleanSearchedWebs( resultHubSites.items ); // // } // result.fpsContentType = [ 'user' ]; // const result : IFpsUsersReturn = checkItemsResults( initialResult, `fps-core-v7: getGroupMembersAPI ~ 78`, alertMe, consoleLog ) as IFpsUsersReturn; // result.unifiedPerformanceOps.fetch = performanceSettings ? // updatePerformanceEndV2( { op: fetchOp as IPerformanceOp, updateMiliseconds: performanceSettings.updateMiliseconds, count: result.items ? result.items.length : 0 }) // : null as any; // 2024-09-29: set null as any to pass build error. // result.fetchOp = result.unifiedPerformanceOps.fetch; // if ( check4This( Check4.fpsShowFetchResults_Eq_true ) === true ) { console.log( `fps-core-v7 COMPLETE: getGroupMembersAPI ~ 87`, result ) }; // return result; // } //# sourceMappingURL=getGroupMembersAPI.js.map