import { defHttp } from '@jdlinker/func';

export default {
  // 列表
  list: (data: any) => {
    const params = { ...data };
    return defHttp.post({ url: `/notifier/config/list`, data, params }, { isTransformResponse: false });
  },
  // 详情
  detail: (id: string): any => defHttp.get({ url: `/notifier/config/${id}` }, { isTransformResponse: false }),
  // 新增
  save: (data: any) => defHttp.post({ url: `/notifier/config`, data }, { isTransformResponse: false }),
  // 修改
  update: (data: any) => defHttp.put({ url: `/notifier/config`, data }, { isTransformResponse: false }),
  del: (id: string) => defHttp.delete({ url: `/notifier/config/${id}` }),
  getTemplate: (data: any, id: string) => defHttp.post<any[]>({ url: `/notifier/template/${id}/_query`, data }),
  getTemplateDetail: (id: string) => defHttp.get<any>({ url: `/notifier/template/${id}/detail` }),
  debug: (data: any, configId: string, templateId: string) =>
    defHttp.post({ url: `/notifier/${configId}/${templateId}/_send`, data }),
  getHistory: (data: any, id: string) => defHttp.post({ url: `/notify/history/config/${id}/_query`, data }),
  // 获取所有平台用户
  getPlatformUsers: (data: any) => defHttp.get({ url: `/sys/user/getMultiUser`, data }),
  // 获取所有关系
  getRelationUsers: (data: any) =>
    defHttp.post<any>({ url: `/relation/_query/no-paging`, data }, { isTransformResponse: false }),
  // 钉钉部门
  dingTalkDept: (id: string) => defHttp.get<any>({ url: `/notifier/dingtalk/corp/${id}/departments/tree` }),
  // 钉钉部门人员
  getDingTalkUsers: (configId: string, deptId: string) =>
    defHttp.get<any>({
      url: `/notifier/dingtalk/corp/${configId}/${deptId}/users`
    }),
  // 钉钉已经绑定的人员
  getDingTalkBindUsers: (id: string) =>
    defHttp.get<any>({
      url: `/user/third-party/dingTalk_dingTalkMessage/${id}`
    }),
  // 钉钉绑定用户
  dingTalkBindUser: (data: { userId: string; providerName: string; thirdPartyUserId: string }[], id: string) =>
    defHttp.put({
      url: `/user/third-party/dingTalk_dingTalkMessage/${id}`,
      data
    }),
  // 微信部门
  weChatDept: (id: string) => defHttp.get<any>({ url: `/notifier/wechat/corp/${id}/departments` }),
  // 微信部门人员
  getWeChatUsers: (configId: string, deptId: string) =>
    defHttp.get<any>({
      url: `/notifier/wechat/corp/${configId}/${deptId}/users`
    }),
  // 微信已经绑定的人员
  getWeChatBindUsers: (id: string) => defHttp.get<any>({ url: `/user/third-party/weixin_corpMessage/${id}` }),
  // 微信绑定用户
  weChatBindUser: (data: any, id: string) => defHttp.put({ url: `/user/third-party/weixin_corpMessage/${id}`, data }),
  // 解绑
  unBindUser: (data: any, id: string) => defHttp.post({ url: `/user/third-party/${id}/_unbind`, data }),
  //通知类型
  queryMessageType: () => defHttp.get({ url: `/notifier/config/types` }, { isTransformResponse: false }),
  // 不分页-列表
  queryListNoPaging: (data: any) =>
    defHttp.post({
      url: `/notifier/config/_query/no-paging?paging=false`,
      data
    }),
  //
  queryDingTalkUsers: (id: string) =>
    defHttp.get<any>({
      url: `/notifier/dingtalk/corp/${id}/users?sorts[0].name="name"&sorts[0].order=asc`
    }),
  //
  queryWechatUsers: (id: string) =>
    defHttp.get<any>({
      url: `/notifier/wechat/corp/${id}/users?sorts[0].name="name"&sorts[0].order=asc`
    })
};
