PSFloRecruit.psm1
|
#Requires -Version 5.1 # Module-scoped session state $Script:FloRecruitSession = $null $Script:PSVersionMajor = $PSVersionTable.PSVersion.Major # Configuration constants $Script:FloRecruitAuthEndpoint = 'https://florecruit.com/app/{org_name}/admin/auth/' $Script:FloRecruitApiBase = 'https://florecruit.com/app/{org_name}/api' $Script:FloRecruitApiVersion = 'v1' # Rate limiting configuration (1000 requests per 5 minutes) $Script:RateLimitMaxRequests = 1000 $Script:RateLimitWindowSeconds = 300 # Module root $ModuleRoot = $PSScriptRoot # Import Private functions $PrivateFunctions = Get-ChildItem -Path "$ModuleRoot\Private\*.ps1" -ErrorAction SilentlyContinue foreach ($Function in $PrivateFunctions) { try { . $Function.FullName Write-Verbose "Imported private function: $($Function.BaseName)" } catch { Write-Error "Failed to import private function $($Function.FullName): $_" } } # Import Public functions (recursive through subdirectories) $PublicFolders = Get-ChildItem -Path "$ModuleRoot\Public" -Directory -ErrorAction SilentlyContinue foreach ($Folder in $PublicFolders) { $PublicFunctions = Get-ChildItem -Path "$($Folder.FullName)\*.ps1" -ErrorAction SilentlyContinue foreach ($Function in $PublicFunctions) { try { . $Function.FullName Write-Verbose "Imported public function: $($Function.BaseName)" } catch { Write-Error "Failed to import public function $($Function.FullName): $_" } } } # Also import direct Public folder .ps1 files $DirectPublicFunctions = Get-ChildItem -Path "$ModuleRoot\Public\*.ps1" -ErrorAction SilentlyContinue foreach ($Function in $DirectPublicFunctions) { try { . $Function.FullName Write-Verbose "Imported public function: $($Function.BaseName)" } catch { Write-Error "Failed to import public function $($Function.FullName): $_" } } |