import request from '@/utils/request'

export function getList(params) {
  return request({
    url: '/api/system/rostersyncinterface/list-api',
    method: 'get',
    params
  })
}
export function getItem(params) {
  return request({
    url: '/api/system/rostersyncinterface/get-item',
    method: 'get',
    params
  })
}

export function createRosterSyncInterface(data) {
  return request({
    url: '/api/system/rostersyncinterface/create-rostersyncinterface',
    method: 'post',
    data
  })
}

export function deleteRosterSyncInterface(data) {
  return request({
    url: '/api/system/rostersyncinterface/delete-rostersyncinterface',
    method: 'delete',
    data
  })
}
