Skip to content

Asset Module

Christian KASSE edited this page Apr 2, 2026 · 2 revisions

Asset Module

The Asset module provides asset management including fixed assets, vehicles, maintenance (logs and schedules), and fleet management (fuel logs and trip logs).

Client Access

var asset = essabu.asset();

Available API Classes

Class Accessor Description
AssetApi asset.assets() Fixed asset CRUD
VehicleApi asset.vehicles() Vehicle management
MaintenanceApi asset.maintenance() Maintenance logs and schedules
FleetApi asset.fleet() Fuel logs and trip logs

AssetApi

Standard CRUD at /api/asset/assets.

Map assetItem = asset.assets().create(Map.of(
    "name", "Office Laptop", "category", "IT Equipment",
    "purchaseDate", "2026-01-15", "purchasePrice", 1500.00,
    "depreciationMethod", "straight-line", "usefulLifeMonths", 36
));

VehicleApi

Standard CRUD at /api/asset/vehicles.

Map vehicle = asset.vehicles().create(Map.of(
    "make", "Toyota", "model", "Hilux", "year", 2025,
    "licensePlate", "ABC-1234", "mileage", 0
));

MaintenanceApi

Method Endpoint Description
listLogs(PageRequest) GET /api/asset/maintenance-logs List logs
getLogById(UUID) GET /api/asset/maintenance-logs/{id} Get log
createLog(Map) POST /api/asset/maintenance-logs Create log
updateLog(UUID, Map) PUT /api/asset/maintenance-logs/{id} Update log
deleteLog(UUID) DELETE /api/asset/maintenance-logs/{id} Delete log
listSchedules(PageRequest) GET /api/asset/maintenance-schedules List schedules
createSchedule(Map) POST /api/asset/maintenance-schedules Create schedule
Map log = asset.maintenance().createLog(Map.of(
    "assetId", vehicleId, "type", "oil-change",
    "date", "2026-03-26", "cost", 85.00
));
Map schedule = asset.maintenance().createSchedule(Map.of(
    "assetId", vehicleId, "type", "oil-change",
    "intervalDays", 90, "nextDueDate", "2026-06-26"
));

FleetApi

Method Endpoint Description
listFuelLogs(PageRequest) GET /api/asset/fuel-logs List fuel logs
createFuelLog(Map) POST /api/asset/fuel-logs Create fuel log
listTripLogs(PageRequest) GET /api/asset/trip-logs List trip logs
createTripLog(Map) POST /api/asset/trip-logs Create trip log
Map fuelLog = asset.fleet().createFuelLog(Map.of(
    "vehicleId", vehicleId, "liters", 45.0,
    "costPerLiter", 1.85, "odometer", 15230, "date", "2026-03-26"
));
Map tripLog = asset.fleet().createTripLog(Map.of(
    "vehicleId", vehicleId, "driverId", driverId,
    "startOdometer", 15230, "endOdometer", 15380
));

Error Scenarios

HTTP Status Cause
400 Invalid request data (missing asset name, invalid date)
401 Missing or expired authentication token
403 Insufficient permissions
404 Asset, vehicle, or log not found
409 Conflict (duplicate license plate)
422 Business rule violation (end odometer less than start)

Clone this wiki locally