68 lines
2.6 KiB
Cheetah
68 lines
2.6 KiB
Cheetah
$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
|
|
|