import APIUrl from "../helpers/ApiUrl";
import MakeRequest from "../helpers/makeRequest";
import { IMoleculesSearchObj, IMoleculesReceiveFields } from "../interfaces/Interfaces";

export default class Molecules {
    static async searchMolecules(searchParam: IMoleculesSearchObj) {
        const postData = null;
        const moleculesList = await MakeRequest.httpRequest(APIUrl.getMoleculesListAPI(), "GET", postData, searchParam);
        return moleculesList;
    }

    static async getMoleculesDetails(moleculeId: string, searchParam: IMoleculesReceiveFields | null = null) {
        const postData = null;
        let params = {};
        if (searchParam) {
            params = {
                "fields": searchParam?.fields?.join(', ')
            }
        };
        const moleculeDetails = await MakeRequest.httpRequest(APIUrl.getMoleculeDetailsAPI(moleculeId), "GET", postData, params);
        return moleculeDetails;
    }

    static async getCreatedMoleculesDeltaList() {
        const list = await MakeRequest.httpRequest(APIUrl.getCreatedMoleculesListAPI(), "GET", null, null);
        return list;
    }

    static async getUpdatedMoleculesDeltaList() {
        const list = await MakeRequest.httpRequest(APIUrl.getUpdatedMoleculesListAPI(), "GET", null, null);
        return list;
    }

    static async getDeletedMoleculesDeltaList() {
        const list = await MakeRequest.httpRequest(APIUrl.getDeletedMoleculesListAPI(), "GET", null, null);
        return list;
    }
}