@neptunfreight/lisapiconnector
v1.1.5
Published
A Node.js library for connecting to the LIS API with built-in authentication, token management, and InfluxDB logging capabilities.
Downloads
104
Readme
LIS API Connector
A Node.js library for connecting to the LIS API with built-in authentication, token management, and InfluxDB logging capabilities.
Installation
npm install @neptunfreight/lisapiconnectorEnvironment Variables
Create a .env file in your project root with the following variables:
# InfluxDB Configuration (required for logging)
INFLUX_HOST=your-influx-host
INFLUX_PORT=8086
INFLUX_USER=your-influx-username
INFLUX_PASSWORD=your-influx-password
INFLUX_DATABASE=your-database-nameUsage
Basic Setup
import LisApiConnector from "@neptunfreight/lisapiconnector";
const connector = new LisApiConnector(
"https://your-lis-api-host.com",
"your-username",
"your-password",
);Authentication
The library automatically handles authentication and token management:
- Creates an access token on initialization
- Caches the token in
.lisAccessTokenfile - Automatically refreshes expired tokens
- Uses Basic Auth for initial authentication and Bearer tokens for API requests
Available Methods
getDMSDocumentListByOrderId(orderId)
Retrieves a list of DMS documents for a specific order.
const documents = await connector.getDMSDocumentListByOrderId("12345");
console.log(documents.data);getDocumentDetail(documentId)
Fetches detailed information for a specific document.
const detail = await connector.getDocumentDetail("doc-123");
console.log(detail.data);getComercialDocuments(orderId)
Retrieves commercial documents (Handelsrechnung) for an order.
const comercialDocs = await connector.getComercialDocuments("12345");
console.log(comercialDocs);getCustomsDocuments(orderId)
Retrieves customs documents (Zolldokumente) for an order.
const customsDocs = await connector.getCustomsDocuments("12345");
console.log(customsDocs);getDocumentsByType(orderId, docTypeName)
Retrieves documents filtered by a specific type name.
const docs = await connector.getDocumentsByType("12345", "Handelsrechnung");
console.log(docs);postStatus(orderId, status)
Posts a status update for an order.
const statusData = {
/* your status object */
};
const response = await connector.postStatus("12345", statusData);
console.log(response.data);getTourByTourNumber(tourNumber)
Gets a tour by its tour number.
const tour = await connector.getTourByTourNumber("12345");
console.log(tour.data);getTransportSectionsByTourId(tourId)
Gets transport sections by tour ID.
const transportSections = await connector.getTransportSectionsByTourId("12345");
console.log(transportSections.data);getCustomerById(customerId, scope)
Gets a customer by ID.
const customer = await connector.getCustomerById("12345", "All");
console.log(customer.data);Features
- Automatic Token Management: Handles token creation, caching, and refresh
- InfluxDB Logging: Automatically logs all API responses and errors to InfluxDB
- Error Handling: Built-in error handling with logging for all API methods
- File-based Token Cache: Stores access tokens locally to minimize authentication requests
Logging
All API requests and errors are automatically logged to InfluxDB with:
- Measurement:
lis_api_status - Fields:
statusResponse(HTTP status code),errorMessage - Tags:
user_id(username used for authentication)
Dependencies
axios- HTTP clientdotenv- Environment variable managementinflux- InfluxDB client
License
ISC
Author
Sven Kronshage
