feat: add template for service in schematics

pull/5137/head
Arman Ozak 5 years ago
parent c4f60f35b5
commit dc17cf6435

@ -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) {}
}

@ -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)),
]);

Loading…
Cancel
Save