NEXUS IC REST API Class
NEXUS IC REST API class allows the user to communicate with Wood NEXUS IC REST API using python.
Prerequisites:
Python > 3.7
NEXUS IC > V6.6
IC-Web > V6.6
- class NEXUSIC_RESTAPI.NEXUSIC_REST(icweb_uri, authentication_type='APIKEY', username=None, password=None, api_key=None, max_attempts=1, timeout=None, verbose=False, verify=True, logger=None)
- Parameters
icweb_uri – (
string
) - IC-Web URL.authentication_type –
(
string
- optional) - This can be one of the following values (default value APIKEY).['APIKEY', 'BASIC']
username – (
string
- optional) - Default value None.password – (
string
- optional) - Default value None.api_key – (
string
- optional) - Default value None.max_attempts – (
int
- optional) - Maximum number of attempts if disconnected (default value 1).timeout – (
int
- optional) - Timeout threshold in seconds (default value None).verbose – (
bool
- optional) - Print internal messages if True (default value False).verify – (
bool
- optional) - By pass SSL verification if True (default value True).
- Returns
None
- addParamToURI(uri, param, value)
- authenticate(verbose=False)
Authenticate with NEXUS IC using the defined authentication type used in the class constructor. For more details see https://docs.nexusic.com/6.6/ic-web.rest.security.login.html#ic-web-rest-security-login
- Parameters
verbose – (
bool
- optional) - Print internal messages if True (default value False).- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code.
- createNewAssets(assets, pageSize=None, verbose=False)
Imports new assets in the NEXUS IC database. This function will create the assets in the Component and View_Node tables.
- Parameters
assets –
(
list
) - Assets to be imported. Must follow the following format:assets = [{'asset_full_location': 'xxxx / xxxx', 'asset_type': 'xxxx', 'asset_view': 'xxxx'}]
where:
asset_full_location: Follows the same format as the standard NEXUS import sheet (single column)
asset_type: Asset type name as listed in the NEXUS database
asset_view: Asset view name. If provided asset view does not exist, then first entry in the Comp_View table will be used
pageSize – (
int
- optional) - Page size for response (default value None). When default is used the default NEXUS IC page size will be used (100).verbose – (
bool
- optional) - Print internal messages if True (default value False).
- Returns
(
tuple
- list, list) - List of imported assets and missed assets.
- createNewEvents(events, sameAsset=False, sameWorkpack=False, sameEventType=False, sameSurveySet=False, pageSize=None, verbose=False)
Imports new events in the NEXUS IC database. This function creates new event and doesn’t update existing events
- Parameters
events –
(
list
) - Events to be imported. Must follow the following format:events = [{'component_id': xxxx, 'asset_full_location': 'xxxx / xxxx', 'event_type': 'xxxx', 'workpack_name': 'xxxx', 'survey_set': 'xxxx', 'start_clock': 'YYYY-MM-DDThh:mm:ss.ssssZ', 'end_clock': 'YYYY-MM-DDThh:mm:ss.ssssZ', 'comment': 'xxxxx', 'fields': {'<Field Name 1>': xxx, '<Field Name 2>': xxx, '<Field Name 3>': xxx }, 'multimedia': [{'name': 'xxxx', 'filename': 'xxxx/xxxx', 'binary_data': b'xxxx'} ] } ]
where:
component_id: Optional if asset_full_location is provided - Using component_id provides better performance
asset_full_location: Optional if component_id is provided - Follows the same format as the standard NEXUS import sheet (single column)
survey_set: Optional (default value is Raw Survey Data)
start_clock and end_clock: YYYY for years, MM for months, DD for days, hh for hours, mm for minutes, ss for seconds and .ssss for milliseconds
fields: NEXUS field names are the keys (as shown in NEXUS IC)
multimedia: Optional - List of multimedia to be imported with each event
sameAsset – (
bool
- optional) - Used when all events have the same asset.sameWorkpack – (
bool
- optional) - Used when all events have the same workpack.sameEventType – (
bool
- optional) - Used when all events have the same event type.sameSurveySet – (
bool
- optional) - Used when all events have the same survey set.pageSize – (
int
- optional) - Page size for response (default value None). When default is used the default NEXUS IC page size will be used (100).verbose – (
bool
- optional) - Print internal messages if True (default value False).
- Returns
(
tuple
- list, list) - List of imported events and missed events.
- createNewRecord(tableDBName, body, key_value=0, current_attempt=1, verbose=False)
- deleteRecord(tableDBName, keyValue, current_attempt=1, verbose=False)
- execFunction(functionName, parameters=None, current_attempt=1, verbose=False)
- execUpdate(tableDBName, tableID, body, current_attempt=1, verbose=False)
- generateReport(report_name, recipient, format='XLSX', current_attempt=1, verbose=False)
- generateReport_v2(report_name=None, report_id=None, format='XLSX', parameters=None, current_attempt=1, verbose=False)
Generate a report from Report_Template table using RT_ID.
- Parameters
report_name – (
string
- optional) - Name of report as it appears in NEXUS (default value None).report_id – (
string
- optional) - RT_ID value for the report (default value None). When default is used the RT_ID will be determined from report_name.format – (
string
- optional) - Format of document to be generated (default value XLSX). json, html, xlsx, rtf are accepted types.parameters – (
tuple
- optional) - Report parameters in a json-formatted dict (default value None).current_attempt – (
int
don’t use) - This arugment is intended for internal method use only.verbose – (
bool
- optional) - Show more details in command line output (default value False).
- Returns
(
tuple
- dict, int) - server job information (json, raw or error string) and response status code.
- generate_base64(value)
Generate base64 string
- Parameters
value – (
string
) - String value to be converted to base64.- Returns
(
String
) - base64 string.
- generate_hash(verbose=False)
Generate hash key to be used in the REST calls
- Parameters
verbose – (
bool
- optional) - Print internal messages if True (default value False).- Returns
(
string
) - Hash key
- getAssetByFullLocation(fullLocation, assetView=None, pageSize=None, verbose=False)
Get Asset details from View_Node table using full location.
- Parameters
fullLocation – (
string
) - Full location is specified the same way it is defined in a typical NEXUS import sheet (single column)assetView – (
string
- optional) - Asset view name (default value None)pageSize – (
int
- optional) - Page size for response (default value None). When default is used the default NEXUS IC page size will be used (100).verbose – (
bool
- optional) - Print internal messages if True (default value False).
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code.
- getAssetChildren(assetLocation, assetView=None, searchType='MAX LEVEL', assetTypes=None, maxLevel=- 1, atLevel=- 1, pageSize=None, verbose=False)
- getAssetLocationByID(assetID, assetView, pageSize=None, verbose=False)
- getAssetLocationByName(assetName, assetView, pageSize=None, verbose=False)
- getAssetTypesID(assetTypes, pageSize=None, verbose=False)
- getDashboard(dashboard_Name, current_attempt=1, verbose=False)
- getLookupListItem(LI_ID, lookupListName=None, verbose=False)
Gets lookup item information given a lookup item ID. The lookup list name can be passed as parameter.
- Parameters
LI_ID – (
int
) - Lookup item ID in the database.lookupListName – (
string
- optional) - Lookup list name hosting the lookup item (default value None).verbose – (
bool
- optional) - Print internal messages if True (default value False).
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code.
- getMultimedia(rd_id, current_attempt=1, verbose=False)
- getTable(tableDBName, xFilter=None, pageSize=None, current_attempt=1, verbose=False)
Execute GET REST call to get data from specific table
- Parameters
tableDBName – (
string
) - Table name as specified in the database (not the NEXUS IC display table name).xFilter – (
dict
inJSON
fomrat - optional) - Used to filter data from the required table (default value None).pageSize – (
int
- optional) - Page size for response (default value None). When default is used the default NEXUS IC page size will be used (100).current_attempt – (
int
- don’t use) - This arugment is intended for internal method use only.verbose – (
bool
- optional) - Print internal messages if True (default value False).
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code.
- getTableDBNames(tableNames, tableType, pageSize=None, verbose=False)
- getTableDefInfo(tableName, tableType, pageSize=None, verbose=False)
- getVersion(current_attempt=1, verbose=False)
- get_rt_id(report_name, verbose=False)
Gets the RT_ID value from the Report_Template table using a report’s Name :param report_name: (
string
) - Name of the Report as it appears in NEXUS :param verbose: (bool
- optional) - Print internal messages if True (default value False)- Returns
(
int
) - RT_ID value
- importLibrary(library_type, l_name, filename, binary_data, ref_date=None, document_no=None, revision=None, description=None, location=None, hyperlink=None, show_grayscale=False, show_caption=True, show_dimensions=True, can_report=True, force_2d=False, background_color=None, verbose=False)
Import library item
- Parameters
library_type – (
string
) - Library type namel_name – (
string
) - Library item namefilename – (
string
) - Name of the file to be importedbinary_data – (
byte
) - The actual file as a byte variableref_date – (
datetime
- optional) - Library item reference date (default value None)document_no – (
string
- optional) - Library item document number (default value None)revision – (
string
- optional) - Library item revision (default value None)description – (
string
- optional) - Library item description (default value None)location – (
string
- optional) - Library item physical location path (default value None)hyperlink – (
string
- optional) - Library item hyperlink (default value None)show_grayscale – (
bool
- optional) - Show library as grayscale (default value False)show_caption – (
bool
- optional) - Show library captions (default value True)show_dimensions – (
bool
- optional) - Show library dimensions (default value True)can_report – (
bool
- optional) - Show library in reports (default value True)force_2d – (
bool
- optional) - Used only for Autocad files (default value False)background_color – (
int
- optional) - Background color (default value None)verbose – (
bool
- optional) - Print internal messages if True (default value False)
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code
- importMultimedia(header_id, mm_name, filename, binary_data, is_image=True, verbose=False)
Import multimedia and attach it to a specific event
- Parameters
header_id – (
int
) - Event header ID where the multimedia will be linked tomm_name – (
string
) - Multimedia name displayed in NEXUS ICfilename – (
string
) - Name of the file to be importedbinary_data – (
byte
) - The actual file as a byte variableis_image – (``bool` - optional) - Define whether the file is an image or AVI file (default value True)
verbose – (
bool
- optional) - Print internal messages if True (default value False)
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code
- importRepository(filename, binary_data, verbose=False)
This call import external documentation in the database to be used with other modules within NEXUS IC
- Parameters
filename – (
string
) - Name of the file to be importedbinary_data – (
byte
) - The actual file as a byte variableverbose – (
bool
- optional) - Print internal messages if True (default value False)
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code
- jobContent(job_id, current_attempt=1, verbose=False)
Get the Job Content of a job via its job ID.
- Parameters
job_id – (
int
) - Unique job ID provided in server response.current_attempt – (
int
don’t use) - This arugment is intended for internal method use only.verbose – (
bool
- optional) - Show more details in command line output (default value False).
- Returns
(
tuple
- dict, int) - Job Content information (json, raw or error string) and response status code.
- jobStatus(job_id, current_attempt=1, verbose=False)
Get the Job Status of a job via its job ID.
- Parameters
job_id – (
string
) - Unique job ID provided in server response.current_attempt – (
int
don’t use) - This arugment is intended for internal method use only.verbose – (
bool
- optional) - Show more details in command line output (default value False).
- Returns
(
tuple
- dict, int) - Job Status information (json, raw or error string) and response status code.
- validate_and_return_response(response, message, raw=False)
Validate response by comparing it against the acceptable status codes. Returns response and status code.
- Parameters
response – (
requests.response
) - The response from the query.message – (
string
- optional) - Desired custom error message.raw – (
bool
- optional) - Defines whether to return response raw format or json (default value False).
- Returns
(
tuple
- dict or string, string) - response (json, raw or error string) and response status code.