Initial commit
This commit is contained in:
		
							
								
								
									
										54
									
								
								examples/notebook_cli.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								examples/notebook_cli.ps1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
# Define API URLs
 | 
			
		||||
$loginUrl = "http://localhost:8080/api/v1/login"
 | 
			
		||||
$generateNotebookUrl = "http://localhost:8080/api/v1/notebook"
 | 
			
		||||
$docsUrl = "http://localhost:8080/swagger/doc.json"  # URL to fetch the docs.json
 | 
			
		||||
 | 
			
		||||
# User credentials
 | 
			
		||||
$username = "admin"
 | 
			
		||||
$password = "defaultPassword" # Replace with the actual password
 | 
			
		||||
 | 
			
		||||
# Prepare login request body
 | 
			
		||||
$loginBody = @{
 | 
			
		||||
    username = $username
 | 
			
		||||
    password = $password
 | 
			
		||||
} | ConvertTo-Json
 | 
			
		||||
 | 
			
		||||
# Send login request
 | 
			
		||||
$response = Invoke-RestMethod -Method Post -Uri $loginUrl -Body $loginBody -ContentType "application/json"
 | 
			
		||||
 | 
			
		||||
# Extract token from login response
 | 
			
		||||
$token = $response.token
 | 
			
		||||
 | 
			
		||||
# Check if we got a token
 | 
			
		||||
if (-not $token) {
 | 
			
		||||
    Write-Error "Authentication failed"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Prepare the request header with the received token
 | 
			
		||||
$headers = @{
 | 
			
		||||
    Authorization = "Bearer $token"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Fetch the docs.json
 | 
			
		||||
$docs = Invoke-RestMethod -Uri $docsUrl
 | 
			
		||||
 | 
			
		||||
# Extract NotebookRuleInput model
 | 
			
		||||
$notebookRuleInputModel = $docs.definitions."rules.NotebookRuleInput".properties
 | 
			
		||||
 | 
			
		||||
# Create newNotebookParams based on the NotebookRuleInput model
 | 
			
		||||
$newNotebookParams = @{}
 | 
			
		||||
foreach ($prop in $notebookRuleInputModel.PSObject.Properties) {
 | 
			
		||||
    $userInput = Read-Host -Prompt "Enter value for $($prop.Name)"
 | 
			
		||||
    $newNotebookParams[$prop.Name] = $userInput
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Convert newNotebookParams to JSON
 | 
			
		||||
$newNotebookParamsJson = $newNotebookParams | ConvertTo-Json
 | 
			
		||||
 | 
			
		||||
# Send request to generate a new notebook
 | 
			
		||||
$newNotebookResponse = Invoke-RestMethod -Method Post -Uri $generateNotebookUrl -Headers $headers -Body $newNotebookParamsJson -ContentType "application/json"
 | 
			
		||||
 | 
			
		||||
# Output the response
 | 
			
		||||
Write-Output "New Notebook Response:"
 | 
			
		||||
$newNotebookResponse
 | 
			
		||||
		Reference in New Issue
	
	Block a user