import api from '@/api';

/**
 * 获取通用请求配置选项
 * @param {object} options - 请求配置选项
 * @returns {object} - 处理后的请求配置
 */
const getRequestOptions = (options = {}) => {
  return {
    ...options
  };
};

/**
 * GET请求
 * @param {string} url - 请求地址
 * @param {object} params - 请求参数
 * @param {object} options - 请求配置选项
 * @returns {Promise} - 请求Promise对象
 */
export const get = (url, params = {}, options = {}) => {
  return api.get(url, {
    params,
    ...getRequestOptions(options)
  });
};

/**
 * POST请求
 * @param {string} url - 请求地址
 * @param {object} data - 请求数据
 * @param {object} options - 请求配置选项
 * @returns {Promise} - 请求Promise对象
 */
export const post = (url, data = {}, options = {}) => {
  return api.post(url, data, getRequestOptions(options));
};

/**
 * PUT请求
 * @param {string} url - 请求地址
 * @param {object} data - 请求数据
 * @param {object} options - 请求配置选项
 * @returns {Promise} - 请求Promise对象
 */
export const put = (url, data = {}, options = {}) => {
  return api.put(url, data, getRequestOptions(options));
};

/**
 * DELETE请求
 * @param {string} url - 请求地址
 * @param {object} data - 请求数据
 * @param {object} options - 请求配置选项
 * @returns {Promise} - 请求Promise对象
 */
export const del = (url, data = {}, options = {}) => {
  return api.delete(url, {
    data,
    ...getRequestOptions(options)
  });
};

export default {
  get,
  post,
  put,
  del
}; 