diff --git a/npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template b/npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template index e69de29bb2..8200590bdf 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template +++ b/npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template @@ -0,0 +1,25 @@ +import { RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core';<% +for (let _import of imports) { %> +import type { <%= _import.specifiers.join(', ') %> } from '<%= _import.path %>';<% } %> + +@Injectable({ + providedIn: 'root', +}) +export class <%= name %>Service { + apiName = '<%= apiName %>';<% + for (let method of methods) { %> + + <%= camel(method.signature.name) %> = (<%= serializeParameters(method.signature.parameters) %>) => + this.restService.request<<%= method.body.requestType %>, <%= method.body.responseType %>>({ + method: '<%= method.body.method %>', + url: `/<%= method.body.url %>`,<% + if (method.body.params.length) { %> + params: { <%= method.body.params.join(', ') %> }<% } + if (method.body.body) { %> + body: <%= method.body.body %>,<% } %> + }, + { apiName: this.apiName });<% } %> + + constructor(private restService: RestService) {} +} diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 2c3134d03f..dc885b17ff 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -1,7 +1,7 @@ import { normalize, strings } from '@angular-devkit/core'; import { applyTemplates, branchAndMerge, chain, move, SchematicContext, SchematicsException, Tree, url } from '@angular-devkit/schematics'; import { Exception } from '../../enums'; -import { applyWithOverwrite, buildDefaultPath, createApiDefinitionReader, createControllerToServiceMapper, interpolate, parseNamespace, resolveProject } from '../../utils'; +import { applyWithOverwrite, buildDefaultPath, createApiDefinitionReader, createControllerToServiceMapper, interpolate, resolveProject, serializeParameters } from '../../utils'; import * as cases from '../../utils/text'; import type { Schema as GenerateProxySchema } from './schema'; @@ -23,17 +23,11 @@ export default function(params: GenerateProxySchema) { const createServiceFiles = chain( controllers.map(controller => { - console.log(JSON.stringify(mapControllerToService(controller), null, 2)); - return applyWithOverwrite(url('./files-service'), [ applyTemplates({ ...cases, - solution, - namespace: parseNamespace(solution, controller.type), - name: controller.controllerName, - apiName: data.modules[moduleName].remoteServiceName, - apiUrl: controller.actions[0]?.url, - service: mapControllerToService(controller), + serializeParameters, + ...mapControllerToService(controller), }), move(normalize(targetPath)), ]);