vue-element-admin/src/api/ADempiere/values.js

173 lines
3.4 KiB
JavaScript

// Get Instance for connection
import request from '@/utils/request'
import { config } from '@/utils/ADempiere/config'
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
/**
* Request a Lookup data from Reference
* The main attributes that function hope are:
* @param {string} tableName
* @param {string} directQuery
* @param {string|number} value
*/
export function requestLookup({
tableName,
directQuery,
value
}) {
let filters = []
if (!isEmptyValue(value)) {
filters = [{
value
}]
}
return request({
baseURL: config.adempiere.api.url,
url: '/ui/get-lookup-item',
method: 'post',
data: {
table_name: tableName,
query: directQuery,
filters
}
})
.then(respose => {
return respose
})
}
/**
* Request a Lookup list data from Reference
* The main attributes that function hope are:
* @param {string} tableName
* @param {string} query
* @param {string} whereClause
* @param {array} valuesList // TODO: Add support
* @param {string} pageToken
* @param {number} pageSize
*/
export function requestLookupList({
tableName,
query,
whereClause,
columnName,
valuesList = [],
pageToken,
pageSize
}) {
let filters = []
if (!isEmptyValue(valuesList)) {
filters = [{
column_name: columnName,
values: valuesList
}]
}
return request({
baseURL: config.adempiere.api.url,
url: '/ui/list-lookup-items',
method: 'post',
data: {
table_name: tableName,
query,
where_clause: whereClause,
filters
},
params: {
// Page Data
pageToken,
pageSize
}
})
.then(lookupListResponse => {
return {
nextPageToken: lookupListResponse.next_page_token,
recordCount: lookupListResponse.record_count,
recordsList: lookupListResponse.records
}
})
}
/**
* Reference List from Window
* @param {string} tableName
* @param {string} windowUuid
* @param {string} recordUuid
* @param {number} recordId
*/
export function requestReferencesList({
windowUuid,
tableName,
recordId,
recordUuid,
pageToken,
pageSize
}) {
return request({
baseURL: config.adempiere.api.url,
url: '/ui/list-references',
method: 'post',
data: {
id: recordId,
uuid: recordUuid,
window_uuid: windowUuid,
table_name: tableName
},
params: {
// Page Data
pageToken,
pageSize
}
})
.then(referencesListResposnse => {
const { convertReferencesList } = require('@/utils/ADempiere/apiConverts/values.js')
return convertReferencesList(referencesListResposnse)
})
}
// Get default value for a field
export function requestDefaultValue(query) {
return request({
baseURL: config.adempiere.api.url,
url: '/ui/get-default-value',
method: 'post',
data: {
query
}
})
.then(respose => {
return respose
})
}
/**
* Get context information for a window, tab or field
* @param {string} query
* @param {string} uuid
* @param {number} id
*/
export function requestGetContextInfoValue({
uuid,
id,
query
}) {
return request({
baseURL: config.adempiere.api.url,
url: '/ui/get-context-info-value',
method: 'post',
data: {
query,
uuid,
id
}
})
.then(contextInfoValueResponse => {
return {
messageText: contextInfoValueResponse.message_text,
messageTip: contextInfoValueResponse.message_tip
}
})
}