UNPKG

service-activities-node

Version:
118 lines (96 loc) 4.35 kB
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 ); } }