public/Connect-Web.ps1
<# .SYNOPSIS Establishes a connection to the BrickLink website. .DESCRIPTION The Connect-Web function authenticates and logs in to the BrickLink website using the provided credentials stored in the $script:bricklinkConfiguration variable. It sets up a web session that can be used for subsequent requests. .PARAMETER None This function does not accept any parameters. .EXAMPLE Connect-Web This example calls the Connect-Web function to establish a connection to the BrickLink website using the stored credentials. .NOTES - The function uses the $script:bricklinkConfiguration variable to retrieve the username and password for authentication. Make sure this variable is properly defined before calling the function. - The function sets the $ErrorActionPreference to 'Stop' to ensure that any errors encountered during execution are treated as terminating errors. - The function sends a POST request to the BrickLink login URL (https://www.bricklink.com/ajax/renovate/loginandout.ajax) with the provided credentials. - If the authentication is successful (status code 200), the function stores the web session in the $global:session variable for use in subsequent requests. - If the authentication fails, the function throws an exception with the error details returned by the BrickLink server. - The function uses a try-catch block to handle any errors that may occur during execution. If an error is caught, it is written to the error stream using Write-Error. .LINK Related functions or documentation links (if applicable) #> function Connect-Web { [CmdletBinding()] param () $ErrorActionPreference = 'Stop' $loginUri = 'https://www.bricklink.com/ajax/renovate/loginandout.ajax' $credentials = @{ userid = $script:bricklinkConfiguration.username password = $script:bricklinkConfiguration.secret_values.password keepme_loggedin = '1' } try { $response = Invoke-WebRequest -Uri $loginUri -Method Post -Body $credentials -SessionVariable session if ($response.StatusCode -ne 200 -or (($response.Content | ConvertFrom-Json).returnCode -ne 0)) { $jsonResponse = $response.Content | ConvertFrom-Json throw "Unable to authenticate via Bricklink web. Server returned error $($jsonResponse.returnCode): $($jsonResponse.returnMessage)" } $global:session = $session } catch { Write-Error -Message "Error running Connect-Web: $($_.Exception.Message)" } } |