service-activities-node
Version:
Party activities tracking microservice in Node.js / ES2017
118 lines (96 loc) • 4.35 kB
text/typescript
const services = require('../../../../src/protos/activities_v1_grpc_pb');
const messages = require('../../../../src/protos/activities_v1_pb');
import { IReferences } from 'pip-services3-commons-nodex';
import { Descriptor } from 'pip-services3-commons-nodex';
import { FilterParams } from 'pip-services3-commons-nodex';
import { GrpcService } from 'pip-services3-grpc-nodex';
import { IActivitiesController } from '../../logic/IActivitiesController';
import { ActivitiesGrpcConverterV1 } from './ActivitiesGrpcConverterV1';
export class ActivitiesGrpcServiceV1 extends GrpcService {
private _controller: IActivitiesController;
public constructor() {
super(services.ActivitiesService);
this._dependencyResolver.put('controller', new Descriptor("service-activities", "controller", "default", "*", "*"));
}
public setReferences(references: IReferences): void {
super.setReferences(references);
this._controller = this._dependencyResolver.getOneRequired<IActivitiesController>('controller');
}
private async getPartyActivities(call: any): Promise<any> {
let correlationId = call.request.getCorrelationId();
let filter = new FilterParams();
ActivitiesGrpcConverterV1.setMap(filter, call.request.getFilterMap());
let paging = ActivitiesGrpcConverterV1.toPagingParams(call.request.getPaging());
let response = new messages.PartyActivityPageReply();
try {
let result = await this._controller.getPartyActivities(correlationId, filter, paging);
let page = ActivitiesGrpcConverterV1.fromPartyActivityPage(result);
response.setPage(page);
} catch (err) {
let error = ActivitiesGrpcConverterV1.fromError(err);
response.setError(error);
}
return response;
}
private async logPartyActivity(call: any): Promise<any> {
let correlationId = call.request.getCorrelationId();
let activity = ActivitiesGrpcConverterV1.toPartyActivity(call.request.getActivity());
let response = new messages.PartyActivityObjectReply();
try {
let result = await this._controller.logPartyActivity(correlationId, activity);
activity = ActivitiesGrpcConverterV1.fromPartyActivity(result);
if (result)
response.setPartyActivity(activity);
} catch (err) {
let error = ActivitiesGrpcConverterV1.fromError(err);
response.setError(error);
}
return response;
}
private async batchPartyActivities(call: any): Promise<any> {
let correlationId = call.request.getCorrelationId();
let activities = ActivitiesGrpcConverterV1.toPartyActivities(call.request.getActivitiesList());
let response = new messages.PartyActivityOnlyErrorReply();
try {
await this._controller.batchPartyActivities(correlationId, activities);
} catch (err) {
let error = ActivitiesGrpcConverterV1.fromError(err);
response.setError(error);
}
return response;
}
private async deletePartyActivities(call: any): Promise<any> {
let correlationId = call.request.getCorrelationId();
let filter = FilterParams.fromValue(call.request.filterMap);
let response = new messages.PartyActivityOnlyErrorReply();
try {
await this._controller.deletePartyActivities(correlationId, filter);
} catch (err) {
let error = ActivitiesGrpcConverterV1.fromError(err);
response.setError(error);
}
return response;
}
public register() {
this.registerMethod(
'get_party_activities',
null,
this.getPartyActivities
);
this.registerMethod(
'log_party_activity',
null,
this.logPartyActivity
);
this.registerMethod(
'batch_party_activities',
null,
this.batchPartyActivities
);
this.registerMethod(
'delete_party_activities',
null,
this.deletePartyActivities
);
}
}