62 lines
2.1 KiB
PowerShell
62 lines
2.1 KiB
PowerShell
param(
|
|
[string]$BaseUrl = "http://127.0.0.1:8082",
|
|
[string]$ApiToken = "atk_nKfVWLhMjL0RGSfRll3R_sdJS6IrIjuV"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$headers = @{
|
|
"X-Api-Token" = $ApiToken
|
|
"Accept" = "application/json"
|
|
}
|
|
|
|
function Invoke-ApiCheck {
|
|
param(
|
|
[string]$Name,
|
|
[string]$Path,
|
|
[string]$Method = "GET",
|
|
[object]$Body = $null
|
|
)
|
|
|
|
$uri = "$BaseUrl$Path"
|
|
$requestHeaders = @{} + $headers
|
|
$params = @{
|
|
Uri = $uri
|
|
Method = $Method
|
|
Headers = $requestHeaders
|
|
TimeoutSec = 8
|
|
}
|
|
|
|
if ($null -ne $Body) {
|
|
$params.ContentType = "application/json"
|
|
$params.Body = ($Body | ConvertTo-Json -Depth 10 -Compress)
|
|
}
|
|
|
|
try {
|
|
$response = Invoke-RestMethod @params
|
|
Write-Host "[PASS] $Name"
|
|
return $response
|
|
} catch {
|
|
Write-Host "[FAIL] $Name - $($_.Exception.Message)"
|
|
throw
|
|
}
|
|
}
|
|
|
|
Invoke-ApiCheck "health" "/api/v1/system/health" | Out-Null
|
|
Invoke-ApiCheck "storage" "/api/v1/system/storage" | Out-Null
|
|
Invoke-ApiCheck "time" "/api/v1/system/time" | Out-Null
|
|
Invoke-ApiCheck "sync version" "/api/v1/sync/version" | Out-Null
|
|
Invoke-ApiCheck "sync state k210" "/api/v1/sync/state?client=k210&last_version=0" | Out-Null
|
|
Invoke-ApiCheck "sync state stm32" "/api/v1/sync/state?client=stm32&last_version=0" | Out-Null
|
|
Invoke-ApiCheck "records" "/api/v1/attendance/records?limit=10&offset=0" | Out-Null
|
|
Invoke-ApiCheck "statistics" "/api/v1/attendance/statistics" | Out-Null
|
|
Invoke-ApiCheck "time slots" "/api/v1/config/time-slots" | Out-Null
|
|
Invoke-ApiCheck "duplicate check" "/api/v1/attendance/duplicates?student_id=1&slot_start=00:00&slot_end=23:59" | Out-Null
|
|
Invoke-ApiCheck "today records" "/api/v1/attendance/today?slot_start=00:00&slot_end=23:59" | Out-Null
|
|
Invoke-ApiCheck "students" "/api/v1/students" | Out-Null
|
|
Invoke-ApiCheck "classes" "/api/v1/classes" | Out-Null
|
|
Invoke-ApiCheck "face profiles" "/api/v1/face_profiles" | Out-Null
|
|
Invoke-ApiCheck "face photos" "/api/v1/faces/photos" | Out-Null
|
|
Invoke-ApiCheck "sync request" "/api/v1/sync/request" | Out-Null
|
|
|
|
Write-Host "All regression API checks passed."
|