Skip to content
Snippets Groups Projects
Verified Commit f02a7342 authored by Janis Streib's avatar Janis Streib :owl:
Browse files

UPD: transactionUtil: use transaction for dbedit object metadata retrival and...

UPD: transactionUtil: use transaction for dbedit object metadata retrival and enrich with object lang attrs (#733)
parent 22910898
Branches
No related tags found
No related merge requests found
import {v4 as uuidv4} from 'uuid'
import ObjectTypeService from '@/api-services.gen/wapi.object_type'
import FunctionService from '@/api-services.gen/wapi.function'
import ApiUtil from '@/util/apiutil'
import TransactionService from '@/api-services/transaction.service'
export default {
getSysName(fq_name) {
......@@ -171,25 +170,70 @@ export default {
const parts = object_fq_name.split('.')
const system = parts[0]
const name = parts[1]
const object_result = ObjectTypeService.list(vm.$store.state, {
name_list: [name],
system_list: [system]
})
const object_result = TransactionService.execute(vm.$store.state,
[
{
name: 'wapi.object_type.list',
old: {
name_list: [name],
system_list: [system]
}
},
{
name: 'wapi.object_type_lang_dict.list',
old: {
name_list: [name],
system_list: [system]
}
},
{
name: 'wapi.object_type_attr_lang_dict.list',
old: {
object_type_list: [name],
system_list: [system]
}
},
{
name: 'wapi.function.list',
old: {
object_type_list: [name],
system_list: [system]
}
}
]
)
try {
let object_definition = await object_result
object_definition = object_definition.data[0]
if (object_definition.length !== 1) {
const object_definition = (await object_result).data
if (object_definition.object_type_list.length !== 1) {
return false
}
const obj_functions = await FunctionService.list(vm.$store.state, {
object_type_list: [name],
system_list: [system]
})
for (const object_definition_lang_attr in object_definition.object_type_lang_dict_list[0].language_dict) {
object_definition.object_type_list[0][object_definition_lang_attr] = object_definition.object_type_lang_dict_list[0].language_dict[object_definition_lang_attr]
}
const lang_by_fq_name = ApiUtil.dict_by_value_of_array(object_definition.object_type_attr_lang_dict_list, 'fq_name')
// Enrich function definitions with language attributes
const obj_functions = object_definition.function_list
for (const f of obj_functions) {
for (const func_param_name in f.parameters) {
const lang = lang_by_fq_name[`${system}.${name}.${func_param_name}`].language_dict
for (const object_function_lang_attr in lang) {
f.parameters[func_param_name][object_function_lang_attr] = lang[object_function_lang_attr]
}
}
}
// Enrich object definition with language attributes
for (const obj_attr_name in object_definition.object_type_list[0].attributes) {
const lang = lang_by_fq_name[`${system}.${name}.${obj_attr_name}`].language_dict
for (const object_function_lang_attr in lang) {
object_definition.object_type_list[0].attributes[obj_attr_name][object_function_lang_attr] = lang[object_function_lang_attr]
}
}
return {
object_definition: object_definition[0],
object_functions: ApiUtil.dict_by_value_of_array(obj_functions.data[0], 'name')
object_definition: object_definition.object_type_list[0],
object_functions: ApiUtil.dict_by_value_of_array(obj_functions, 'name')
}
} catch (e) {
window.console.debug('Silenced error in validateObjectFQName', e)
return false
}
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment