Skip to content

Commit da70cdf

Browse files
committed
- return error response in JsonRpcClient
1 parent 4f40dc1 commit da70cdf

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

src/client-proxy.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ClientProxy } from "@nestjs/microservices";
22
import axios from "axios";
3+
import { resolve } from "dns";
34

45
export class JSONRPCClient extends ClientProxy {
56
constructor(private readonly url: string) {
@@ -30,13 +31,15 @@ export class JSONRPCClient extends ClientProxy {
3031
{
3132
get(obj, prop) {
3233
return function(params: any) {
33-
// console.log(url);
34-
// console.log(namespace);
35-
// console.log(prop.toString());
36-
// console.log(params);
3734
return axios
3835
.post(url, { method: namespace + "." + prop.toString(), params, jsonrpc: "2.0" })
39-
.then(res => Promise.resolve(res));
36+
.then(res => Promise.resolve(res))
37+
.catch(err => {
38+
const { code, message, data } = err.response.data;
39+
let resp = { code, message, data };
40+
41+
return Promise.resolve(resp);
42+
});
4043
};
4144
}
4245
}

src/index.spec.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,23 @@ describe("json-rpc-e2e", () => {
6161
.then(res => expect(res.data).toStrictEqual({ data: "hi" }));
6262
});
6363

64+
it(`should return an error from JSONRPCClient call`, () => {
65+
console.log("Testing RPC CLient");
66+
const client = new JSONRPCClient("http://localhost:8080/rpc/v1");
67+
const service = client.getService<TestService>("test");
68+
69+
const errorObj = {
70+
message: "RPC EXCEPTION",
71+
code: 403,
72+
data: {
73+
fromService: "Test Service",
74+
params: { data: "hi" }
75+
}
76+
};
77+
78+
return service.testError({ data: "hi" }).then(res => expect(res).toStrictEqual(errorObj));
79+
});
80+
6481
afterAll(async () => {
6582
await app.close();
6683
});

src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ export class JSONRPCServer extends Server implements CustomTransportStrategy {
6060

6161
app.post(this.options.path, express.json(), async (req, res) => {
6262
// let handlers = this.getHandlers();
63-
console.log(req.body);
6463

6564
let handler = this.getHandlerByPattern(req.body.method);
6665
console.log(handler);

src/test-handler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,5 @@ export class TestService implements ITestClientService {
9797

9898
export interface ITestClientService {
9999
invokeClientService(params: any): any;
100+
testError(params: any): any;
100101
}

0 commit comments

Comments
 (0)