import { axios } from '@/utils/request'
import { stringify } from 'qs'

/**
 * user page func
 * parameter: {
 *     keyword: '',
 * }
 * @param parameter
 * @returns {*}
 */
export function getTaskPage (parameter) {
  return axios({
    url: `/upms/tasks/page?${stringify(parameter)}`,
    method: 'get',
    headers: {
      'Content-Type': 'application/json;charset=UTF-8'
    }
  })
}

export function addTask (parameter) {
  return axios({
    url: `/upms/tasks`,
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json;charset=UTF-8'
    },
    data: parameter
  })
}

export function updateTask (parameter) {
  return axios({
    url: `/upms/tasks/${parameter.jobId}`,
    method: 'PUT',
    data: parameter
  })
}

export function fetchTask (parameter) {
  return axios({
    url: `/upms/tasks/${parameter.jobId}`,
    method: 'get',
    headers: {
      'Content-Type': 'application/json;charset=UTF-8'
    }
  })
}

export function queryTask (parameter) {
  return axios({
    url: `/upms/tasks?${stringify(parameter)}`,
    method: 'get',
    headers: {
      'Content-Type': 'application/json;charset=UTF-8'
    }
  })
}

export function updateTaskStatus (parameter) {
  return axios({
    url: `/upms/tasks/${parameter.jobId}/status/${parameter.status}`,
    method: 'PUT'
  })
}

/**
 * 立即执行任务
 * @param parameter
 * @returns {AxiosPromise}
 */
export function runTasks (parameter) {
  return axios({
    url: `/upms/tasks/run`,
    method: 'PUT',
    data: parameter
  })
}

/**
 * 暂停任务
 * @param parameter
 * @returns {AxiosPromise}
 */
export function pauseTasks (parameter) {
  return axios({
    url: `/upms/tasks/pause`,
    method: 'PUT',
    data: parameter
  })
}

/**
 * 恢复任务
 * @param parameter
 * @returns {AxiosPromise}
 */
export function resumeTasks (parameter) {
  return axios({
    url: `/upms/tasks/resume`,
    method: 'PUT',
    data: parameter
  })
}

export function deleteTasks (parameter) {
  return axios({
    url: `/upms/tasks`,
    method: 'DELETE',
    data: parameter
  })
}
