Appearance
useAssetsApi Composable ​
File Information ​
- Path:
app/composables/api/useAssetsApi.ts - Purpose: Asset operations API (view count, details, conversion, download tracking)
- Category: Asset API Composable
Overview ​
The useAssetsApi composable provides functionality for asset-related operations including viewing asset counts, fetching asset details, converting asset resolution, and recording download history.
Functions ​
viewAssetsCountApi ​
Records asset view count.
Signature:
typescript
viewAssetsCountApi(payload: any): Promise<any>Parameters:
payload: any- View count payload (typically includes asset IDs)
Returns:
Promise<any>- Response data
API Endpoint: POST /digital/view-asset-count
Usage:
typescript
const { viewAssetsCountApi } = useAssetsApi()
await viewAssetsCountApi({
asset_ids: [1, 2, 3],
workspace_id: workspaceId
})getAssetDetails ​
Fetches detailed information about a specific asset.
Signature:
typescript
getAssetDetails(
id: any,
workspace_id: any
): Promise<any>Parameters:
id: any- Asset IDworkspace_id: any- Workspace ID
Returns:
Promise<any>- Asset details response
API Endpoint: POST /digital/view-detail?digital_assets_id={id}&workspace_id={workspace_id}
Usage:
typescript
const { getAssetDetails } = useAssetsApi()
const details = await getAssetDetails(assetId, workspaceId)
// details contains full asset informationconvertResolution ​
Converts asset to a different resolution/format.
Signature:
typescript
convertResolution(params: any): Promise<Blob>Parameters:
params: any- Conversion parameters (asset ID, resolution, format, etc.)
Returns:
Promise<Blob>- Converted asset as blob
API Endpoint: POST /digital/convert-asset (responseType: "blob")
Usage:
typescript
const { convertResolution } = useAssetsApi()
const blob = await convertResolution({
digital_assets_id: assetId,
workspace_id: workspaceId,
resolution: '1920x1080',
format: 'png'
})
// Use blob for download or display
const url = URL.createObjectURL(blob)recordDownloadHistory ​
Records asset download in history.
Signature:
typescript
recordDownloadHistory(params: any): Promise<any>Parameters:
params: any- Download parameters (asset ID, workspace ID, etc.)
Returns:
Promise<any>- Response data
API Endpoint: POST /digital/download-count?{params}
Usage:
typescript
const { recordDownloadHistory } = useAssetsApi()
await recordDownloadHistory({
digital_assets_id: assetId,
workspace_id: workspaceId
})Error Handling ​
All functions include error handling, but errors are not explicitly caught in the composable. Components should handle errors:
typescript
try {
const details = await getAssetDetails(assetId, workspaceId)
} catch (error) {
console.error('Failed to get asset details:', error)
// Handle error in UI
}Integration with API Client ​
The composable uses the global $api client:
typescript
const { $api } = useNuxtApp()Use Cases ​
View Asset Details ​
typescript
const { getAssetDetails } = useAssetsApi()
const loadAssetDetails = async (assetId: string) => {
try {
const details = await getAssetDetails(assetId, workspaceId)
// Display asset details...
} catch (error) {
// Show error message
}
}Convert and Download Asset ​
typescript
const { convertResolution, recordDownloadHistory } = useAssetsApi()
const convertAndDownload = async (assetId: string, resolution: string) => {
try {
// Convert asset
const blob = await convertResolution({
digital_assets_id: assetId,
workspace_id: workspaceId,
resolution
})
// Download blob
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = `asset-${assetId}.png`
a.click()
// Record download
await recordDownloadHistory({
digital_assets_id: assetId,
workspace_id: workspaceId
})
} catch (error) {
console.error('Conversion failed:', error)
}
}Track Asset Views ​
typescript
const { viewAssetsCountApi } = useAssetsApi()
const trackView = async (assetIds: number[]) => {
await viewAssetsCountApi({
asset_ids: assetIds,
workspace_id: workspaceId
})
}Related Documentation ​
- Asset Management - Asset management feature
- Download Feature - Download operations
- API Client - API client configuration