$GENERATED_TS_COMMENT import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { MessageService } from './message.service'; import { serviceBaseUrl } from './config'; #for $table in $tables import { ${JsNameConverter($table.name)} } from './data-objects'; #end for #from generateHelper import JsNameConverter #for $table in $tables @Injectable({ providedIn: 'root' }) export class ${JsNameConverter($table.name)}Service { constructor(private messageService: MessageService, private http: HttpClient) { } async get${JsNameConverter($table.name)}s(): Promise<${JsNameConverter($table.name)}[]> { this.messageService.add(`${JsNameConverter($table.name)}Service: get data`); return this.http.get<${JsNameConverter($table.name)}[]>(`\${serviceBaseUrl}/v1/${table.name}s`).toPromise() } async get${JsNameConverter($table.name)}(id: number): Promise<${JsNameConverter($table.name)}> { this.messageService.add(`${JsNameConverter($table.name)}Service: get data for \${id}`); return this.http.get<${JsNameConverter($table.name)}>(`\${serviceBaseUrl}/v1/${table.name}s/\${id}`).toPromise() } async post${JsNameConverter($table.name)}(item: ${JsNameConverter($table.name)}): Promise<${JsNameConverter($table.name)}> { let itemStr: string = JSON.stringify(item, undefined, 4) this.messageService.add(`${JsNameConverter($table.name)}Service: post data for \${itemStr}`); return this.http.post<${JsNameConverter($table.name)}>(`\${serviceBaseUrl}/v1/${table.name}s`, item).toPromise() } #if (('immutable' not in $table) or (not $table.immutable)) async put${JsNameConverter($table.name)}(item: ${JsNameConverter($table.name)}): Promise<${JsNameConverter($table.name)}> { let itemStr: string = JSON.stringify(item, undefined, 4) this.messageService.add(`${JsNameConverter($table.name)}Service: put data for \${itemStr}`) let id: number = item["id"] return this.http.put<${JsNameConverter($table.name)}>(`\${serviceBaseUrl}/v1/${table.name}s/\${id}`, item).toPromise() } #end if #for $column in $table.columns #if (('foreignkey' in $column) and $column.foreignkey) async get${JsNameConverter($table.name)}sBy${JsNameConverter($column.name)}(id: number): Promise<${JsNameConverter($table.name)}[]> { this.messageService.add(`${JsNameConverter($table.name)}Service: get data by ${JsNameConverter($column.name)} \${id}`); return this.http.get<${JsNameConverter($table.name)}[]>(`\${serviceBaseUrl}/v1/${table.name}s/${column.name}/\${id}`).toPromise() } #end if #end for } #end for