import { Injectable } from "@nestjs/common";
import { DataSource } from "typeorm";
import { CheckOldPatient } from "./entities/check-old-patient.entity";
import axios from "axios";

@Injectable()
export class CheckOldPatientService {
  constructor(private readonly connection: DataSource) {}

  async findAll(Entity: CheckOldPatient) {
    try {
      const [getBaseURL] = await this.connection.query(
        `select op_hub_base_url from hospitals where plenome_id = ?`,
        [Entity.hospital_id]
      );
      let apiURL = `${getBaseURL.op_hub_base_url}/op-hub-check-old-patient`;
      const check_old = await axios.post(apiURL, Entity);
      return check_old.data;
    } catch (error) {
      throw new Error(error);
    }
  }

  async findAllV2(Entity: CheckOldPatient, limit: number, page: number) {
    try {
      const [getBaseURL] = await this.connection.query(
        `select op_hub_base_url from hospitals where plenome_id = ?`,
        [Entity.hospital_id]
      );
      let apiURL = `${getBaseURL.op_hub_base_url}/op-hub-check-old-patient/v2?limit=${limit}&page=${page}`;
      const check_old = await axios.post(apiURL, Entity);
      return check_old.data;
    } catch (error) {
      console.log(error, "error");

      throw new Error(error);
    }
  }

  async hosfindAllV2(Entity: CheckOldPatient, limit: number, page: number) {
    try {
      const [getBaseURL] = await this.connection.query(
        `select op_hub_base_url from hospitals where plenome_id = ?`,
        [Entity.hospital_id]
      );
      let apiURL = `${getBaseURL.op_hub_base_url}/op-hub-check-old-patient/hos/v2?limit=${limit}&page=${page}`;

      const check_old = await axios.post(apiURL, Entity);

      return check_old.data;
    } catch (error) {
      console.log(error, "error");

      throw new Error(error);
    }
  }

  async hosfindAllV3(Entity: CheckOldPatient, limit: number, page: number) {
    try {
      const [getBaseURL] = await this.connection.query(
        `select op_hub_base_url from hospitals where plenome_id = ?`,
        [Entity.hospital_id]
      );
      let apiURL = `${getBaseURL.op_hub_base_url}/op-hub-check-old-patient/hos/v3?limit=${limit}&page=${page}`;
      const check_old = await axios.post(apiURL, Entity);
      return check_old.data;
    } catch (error) {
      console.log(error, "error");

      throw new Error(error);
    }
  }
}
