refactor buildFunctionName
This commit is contained in:
@ -110,23 +110,23 @@ function insertMapperCode(view: EndpointDef, outDir: string): Promise<void> {
|
|||||||
function createMapperFunc(view: EndpointDef): string {
|
function createMapperFunc(view: EndpointDef): string {
|
||||||
let func: string = '';
|
let func: string = '';
|
||||||
let funcName: 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);
|
func = buildGetList(view);
|
||||||
} else if (view.type.indexOf('item') !== -1) {
|
} else if (view.type === 'item') {
|
||||||
funcName = `get${uppercaseFirstLetter(view.component)}`;
|
funcName = buildFunctionName(view);
|
||||||
} else if (view.type.indexOf('update') !== -1) {
|
} else if (view.type === 'update') {
|
||||||
funcName = `update${uppercaseFirstLetter(view.component)}`;
|
funcName = buildFunctionName(view);
|
||||||
} else if (view.type.indexOf('create') !== -1) {
|
} else if (view.type === 'create') {
|
||||||
func = buildCreateFunc(view);
|
func = buildCreateFunc(view);
|
||||||
} else if (view.type.indexOf('delete') !== -1) {
|
} else if (view.type === 'delete') {
|
||||||
funcName = `delete${uppercaseFirstLetter(view.component)}`;
|
funcName = buildFunctionName(view);
|
||||||
}
|
}
|
||||||
return func;
|
return func;
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildCreateFunc(view: EndpointDef): string {
|
function buildCreateFunc(view: EndpointDef): string {
|
||||||
let func: string = '';
|
let func: string = '';
|
||||||
let funcName = `create${uppercaseFirstLetter(view.component)}`;
|
let funcName = buildFunctionName(view);
|
||||||
let query: string = `INSERT INTO ${view.table} SET `;
|
let query: string = `INSERT INTO ${view.table} SET `;
|
||||||
let requiredQueryValues: string = '';
|
let requiredQueryValues: string = '';
|
||||||
let optionalValuesCode: string = '';
|
let optionalValuesCode: string = '';
|
||||||
@ -176,7 +176,7 @@ function buildGetList(view: EndpointDef): string {
|
|||||||
let query: string = '';
|
let query: string = '';
|
||||||
let tables: string = view.join?.length ? buildJoin(view) : `${view.table}`;
|
let tables: string = view.join?.length ? buildJoin(view) : `${view.table}`;
|
||||||
let filters: string = '';
|
let filters: string = '';
|
||||||
funcName = `get${pluralize(uppercaseFirstLetter(view.component))}` + (view.type === 'count' ? 'Count' : '');
|
funcName = buildFunctionName(view);
|
||||||
|
|
||||||
let requiredFilterStrings = [];
|
let requiredFilterStrings = [];
|
||||||
let requiredQueryValues = '';
|
let requiredQueryValues = '';
|
||||||
@ -266,35 +266,6 @@ function buildOrderBy(view: EndpointDef): string {
|
|||||||
return orderBy;
|
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)
|
function uppercaseFirstLetter(input: string)
|
||||||
{
|
{
|
||||||
return input.charAt(0).toUpperCase() + input.slice(1);
|
return input.charAt(0).toUpperCase() + input.slice(1);
|
||||||
@ -304,3 +275,15 @@ function lowercaseFirstLetter(input: string)
|
|||||||
{
|
{
|
||||||
return input.charAt(0).toLowerCase() + input.slice(1);
|
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