-
Notifications
You must be signed in to change notification settings - Fork 436
/
book_service_pb_service.js
100 lines (90 loc) · 2.7 KB
/
book_service_pb_service.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// package: examplecom.library
// file: examplecom/library/book_service.proto
var examplecom_library_book_service_pb = require("../../examplecom/library/book_service_pb");
var grpc = require("grpc-web-client").grpc;
var BookService = (function () {
function BookService() {}
BookService.serviceName = "examplecom.library.BookService";
return BookService;
}());
BookService.GetBook = {
methodName: "GetBook",
service: BookService,
requestStream: false,
responseStream: false,
requestType: examplecom_library_book_service_pb.GetBookRequest,
responseType: examplecom_library_book_service_pb.Book
};
BookService.QueryBooks = {
methodName: "QueryBooks",
service: BookService,
requestStream: false,
responseStream: true,
requestType: examplecom_library_book_service_pb.QueryBooksRequest,
responseType: examplecom_library_book_service_pb.Book
};
exports.BookService = BookService;
function BookServiceClient(serviceHost, options) {
this.serviceHost = serviceHost;
this.options = options || {};
}
BookServiceClient.prototype.getBook = function getBook(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
grpc.unary(BookService.GetBook, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
callback(Object.assign(new Error(response.statusMessage), { code: response.status, metadata: response.trailers }), null);
} else {
callback(null, response.message);
}
}
}
});
};
BookServiceClient.prototype.queryBooks = function queryBooks(requestMessage, metadata) {
var listeners = {
data: [],
end: [],
status: []
};
var client = grpc.invoke(BookService.QueryBooks, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onMessage: function (responseMessage) {
listeners.data.forEach(function (handler) {
handler(responseMessage);
});
},
onEnd: function (status, statusMessage, trailers) {
listeners.end.forEach(function (handler) {
handler();
});
listeners.status.forEach(function (handler) {
handler({ code: status, details: statusMessage, metadata: trailers });
});
listeners = null;
}
});
return {
on: function (type, handler) {
listeners[type].push(handler);
return this;
},
cancel: function () {
listeners = null;
client.close();
}
};
};
exports.BookServiceClient = BookServiceClient;