import { AxiosProgressEvent } from "axios"; import axiosInstance from "../http/axiosInstance"; import { IBank, ICompany, IDepartment, IDocument, IDocumentFolder, IOrganization, IOrganizationBank } from "../interfaces/documents"; export default class DocumentService { // Get Main static async getMain() { return await axiosInstance.get(`/info/`) } // Get Companies static async getCompanies(limit?: number, offset?: number) { return await axiosInstance.get(`/info/companies`, { params: { limit: limit || 10, offset: offset || 0 } }) } // Create Company static async createCompany(data: ICompany) { return await axiosInstance.post(`/info/companies/`, data) } // Delete Company static async deleteCompany(company_id: number) { return await axiosInstance.delete(`/info/companies/${company_id}`) } // Update Company static async updateCompany(company_id: number) { return await axiosInstance.patch(`/info/companies/${company_id}`) } // Get Departments static async getDepartments(limit?: number, offset?: number) { return await axiosInstance.get(`/info/departments/`, { params: { limit: limit || 10, offset: offset || 0 } }) } // Get Department static async getDepartment(department_id: number) { return await axiosInstance.get(`/info/departments/${department_id}`) } // Delete Department static async deleteDepartment(department_id: number) { return await axiosInstance.delete(`/info/departments/${department_id}`) } // Update Department static async updateDepartment(department_id: number, data: IDepartment) { return await axiosInstance.patch(`/info/departments/${department_id}`, data) } // Create Department static async createDepartment(data: IDepartment) { return await axiosInstance.post(`/info/department/`, data) } // Get Documents static async getDocuments(limit?: number, offset?: number) { return await axiosInstance.get(`/info/document_folder/`, { params: { limit: limit || 10, offset: offset || 0 } }) } // Create Documentfolder static async createDocumentFolder(data: IDocumentFolder) { return await axiosInstance.post(`/info/document_folder/`, data) } // Get Document static async getDocument(folder_id: number) { return await axiosInstance.get(`/info/document_folder/${folder_id}`) } // Delete Document static async deleteDocument(folder_id: number) { return await axiosInstance.delete(`/info/document_folder/${folder_id}`) } // Update Document static async updateDocument(folder_id: number, data: IDocument) { return await axiosInstance.patch(`/info/document_folder/${folder_id}`, data) } // Get Docs static async getDocs(folder_id: number) { return await axiosInstance.get(`/info/documents/${folder_id}`) } // Upload Files static async uploadFiles(folder_id: number, files: any, setUploadProgress?: any) { return await axiosInstance.post(`/info/documents/upload/${folder_id}`, files, { onUploadProgress: (progressEvent: AxiosProgressEvent) => { const percentCompleted = progressEvent.progress setUploadProgress?.(percentCompleted) } }) } // Download Doc static async downloadDoc(folder_id: number, doc_id: number) { return await axiosInstance.get(`/info/document/${folder_id}&${doc_id}`, { responseType: 'blob', }) } // Delete Doc static async deleteDoc(folder_id: number, doc_id: number) { return await axiosInstance.delete(`/info/document/`, { params: { folder_id: folder_id, doc_id: doc_id } }) } // Convert Phones static async convertPhones(data: any) { return await axiosInstance.post(`/info/other/phones/`, data) } // Get Budget static async getBudget() { return await axiosInstance.get(`/info/organization/budget/`) } // Add Bank static async addBank(data: IBank) { return await axiosInstance.post(`/info/organization/bank`, data) } // Update Bank static async updateBank(bank_id: string, bank_1c_id: string, data: IBank) { return await axiosInstance.patch(`/info/organization/bank`, data, { params: { bank_id: bank_id, bank_1c_id: bank_1c_id } }) } // Get Banks static async getBanks(bank_id?: string, search?: string, limit?: number, offset?: number) { return await axiosInstance.get(`/info/organization/banks`, { params: { bank_id: bank_id, search: search || null, limit: limit || 10, offset: offset || 0 } }) } // Get Bank static async getBank(id_1c: string) { return await axiosInstance.get(`/info/organization/bank/${id_1c}`) } // Delete Bank static async deleteBank(bank_id: string, bank_1c_id: string) { return await axiosInstance.get(`/info/organization/bank/`, { params: { bank_id: bank_id, bank_1c_id: bank_1c_id } }) } // Add Org static async addOrganization(data: IOrganization) { return await axiosInstance.post(`/info/organization/org/`, data) } // Update Org static async updateOrganization(org_id: string, org_1c_id: string, data: IOrganization) { return await axiosInstance.patch(`/info/organization/org`, data, { params: { org_id: org_id, org_1c_id: org_1c_id } }) } // Delete Org static async deleteOrganization(org_id: string, org_1c_id: string) { return await axiosInstance.delete(`/info/organization/org`, { params: { org_id: org_id, org_1c_id: org_1c_id } }) } // Get Orgs static async getOrganizations(org_id?: string, search?: string, limit?: number, offset?: number) { return await axiosInstance.get(`/info/organization/orgs`, { params: { org_id: org_id, search: search || null, limit: limit || 10, offset: offset || 0 } }) } // Get Org static async getOrganization(id_1c: string) { return await axiosInstance.get(`/info/organization/org/${id_1c}`) } // Add Orgbank static async addOrganizationBank(data: IOrganizationBank) { return await axiosInstance.post(`/info/organization/org_bank`, data) } }