import axios from 'axios'

/**
 * 가격조사 결재 상태변경
 * @param {object} params
 * @property {string} params.apprNo - 결재번호
 * @property {string} params.apprOrd - 결재순서
 * @property {string} params.sabun - 사번
 * @property {string} params.apprStatCd - 결재상태코드
 * @property {string} params.reason - 사유 (반려일시 상태코드 0400)
 * @returns
 */
export async function updateApprovalStatus(params = {}) {
  try {
    const result = await axios.put(`/api/appr`, params, {
      headers: { sabun: params.sabun },
    })
    if (result.status === 200) {
      return result.data
    }
  }
  catch (e) {
    if (e.response) {
      if (e.response.status >= 500) {
        throw new Error('서버 오류가 발생했습니다.')
      } else if (e.response.status >= 400) {
        throw new Error('잘못된 요청입니다.')
      }
    }
    throw new Error(e.message)
  }
}

/**
 * 가격조사 결재 상세 조회
 * @param {object} params
 * @property {string} params.prcsNo - 가격조사번호
 * @returns
 */
export async function getApprovalDetailsRetrieve(params = {}) {
  try {
    const result = await axios.get(`/api/appr/conveter/${params.prcsNo}`,{
      headers: { sabun: params.sabun },
    })
    if (result.status === 200) {
      return result.data
    }
  }
  catch (e) {
    if (e.response) {
      if (e.response.status >= 500) {
        throw new Error('서버 오류가 발생했습니다.')
      } else if (e.response.status >= 400) {
        throw new Error('잘못된 요청입니다.')
      }
    }
    throw new Error(e.message)
  }
}

/**
 * 결재번호를 가격조사 번호로 변경
 * @param {object} params
 * @property {string} params.apprNo - 결재번호
 * @returns
 */
export async function conveterNo(params = {}) {
  try {
    const result = await axios.get(`/api/appr/conveter/${params.apprNo}`,{
      headers: { sabun: params.sabun },
    })
    if (result.status === 200) {
      return result.data
    }
  }
  catch (e) {
    if (e.response) {
      if (e.response.status >= 500) {
        throw new Error('서버 오류가 발생했습니다.')
      } else if (e.response.status >= 400) {
        throw new Error('잘못된 요청입니다.')
      }
    }
    throw new Error(e.message)
  }
}

