UNPKG

@visionfi/desktop-sdk

Version:

Desktop SDK for VisionFI Cloud Run services with Azure AD authentication

103 lines (102 loc) 3.31 kB
/** * Package Client - handles package-related operations in Desktop SDK * Copyright (c) 2024-2025 VisionFI. All Rights Reserved. */ import { VisionFiError } from '@visionfi/core'; import { DocumentClient } from './DocumentClient.js'; import { ProcessingClient } from './ProcessingClient.js'; export class PackageClient { apiClient; documents; processing; constructor(apiClient) { this.apiClient = apiClient; this.documents = new DocumentClient(apiClient); this.processing = new ProcessingClient(apiClient); } /** * Create a new package */ async create(options) { try { const response = await this.apiClient.post('/operations/packages', options); return response.data; } catch (error) { throw this.handleError(error, 'Failed to create package'); } } /** * List packages with optional filters */ async list(options) { try { const response = await this.apiClient.get('/operations/packages', { params: options }); return response.data; } catch (error) { throw this.handleError(error, 'Failed to list packages'); } } /** * Get package details */ async get(packageId) { try { const response = await this.apiClient.get(`/operations/packages/${packageId}`); return response.data; } catch (error) { throw this.handleError(error, 'Failed to get package'); } } /** * Get package audit history */ async getAuditHistory(packageId, limit) { try { const params = limit ? { limit } : {}; const response = await this.apiClient.get(`/operations/packages/${packageId}/audit`, { params }); return response.data; } catch (error) { throw this.handleError(error, 'Failed to get package audit history'); } } /** * Add external references to a package */ async addExternalReferences(packageId, options) { try { const response = await this.apiClient.post(`/operations/packages/${packageId}/external-references`, options); return response.data; } catch (error) { throw this.handleError(error, 'Failed to add external references'); } } /** * Remove external references from a package */ async removeExternalReferences(packageId, options) { try { const response = await this.apiClient.delete(`/operations/packages/${packageId}/external-references`, { data: options }); return response.data; } catch (error) { throw this.handleError(error, 'Failed to remove external references'); } } /** * Handle errors consistently */ handleError(error, defaultMessage) { if (error instanceof VisionFiError) { return error; } const message = error.response?.data?.message || error.message || defaultMessage; const statusCode = error.response?.status; const code = error.response?.data?.code || 'unknown_error'; return new VisionFiError(message, statusCode, code); } }