restful.js 3.77 KB
Newer Older
何虹's avatar
何虹 committed
1
import { TOOL_API, SERVICE_API } from '../common/commonModule'
何虹's avatar
何虹 committed
2
class RestFul {
何虹's avatar
何虹 committed
3
  constructor (requestClient, isService) {
何虹's avatar
何虹 committed
4 5
    this.requestClient = requestClient
    this.moduleName = 'RestFulModule'
何虹's avatar
何虹 committed
6 7
    // 如果isService 是字符串就直接试用这个字符串作为代理前缀,是不尔值:true就使用用默认的字符串:SERVICE_PROXY
    const typeof_isService = typeof isService
何虹's avatar
何虹 committed
8
    this.MODULE_API = TOOL_API
何虹's avatar
何虹 committed
9
    if (typeof_isService === 'boolean') {
何虹's avatar
何虹 committed
10
      this.MODULE_API = isService ? SERVICE_API : TOOL_API
何虹's avatar
何虹 committed
11
    } else if (typeof_isService === 'string' && isService) {
何虹's avatar
何虹 committed
12
      this.MODULE_API = isService
何虹's avatar
何虹 committed
13
    }
何虹's avatar
何虹 committed
14
  }
何虹's avatar
何虹 committed
15 16 17 18 19 20 21
  // 处理传入的data 如果有appCode dbName
  packParamHandle (parms) {
    const { appCode } = parms
    if (!appCode) {
      parms.appCode = this.requestClient.appCode //|| urlParam.appCode
    }
  }
何虹's avatar
何虹 committed
22 23 24 25 26 27 28 29 30
  mergeHeaderQueryMaster (isQueryMaster) {
    if (isQueryMaster) {
      return {
        'x-db_router_type': 'master'
      }
    } else {
      return {}
    }
  }
何虹's avatar
何虹 committed
31 32
  query (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
33
    const { tableName, appCode, group, parms, bodyData, isQueryMaster } = data
何虹's avatar
何虹 committed
34
    let url = `${this.MODULE_API}${appCode}/${tableName}/`
何虹's avatar
何虹 committed
35 36
    if (group) {
      // 非标准保存
何虹's avatar
何虹 committed
37 38
      url = `${url}${group}/`
    }
何虹's avatar
何虹 committed
39
    const header = this.mergeHeaderQueryMaster(isQueryMaster)
何虹's avatar
何虹 committed
40
    if (bodyData) {
何虹's avatar
何虹 committed
41
      return this.requestClient.put(url, bodyData, parms, header)
何虹's avatar
何虹 committed
42
    } else {
何虹's avatar
何虹 committed
43
      return this.requestClient.get(url, parms, header)
何虹's avatar
何虹 committed
44 45
    }
  }
何虹's avatar
何虹 committed
46 47
  save (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
48
    const { tableName, appCode, bodyData, group, parms } = data
何虹's avatar
何虹 committed
49
    let url = `${this.MODULE_API}${appCode}/${tableName}/`
何虹's avatar
何虹 committed
50 51
    if (group) {
      // 非标准保存
何虹's avatar
何虹 committed
52 53 54 55
      url = `${url}${group}/`
    }
    return this.requestClient.post(url, bodyData, parms)
  }
何虹's avatar
何虹 committed
56 57
  queryOne (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
58 59 60 61 62 63 64 65 66 67
    const {
      tableName,
      id,
      appCode,
      parms,
      group,
      bodyData,
      isQueryMaster
    } = data
    let url_ = `${this.MODULE_API}${appCode}/${tableName}/` //${id}/`
何虹's avatar
何虹 committed
68 69 70
    if (group) {
      url_ = `${url_}${group}/`
    }
71
    url_ = `${url_}${id}/`
何虹's avatar
何虹 committed
72
    const header = this.mergeHeaderQueryMaster(isQueryMaster)
何虹's avatar
何虹 committed
73
    if (bodyData) {
何虹's avatar
何虹 committed
74
      return this.requestClient.put(url_, bodyData, parms, header)
何虹's avatar
何虹 committed
75
    } else {
何虹's avatar
何虹 committed
76
      return this.requestClient.get(url_, parms, header)
何虹's avatar
何虹 committed
77 78
    }
  }
何虹's avatar
何虹 committed
79 80
  put (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
81
    const { tableName, appCode, bodyData, group, parms, isQueryMaster } = data
何虹's avatar
何虹 committed
82
    let url = `${this.MODULE_API}${appCode}/${tableName}/`
何虹's avatar
何虹 committed
83 84
    if (group) {
      // 非标准保存
何虹's avatar
何虹 committed
85 86
      url = `${url}${group}/`
    }
何虹's avatar
何虹 committed
87 88
    const header = this.mergeHeaderQueryMaster(isQueryMaster)
    return this.requestClient.put(url, bodyData, parms, header)
何虹's avatar
何虹 committed
89
  }
何虹's avatar
何虹 committed
90 91
  queryList (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
92
    const { tableName, appCode, parms, group, bodyData, isQueryMaster } = data
何虹's avatar
何虹 committed
93
    let url_ = `${this.MODULE_API}${appCode}/${tableName}/`
何虹's avatar
何虹 committed
94 95 96 97
    if (group) {
      url_ = `${url_}${group}/`
    }
    parms.fuzzy = 1
何虹's avatar
何虹 committed
98
    const header = this.mergeHeaderQueryMaster(isQueryMaster)
何虹's avatar
何虹 committed
99
    if (bodyData) {
何虹's avatar
何虹 committed
100
      return this.requestClient.put(url_, bodyData, parms, header)
何虹's avatar
何虹 committed
101
    } else {
何虹's avatar
何虹 committed
102
      return this.requestClient.get(url_, parms, header)
何虹's avatar
何虹 committed
103 104
    }
  }
何虹's avatar
何虹 committed
105 106
  deleteList (data) {
    this.packParamHandle(data)
何虹's avatar
何虹 committed
107 108 109 110 111
    const { tableName, appCode, bodyData, parms, ids } = data
    let url_ = `${this.MODULE_API}${appCode}/${tableName}/`
    if (ids) {
      url_ + ids + '/'
    }
何虹's avatar
何虹 committed
112 113
    return this.requestClient.delete(url_, bodyData, parms)
  }
何虹's avatar
何虹 committed
114 115 116 117 118 119 120 121 122 123
  // 兼容新版java的ref查询
  get(data){
    this.packParamHandle(data)
    const { tableName, appCode, parms,group } = data
    let url_ = `${this.MODULE_API}${appCode}/${tableName}/`
    if (group) {
      url_ = `${url_}${group}/`
    }
    return this.requestClient.get(url_, parms)
  }
何虹's avatar
何虹 committed
124 125
}
export default RestFul