refactor buildFunctionName
This commit is contained in:
@ -110,23 +110,23 @@ function insertMapperCode(view: EndpointDef, outDir: string): Promise<void> {
|
||||
function createMapperFunc(view: EndpointDef): string {
|
||||
let func: string = '';
|
||||
let funcName: string = '';
|
||||
if (view.type.indexOf('list') !== -1 || view.type.indexOf('count') !== -1) {
|
||||
if (view.type === 'list' || view.type === 'count') {
|
||||
func = buildGetList(view);
|
||||
} else if (view.type.indexOf('item') !== -1) {
|
||||
funcName = `get${uppercaseFirstLetter(view.component)}`;
|
||||
} else if (view.type.indexOf('update') !== -1) {
|
||||
funcName = `update${uppercaseFirstLetter(view.component)}`;
|
||||
} else if (view.type.indexOf('create') !== -1) {
|
||||
} else if (view.type === 'item') {
|
||||
funcName = buildFunctionName(view);
|
||||
} else if (view.type === 'update') {
|
||||
funcName = buildFunctionName(view);
|
||||
} else if (view.type === 'create') {
|
||||
func = buildCreateFunc(view);
|
||||
} else if (view.type.indexOf('delete') !== -1) {
|
||||
funcName = `delete${uppercaseFirstLetter(view.component)}`;
|
||||
} else if (view.type === 'delete') {
|
||||
funcName = buildFunctionName(view);
|
||||
}
|
||||
return func;
|
||||
}
|
||||
|
||||
function buildCreateFunc(view: EndpointDef): string {
|
||||
let func: string = '';
|
||||
let funcName = `create${uppercaseFirstLetter(view.component)}`;
|
||||
let funcName = buildFunctionName(view);
|
||||
let query: string = `INSERT INTO ${view.table} SET `;
|
||||
let requiredQueryValues: string = '';
|
||||
let optionalValuesCode: string = '';
|
||||
@ -176,7 +176,7 @@ function buildGetList(view: EndpointDef): string {
|
||||
let query: string = '';
|
||||
let tables: string = view.join?.length ? buildJoin(view) : `${view.table}`;
|
||||
let filters: string = '';
|
||||
funcName = `get${pluralize(uppercaseFirstLetter(view.component))}` + (view.type === 'count' ? 'Count' : '');
|
||||
funcName = buildFunctionName(view);
|
||||
|
||||
let requiredFilterStrings = [];
|
||||
let requiredQueryValues = '';
|
||||
@ -266,35 +266,6 @@ function buildOrderBy(view: EndpointDef): string {
|
||||
return orderBy;
|
||||
}
|
||||
|
||||
function tableHasColumn(tableName: string, column: string, sysDef: SystemDef): boolean {
|
||||
let answer: boolean = false;
|
||||
for (let i in sysDef.storage.tables) {
|
||||
let table: TableDef = sysDef.storage.tables[i];
|
||||
if (table.name === tableName) {
|
||||
for (let j in table.columns) {
|
||||
let c: ColumnDef = table.columns[j];
|
||||
if (column === c.name) {
|
||||
answer = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!answer && table.relations.length) {
|
||||
for (let k in table.columns) {
|
||||
let r: BelongsToDef = table.relations[k];
|
||||
if (column === `${r.table}_id`) {
|
||||
answer = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (answer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return answer;
|
||||
}
|
||||
|
||||
function uppercaseFirstLetter(input: string)
|
||||
{
|
||||
return input.charAt(0).toUpperCase() + input.slice(1);
|
||||
@ -304,3 +275,15 @@ function lowercaseFirstLetter(input: string)
|
||||
{
|
||||
return input.charAt(0).toLowerCase() + input.slice(1);
|
||||
}
|
||||
|
||||
function buildFunctionName(view: EndpointDef): string {
|
||||
let selector: {[type: string]: (view: EndpointDef) => string} = {
|
||||
'list': (view: EndpointDef) => `get${pluralize(uppercaseFirstLetter(view.component))}` + (view.type === 'count' ? 'Count' : ''),
|
||||
'count': (view: EndpointDef) => `get${pluralize(uppercaseFirstLetter(view.component))}` + (view.type === 'count' ? 'Count' : ''),
|
||||
'item': (view: EndpointDef) => `get${uppercaseFirstLetter(view.component)}`,
|
||||
'update': (view: EndpointDef) => `update${uppercaseFirstLetter(view.component)}`,
|
||||
'create': (view: EndpointDef) => `create${uppercaseFirstLetter(view.component)}`,
|
||||
'delete': (view: EndpointDef) => `delete${uppercaseFirstLetter(view.component)}`,
|
||||
};
|
||||
return selector[view.type](view);
|
||||
}
|
Reference in New Issue
Block a user