import request from 'umi-request';

export async function fakeSubmitForm(params) {
  return request('/Bug/api/forms', {
    method: 'POST',
    data: params,
  });
}

// todo:根据token获取信息
export async function getIdByToken(token) {
  return request('/Bug/api/analyze/tokenToDetail', {
    method: 'get',
    params: {
      token,
    },
  });
}

// todo:更新报告
export async function updateReportInfo(data) {
  console.log(data.get('name'));
  return request('/Bug/api/extra/updateReport', {
    method: 'post',
    data,
  });
}

// todo:获取操作系统的类型
export async function getExamInfo(id) {
  return request(`/Bug/api/extra/getExam?id=${id}`, {
    method: 'get',
  });
}

// todo:获取报告信息
// eslint-disable-next-line camelcase
export async function getReportInfo(case_take_id, worker_id) {
  // eslint-disable-next-line camelcase
  return request(`/Bug/api/extra/findByWorker?case_take_id=${case_take_id}&worker_id=${worker_id}`, {
    method: 'get',
  });
}

// todo:点击下一步，提交测试报告的基础信息
export async function createReportCommon(data) {
  return request('/Bug/api/extra/uploadReport', {
    method: 'post',
    data,
  });
}

// todo:创建测试用例
export async function createTestCase(data) {
  return request('/Bug/api/extra/uploadTestCase', {
    method: 'post',
    data,
  });
}

// todo:获取测试用例列表
export async function getTestCaseList(report_id) {
  return request('/Bug/api/extra/getCaseList', {
    method: 'get',
    params: {
      report_id,
    },
  });
}

// todo:编辑测试用例
export async function updateTestCaseList(data) {
  return request('/Bug/api/extra/updateTestCase', {
    method: 'post',
    data,
  });
}

// todo:根据用例ID获取测试bug列表
export async function getCaseBugList(useCase) {
  return request(`/Bug/api/relation/CTB?useCase=${useCase}`, {
    method: 'get',
  });
}

// todo:根据bugID获取bug信息
export async function getBugInfo(bugId) {
  return request(`/Bug/api/rec/getDetail?id=${bugId}`, {
    method: 'get',
  });
}

// todo:返回路径信息
export async function getPathInfo(case_take_id, report_id) {
  return request('/Bug/api/analyze/path', {
    method: 'get',
    params: {
      case_take_id,
      report_id,
    },
  });
}

// todo:返回推荐路径
export async function getRecommendPath(case_take_id, report_id) {
  return request('/Bug/api/report/pageRec', {
    method: 'get',
    params: {
      case_take_id,
      report_id,
    },
  });
}

// todo:获取bug推荐列表
export async function getRecommendList(case_take_id, report_id) {
  return request('/Bug/api/report/bugRec', {
    method: 'get',
    params: {
      case_take_id,
      report_id,
    },
  });
}

// todo:创建bug
export async function createCaseBug(data) {
  return request('/Bug/api/upload/submit', {
    method: 'post',
    data,
  });
}

// todo:给别人的报告点赞
// eslint-disable-next-line camelcase
export async function goodReport(id, report_id) {
  return request('/Bug/api/upload/good', {
    method: 'get',
    params: {
      id,
      report_id,
    },
  });
}

// todo:取消报告点赞
// eslint-disable-next-line camelcase
export async function cancelGoodReport(id, report_id) {
  return request('/Bug/api/upload/cancelGood', {
    method: 'get',
    params: {
      id,
      report_id,
    },
  });
}

// todo:记录报告点踩行为
export async function recordGoodReport(user_id, target_id,action) {
  return request('/Bug/api/report/record', {
    method: 'get',
    params: {
      user_id, target_id,action
    },
  });
}

// todo:报告点踩
export async function badReport(id, report_id) {
  return request('/Bug/api/upload/bad', {
    method: 'get',
    params: {
      id,
      report_id,
    },
  });
}

// todo:记录报告点踩行为
export async function recordBadReport(user_id, target_id,action) {
  return request('/Bug/api/report/record', {
    method: 'get',
    params: {
      user_id, target_id,action
    },
  });
}

// todo:取消报告点踩
// eslint-disable-next-line camelcase
export async function cancelBadReport(id, report_id) {
  return request('/Bug/api/upload/cancelBad', {
    method: 'get',
    params: {
      id,
      report_id,
    },
  });
}

// todo:记录用户行为
export async function recordAction(user_id, report_id, action) {
  return request('/Bug/api/report/record', {
    method: 'get',
    params: {
      user_id,
      report_id,
      action,
    },
  });
}

// todo:上传图片
export async function uploadImage(data) {
  return request('/Bug/api/upload/image', {
    method: 'post',
    data,
  });
}

// todo:fork
export async function forkReport(page1, page2, page3, bug_category, severity, recurrent) {
  return request('/Bug/api/rec/fork', {
    method: 'get',
    params: {
      page1,
      page2,
      page3,
      bug_category,
      severity,
      recurrent,
    },
  });
}

//todo：bug相似度判断
export async function bugSimilarity(case_take_id, type, content) {
  return request('/Bug/api/rec/recommend', {
    method: 'get',
    params: {
      case_take_id,
      type,
      content
    },
  });
}


