Skip to content

Commit ac2ea34

Browse files
committed
refactoring yet again!
1 parent af0055f commit ac2ea34

2 files changed

Lines changed: 51 additions & 18 deletions

File tree

lib/common/grpc-service.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ GrpcService.prototype.request = function(protoOpts, reqOpts, callback) {
244244

245245
service[protoOpts.method](reqOpts, grpcOpts, function(err, resp) {
246246
if (err) {
247-
respError = GrpcService.getError_(err);
247+
respError = GrpcService.decorateError_(err);
248248

249249
if (respError) {
250250
onResponse(null, respError);
@@ -326,7 +326,7 @@ GrpcService.prototype.requestStream = function(protoOpts, reqOpts) {
326326
request: function() {
327327
return service[protoOpts.method](reqOpts, grpcOpts)
328328
.on('status', function(status) {
329-
var grcpStatus = GrpcService.extendGrpcResponse_({}, status);
329+
var grcpStatus = GrpcService.decorateStatus_(status);
330330

331331
this.emit('response', grcpStatus || status);
332332
});
@@ -335,7 +335,7 @@ GrpcService.prototype.requestStream = function(protoOpts, reqOpts) {
335335

336336
return retryRequest(null, retryOpts)
337337
.on('error', function(err) {
338-
var grpcError = GrpcService.getError_(err);
338+
var grpcError = GrpcService.decorateError_(err);
339339

340340
stream.destroy(grpcError || err);
341341
})
@@ -456,7 +456,7 @@ GrpcService.createDeadline_ = function(timeout) {
456456
* @param {object} response - The grpc response.
457457
* @return {object|null}
458458
*/
459-
GrpcService.extendGrpcResponse_ = function(obj, response) {
459+
GrpcService.decorateGrpcResponse_ = function(obj, response) {
460460
if (response && GRPC_ERROR_CODE_TO_HTTP[response.code]) {
461461
var defaultResponseDetails = GRPC_ERROR_CODE_TO_HTTP[response.code];
462462

@@ -478,9 +478,21 @@ GrpcService.extendGrpcResponse_ = function(obj, response) {
478478
* @param {error|object} err - The grpc error.
479479
* @return {error|null}
480480
*/
481-
GrpcService.getError_ = function(err) {
481+
GrpcService.decorateError_ = function(err) {
482482
var errorObj = is.error(err) ? new Error() : {};
483-
return GrpcService.extendGrpcResponse_(errorObj, err);
483+
return GrpcService.decorateGrpcResponse_(errorObj, err);
484+
};
485+
486+
/**
487+
* Checks for grpc status code and extends the status object with additional
488+
* information
489+
*
490+
* @private
491+
* @param {object} status - The grpc status.
492+
* @return {object|null}
493+
*/
494+
GrpcService.decorateStatus_ = function(status) {
495+
return GrpcService.decorateGrpcResponse_({}, status);
484496
};
485497

486498
/**

test/common/grpc-service.js

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,14 +1122,14 @@ describe('GrpcService', function() {
11221122
});
11231123
});
11241124

1125-
describe('extendGrpcResponse_', function() {
1125+
describe('decorateGrpcResponse_', function() {
11261126
it('should retrieve the HTTP code from the gRPC error map', function() {
11271127
var errorMap = GrpcService.GRPC_ERROR_CODE_TO_HTTP;
11281128
var codes = Object.keys(errorMap);
11291129

11301130
codes.forEach(function(code) {
11311131
var error = new Error();
1132-
var extended = GrpcService.extendGrpcResponse_(error, { code: code });
1132+
var extended = GrpcService.decorateGrpcResponse_(error, { code: code });
11331133

11341134
assert.notStrictEqual(extended, errorMap[code]);
11351135
assert.deepEqual(extended, errorMap[code]);
@@ -1146,46 +1146,46 @@ describe('GrpcService', function() {
11461146
};
11471147

11481148
var error = new Error();
1149-
var extended = GrpcService.extendGrpcResponse_(error, err);
1149+
var extended = GrpcService.decorateGrpcResponse_(error, err);
11501150

11511151
assert.strictEqual(extended.message, errorMessage);
11521152
});
11531153

11541154
it('should return null for unknown errors', function() {
11551155
var error = new Error();
1156-
var extended = GrpcService.extendGrpcResponse_(error, { code: 9999 });
1156+
var extended = GrpcService.decorateGrpcResponse_(error, { code: 9999 });
11571157

11581158
assert.strictEqual(extended, null);
11591159
});
11601160
});
11611161

1162-
describe('getError_', function() {
1162+
describe('decorateError_', function() {
11631163
var fakeError = new Error('err.');
11641164

11651165
beforeEach(function() {
1166-
sinon.stub(GrpcService, 'extendGrpcResponse_', function() {
1166+
sinon.stub(GrpcService, 'decorateGrpcResponse_', function() {
11671167
return fakeError;
11681168
});
11691169
});
11701170

1171-
it('should call extendGrpcResponse with an error object', function() {
1171+
it('should call decorateGrpcResponse_ with an error object', function() {
11721172
var grpcError = new Error('err.');
11731173

11741174
grpcError.code = 2;
11751175

1176-
var error = GrpcService.getError_(grpcError);
1177-
var args = GrpcService.extendGrpcResponse_.getCall(0).args;
1176+
var error = GrpcService.decorateError_(grpcError);
1177+
var args = GrpcService.decorateGrpcResponse_.getCall(0).args;
11781178

11791179
assert.strictEqual(fakeError, error);
11801180
assert(args[0] instanceof Error);
11811181
assert.strictEqual(args[1], grpcError);
11821182
});
11831183

1184-
it('should call extendGrpcResponse with a plain object', function() {
1184+
it('should call decorateGrpcResponse_ with a plain object', function() {
11851185
var grpcMessage = { code: 2 };
11861186

1187-
var error = GrpcService.getError_(grpcMessage);
1188-
var args = GrpcService.extendGrpcResponse_.getCall(0).args;
1187+
var error = GrpcService.decorateError_(grpcMessage);
1188+
var args = GrpcService.decorateGrpcResponse_.getCall(0).args;
11891189

11901190
assert.strictEqual(fakeError, error);
11911191
assert.deepEqual(args[0], {});
@@ -1194,6 +1194,27 @@ describe('GrpcService', function() {
11941194
});
11951195
});
11961196

1197+
describe('decorateStatus_', function() {
1198+
var fakeStatus = { status: 'a' };
1199+
1200+
beforeEach(function() {
1201+
sinon.stub(GrpcService, 'decorateGrpcResponse_', function() {
1202+
return fakeStatus;
1203+
});
1204+
});
1205+
1206+
it('should call decorateGrpcResponse_ with an object', function() {
1207+
var grpcStatus = { code: 2 };
1208+
1209+
var status = GrpcService.decorateStatus_(grpcStatus);
1210+
var args = GrpcService.decorateGrpcResponse_.getCall(0).args;
1211+
1212+
assert.strictEqual(status, fakeStatus);
1213+
assert.deepEqual(args[0], {});
1214+
assert.strictEqual(args[1], grpcStatus);
1215+
});
1216+
});
1217+
11971218
describe('shouldRetryRequest_', function() {
11981219
it('should retry on 429, 500, 502, and 503', function() {
11991220
var shouldRetryFn = GrpcService.shouldRetryRequest_;

0 commit comments

Comments
 (0)