The Import_Inventory_Item method is used to import new items to the inventory database.

It requires the type, the reference and the description of the item. It also needs the data parameter which is an array that must be base64-encoded and set according to RCDevs inventory specification.
There are 2 optionnal parameters : the boolean parameter active and the parameter status.

Status parameter can have 4 values:

  • Valid
  • Lost
  • Broken
  • Expired

This method returns true on success and false on error.


import requests
import json

# Define the method and parameters
method = 'Import_Inventory_Item'
params = {
    'type': 'OTP Token',
    'reference': '1916017506',
    'description': 'RCDevs RC300-T6',
    'data': [
      'TokenType': 'VE9UUA==',
      'TokenKey': 'ZGI1OTExMzY1YjBiNjAzMTViNzYg1NzEzI3MGQzOTAzYg==',
      'TokenID': 'MjM2MzUwNTUxZGM1OThiOQ==',
      'TokenState': 'NTc4OTIxODY='
    ],
    'active': True,
    'status': 'Valid'
}

# Create the request payload
request_payload = {
    'jsonrpc': "2.0",
    'method': method,
    'params': params,
    'id': 0
}

# Convert payload to JSON
json_payload = json.dumps(request_payload)

# Define the URL and credentials
url = "https://webadm1.rcdevsdocs.com/manag/"
auth = ("RCDEVSDOCS\\administrator", "password")

# Define the headers
headers = {
    "Content-Type": "application/json",
    "Connection": "close"
}

# Make the POST request
response = requests.post(url, data=json_payload, headers=headers, auth=auth, verify=False)

# Print the HTTP response code and response content
print(f"HTTP response code: {response.status_code}")
print(response.json())
    

<?php
#!/bin/php
$method = 'Import_Inventory_Item';
$params = array(
    'type' => 'OTP Token',
    'reference' => '1916017506',
    'description' => 'RCDevs RC300-T6',
    'data' => array(
      'TokenType' => 'VE9UUA==',
      'TokenKey' => 'ZGI1OTExMzY1YjBiNjAzMTViNzYg1NzEzI3MGQzOTAzYg==',
      'TokenID' => 'MjM2MzUwNTUxZGM1OThiOQ==',
      'TokenState' => 'NTc4OTIxODY='
    ),
    'active' => true,
    'status' => 'Valid'
);

$request = array(
    'jsonrpc' => "2.0",
    'method' => $method,
    'params' => $params,
    'id' => 0
);
$json = json_encode($request);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://webadm1.rcdevsdocs.com/manag/");
curl_setopt($ch, CURLOPT_USERPWD, "RCDEVSDOCS\\administrator:password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("connection: close"));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$out = curl_exec($ch);
curl_close($ch);

print_r(json_decode($out));
?>
    

# Define the method and parameters
$method = 'Import_Inventory_Item'
$params = @{
    type = 'OTP Token'
    reference = '1916017506'
    description = 'RCDevs RC300-T6'
    data = @(
      TokenType = 'VE9UUA=='
      TokenKey = 'ZGI1OTExMzY1YjBiNjAzMTViNzYg1NzEzI3MGQzOTAzYg=='
      TokenID = 'MjM2MzUwNTUxZGM1OThiOQ=='
      TokenState = 'NTc4OTIxODY='
    )
    active = $true
    status = 'Valid'
}

# Create the request payload
$requestPayload = @{
    'jsonrpc' = '2.0'
    'method' = $method
    'params' = $params
    'id' = 0
}

# Convert the request payload to JSON
$jsonPayload = $requestPayload | ConvertTo-Json

# Define the URL and credentials
$url = "https://webadm1.rcdevsdocs.com/manag/"
$auth = "RCDEVSDOCS\administrator:password"

# Make the POST request
$response = Invoke-RestMethod -Uri $url -Method Post -Body $jsonPayload -Headers @{ "Content-Type" = "application/json" } -Credential (New-Object System.Management.Automation.PSCredential($auth, (ConvertTo-SecureString "password" -AsPlainText -Force))) -SkipCertificateCheck

# Output the response
Write-Host "HTTP Response Code: $($response.status_code)"
Write-Host $response | ConvertTo-Json