Issue Description
When creating assets in Snipe-IT using the Go library, the API returns an error stating "The model id field is required" despite model_id being properly included in the request payload.
Reproduction Steps
- Initialize a Snipe-IT client
- Create an asset with model_id, status_id and manufacturer_id fields set
- Call CreateAsset method
- API returns 200 OK but with error status in the body
Expected Behavior
Asset should be created successfully when model_id is provided
Actual Behavior
API returns JSON with error status: {"status":"error","messages":{"model_id":["The model id field is required."]},"payload":null}
Technical Details
- Using rego library version: [v0.0.0-20250529045826-8981c238fe8d]
- The issue appears to be with JSON serialization - model_id is nested under Method instead of being at the root level:
// Current payload structure (problematic):
{
"name":"test-asset",
"asset_tag":"TAG123",
"serial":"SN123",
"Method":{
"manufacturer_id":1,
"model_id":2,
"status_id":2
}
}
// Expected payload structure:
{
"name":"test-asset",
"asset_tag":"TAG123",
"serial":"SN123",
"manufacturer_id":1,
"model_id":2,
"status_id":2
}
Logs
[2025/07/03 01:19:15 PM] {asset_test} {test_asset_creation.go:168} INFO - Asset payload: {"name":"example-mac-xxxx","asset_tag":"TAG-1751519955","serial":"XXXXXXXXXXXX","Method":{"manufacturer_id":1,"model_id":2,"status_id":2}}
[2025/07/03 01:19:15 PM] {asset_test} {test_asset_creation.go:171} INFO - Attempting to create asset...
[2025/07/03 01:19:15 PM] {snipeit} {snipeit.go:64} DEBUG - url: https://example.snipe-it.domain/api/v1/hardware
[2025/07/03 01:19:16 PM] {snipeit} {snipeit.go:167} INFO - Response Status: 200 OK
[2025/07/03 01:19:16 PM] {snipeit} {snipeit.go:168} DEBUG - Response Body: {"status":"error","messages":{"model_id":["The model id field is required."]},"payload":null}
[2025/07/03 01:19:16 PM] {asset_test} {test_asset_creation.go:178} FATAL - Created asset is nil but no error was returned
Issue Description
When creating assets in Snipe-IT using the Go library, the API returns an error stating "The model id field is required" despite model_id being properly included in the request payload.
Reproduction Steps
Expected Behavior
Asset should be created successfully when model_id is provided
Actual Behavior
API returns JSON with error status:
{"status":"error","messages":{"model_id":["The model id field is required."]},"payload":null}Technical Details
Logs