Files
onvif-go/errors.go
0x524a 9e3b5e0170 feat: add comprehensive ONVIF test reports and enhance documentation
- Introduced CAMERA_TEST_REPORT.md and COMPREHENSIVE_TEST_SUMMARY.md to document testing results for the Bosch FLEXIDOME indoor 5100i IR camera.
- Added detailed analysis of ONVIF Media Service operations and implementation status in MEDIA_OPERATIONS_ANALYSIS.md and MEDIA_WSDL_OPERATIONS_ANALYSIS.md.
- Updated implementation status documentation to reflect the completion of all 79 operations in the ONVIF Media Service.
- Enhanced existing comments and documentation across various files for better clarity and consistency.
2025-12-02 02:29:51 -05:00

118 lines
4.2 KiB
Go

package onvif
import (
"errors"
"fmt"
)
var (
// ErrInvalidEndpoint is returned when the endpoint is invalid.
ErrInvalidEndpoint = errors.New("invalid endpoint")
// ErrAuthenticationRequired is returned when authentication is required but not provided.
ErrAuthenticationRequired = errors.New("authentication required")
// ErrAuthenticationFailed is returned when authentication fails.
ErrAuthenticationFailed = errors.New("authentication failed")
// ErrServiceNotSupported is returned when a service is not supported by the device.
ErrServiceNotSupported = errors.New("service not supported")
// ErrInvalidResponse is returned when the response is invalid.
ErrInvalidResponse = errors.New("invalid response")
// ErrTimeout is returned when a request times out.
ErrTimeout = errors.New("request timeout")
// ErrConnectionFailed is returned when connection to the device fails.
ErrConnectionFailed = errors.New("connection failed")
// ErrInvalidParameter is returned when a parameter is invalid.
ErrInvalidParameter = errors.New("invalid parameter")
// ErrNotInitialized is returned when the client is not initialized.
ErrNotInitialized = errors.New("client not initialized")
// ErrNoProbeMatches is returned when no probe matches are found during discovery.
ErrNoProbeMatches = errors.New("no probe matches found")
// ErrNetworkInterfaceNotFound is returned when a network interface is not found.
ErrNetworkInterfaceNotFound = errors.New("network interface not found")
// ErrHTTPRequestFailed is returned when an HTTP request fails.
ErrHTTPRequestFailed = errors.New("HTTP request failed")
// ErrEmptyResponseBody is returned when a response body is empty.
ErrEmptyResponseBody = errors.New("received empty response body")
// ErrVideoSourceNotFound is returned when a video source is not found.
ErrVideoSourceNotFound = errors.New("video source not found")
// ErrProfileNotFound is returned when a profile is not found.
ErrProfileNotFound = errors.New("profile not found")
// ErrSnapshotNotSupported is returned when snapshot is not supported for a profile.
ErrSnapshotNotSupported = errors.New("snapshot not supported for profile")
// ErrPTZNotSupported is returned when PTZ is not supported for a profile.
ErrPTZNotSupported = errors.New("PTZ not supported for profile")
// ErrPresetNotFound is returned when a preset is not found.
ErrPresetNotFound = errors.New("preset not found")
// ErrTestRequestFailed is returned when a test request fails.
ErrTestRequestFailed = errors.New("test request failed")
// ErrTestRequestNewFailed is returned when creating a test request fails.
ErrTestRequestNewFailed = errors.New("test request creation failed")
// ErrTestRequestDoFailed is returned when executing a test request fails.
ErrTestRequestDoFailed = errors.New("test request execution failed")
// ErrTestRequestUnexpectedStatus is returned when a test request has unexpected status.
ErrTestRequestUnexpectedStatus = errors.New("test request unexpected status")
// ErrURLMissingHost is returned when a URL is missing a host.
ErrURLMissingHost = errors.New("URL missing host")
// ErrInvalidEndpointFormat is returned when an endpoint format is invalid.
ErrInvalidEndpointFormat = errors.New("invalid endpoint format")
// ErrDigestAuthRequiresCredentials is returned when digest auth is attempted without credentials.
ErrDigestAuthRequiresCredentials = errors.New("digest auth requires credentials")
// ErrDownloadFailed is returned when a download fails.
ErrDownloadFailed = errors.New("download failed")
// ErrRegularError is a test error used for testing error handling.
ErrRegularError = errors.New("regular error")
)
// ONVIFError represents an ONVIF-specific error.
type ONVIFError struct {
Code string
Reason string
Message string
}
// Error implements the error interface.
func (e *ONVIFError) Error() string {
return fmt.Sprintf("ONVIF error [%s]: %s - %s", e.Code, e.Reason, e.Message)
}
// NewONVIFError creates a new ONVIF error.
func NewONVIFError(code, reason, message string) *ONVIFError {
return &ONVIFError{
Code: code,
Reason: reason,
Message: message,
}
}
// IsONVIFError checks if an error is an ONVIF error.
func IsONVIFError(err error) bool {
var onvifErr *ONVIFError
return errors.As(err, &onvifErr)
}