UNPKG

prodobit

Version:

Open-core business application development platform

182 lines (164 loc) 4.91 kB
import type { CalibrationPlan, CalibrationRecord, CreateCalibrationPlanRequest, UpdateCalibrationPlanRequest, CalibrationPlanQuery, CreateCalibrationRecordRequest, UpdateCalibrationRecordRequest, CalibrationRecordQuery, Response, } from "@prodobit/types"; import type { RequestConfig } from "../types"; import { BaseClient } from "./base-client"; import { buildQuery } from "../utils/query-builder"; export class CalibrationClient extends BaseClient { /** * Get all calibration plans with optional filters */ async getPlans( query?: CalibrationPlanQuery, config?: RequestConfig ): Promise<Response<CalibrationPlan[]>> { const queryString = buildQuery(query); return this.request("GET", `/api/v1/calibration-plans${queryString ? `?${queryString}` : ""}`, undefined, config); } /** * Get a single calibration plan by ID */ async getPlanById( id: string, config?: RequestConfig ): Promise<Response<CalibrationPlan>> { return this.request("GET", `/api/v1/calibration-plans/${id}`, undefined, config); } /** * Get calibration plans by asset ID */ async getPlansByAsset( assetId: string, config?: RequestConfig ): Promise<Response<CalibrationPlan[]>> { return this.request("GET", `/api/v1/calibration-plans/asset/${assetId}`, undefined, config); } /** * Get upcoming calibration plans */ async getUpcomingPlans( days: number, config?: RequestConfig ): Promise<Response<CalibrationPlan[]>> { return this.request("GET", `/api/v1/calibration-plans/upcoming?days=${days}`, undefined, config); } /** * Get overdue calibration plans */ async getOverduePlans( config?: RequestConfig ): Promise<Response<CalibrationPlan[]>> { return this.request("GET", "/api/v1/calibration-plans/overdue", undefined, config); } /** * Create a new calibration plan */ async createPlan( data: CreateCalibrationPlanRequest, config?: RequestConfig ): Promise<Response<CalibrationPlan>> { return this.request("POST", "/api/v1/calibration-plans", data, config); } /** * Update an existing calibration plan */ async updatePlan( id: string, data: UpdateCalibrationPlanRequest, config?: RequestConfig ): Promise<Response<CalibrationPlan>> { return this.request("PUT", `/api/v1/calibration-plans/${id}`, data, config); } /** * Delete a calibration plan */ async deletePlan( id: string, config?: RequestConfig ): Promise<Response<void>> { return this.request("DELETE", `/api/v1/calibration-plans/${id}`, undefined, config); } // Calibration Records /** * Get all calibration records with optional filters */ async getRecords( query?: CalibrationRecordQuery, config?: RequestConfig ): Promise<Response<CalibrationRecord[]>> { const queryString = buildQuery(query); return this.request("GET", `/api/v1/calibration-records${queryString ? `?${queryString}` : ""}`, undefined, config); } /** * Get a single calibration record by ID */ async getRecordById( id: string, config?: RequestConfig ): Promise<Response<CalibrationRecord>> { return this.request("GET", `/api/v1/calibration-records/${id}`, undefined, config); } /** * Get calibration records by plan ID */ async getRecordsByPlan( planId: string, config?: RequestConfig ): Promise<Response<CalibrationRecord[]>> { return this.request("GET", `/api/v1/calibration-records/plan/${planId}`, undefined, config); } /** * Get calibration records by asset ID */ async getRecordsByAsset( assetId: string, config?: RequestConfig ): Promise<Response<CalibrationRecord[]>> { return this.request("GET", `/api/v1/calibration-records/asset/${assetId}`, undefined, config); } /** * Get expiring certificates */ async getExpiringCertificates( days: number, config?: RequestConfig ): Promise<Response<CalibrationRecord[]>> { return this.request("GET", `/api/v1/calibration-records/expiring-certificates?days=${days}`, undefined, config); } /** * Create a new calibration record */ async createRecord( data: CreateCalibrationRecordRequest, config?: RequestConfig ): Promise<Response<CalibrationRecord>> { return this.request("POST", "/api/v1/calibration-records", data, config); } /** * Update an existing calibration record */ async updateRecord( id: string, data: UpdateCalibrationRecordRequest, config?: RequestConfig ): Promise<Response<CalibrationRecord>> { return this.request("PUT", `/api/v1/calibration-records/${id}`, data, config); } /** * Delete a calibration record */ async deleteRecord( id: string, config?: RequestConfig ): Promise<Response<void>> { return this.request("DELETE", `/api/v1/calibration-records/${id}`, undefined, config); } }