Skip to content

Commit 0119bf1

Browse files
committed
Add metadata parameter to stub, client and txn objects
1 parent a29a53e commit 0119bf1

File tree

10 files changed

+81
-69
lines changed

10 files changed

+81
-69
lines changed

lib/client.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export declare class DgraphClient {
88
private linRead;
99
private debugMode;
1010
constructor(...clients: DgraphClientStub[]);
11-
alter(op: messages.Operation, options?: grpc.CallOptions | null): Promise<types.Payload>;
11+
alter(op: messages.Operation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<types.Payload>;
1212
newTxn(): Txn;
1313
setDebugMode(mode?: boolean): void;
1414
debug(msg: string): void;

lib/client.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ var DgraphClient = (function () {
5353
this.clients = clients;
5454
this.linRead = new messages.LinRead();
5555
}
56-
DgraphClient.prototype.alter = function (op, options) {
56+
DgraphClient.prototype.alter = function (op, metadata, options) {
5757
return __awaiter(this, void 0, void 0, function () {
5858
var c, pl, _a, _b;
5959
return __generator(this, function (_c) {
@@ -62,7 +62,7 @@ var DgraphClient = (function () {
6262
this.debug("Alter request:\n" + util_1.stringifyMessage(op));
6363
c = this.anyClient();
6464
_b = (_a = types).createPayload;
65-
return [4, c.alter(op, options)];
65+
return [4, c.alter(op, metadata, options)];
6666
case 1:
6767
pl = _b.apply(_a, [_c.sent()]);
6868
this.debug("Alter response:\n" + util_1.stringifyMessage(pl));

lib/clientStub.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ export declare class DgraphClientStub {
44
private stub;
55
private promisified;
66
constructor(addr?: string | null, credentials?: grpc.ChannelCredentials | null, options?: object | null);
7-
alter(op: messages.Operation, options?: grpc.CallOptions | null): Promise<messages.Payload>;
8-
query(req: messages.Request, options?: grpc.CallOptions | null): Promise<messages.Response>;
9-
mutate(mu: messages.Mutation, options?: grpc.CallOptions | null): Promise<messages.Assigned>;
10-
commitOrAbort(ctx: messages.TxnContext, options?: grpc.CallOptions | null): Promise<messages.TxnContext>;
11-
checkVersion(check: messages.Check, options?: grpc.CallOptions | null): Promise<messages.Version>;
7+
alter(op: messages.Operation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Payload>;
8+
query(req: messages.Request, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Response>;
9+
mutate(mu: messages.Mutation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Assigned>;
10+
commitOrAbort(ctx: messages.TxnContext, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.TxnContext>;
11+
checkVersion(check: messages.Check, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Version>;
1212
waitForReady(deadline: grpc.Deadline): Promise<void>;
1313
close(): void;
1414
grpcClient(): grpc.Client;

lib/clientStub.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,20 @@ var DgraphClientStub = (function () {
2121
waitForReady: util_1.promisify1(this.stub.waitForReady, this.stub),
2222
};
2323
}
24-
DgraphClientStub.prototype.alter = function (op, options) {
25-
return this.promisified.alter(op, new grpc.Metadata(), ensureCallOptions(options));
24+
DgraphClientStub.prototype.alter = function (op, metadata, options) {
25+
return this.promisified.alter(op, ensureMetadata(metadata), ensureCallOptions(options));
2626
};
27-
DgraphClientStub.prototype.query = function (req, options) {
28-
return this.promisified.query(req, new grpc.Metadata(), ensureCallOptions(options));
27+
DgraphClientStub.prototype.query = function (req, metadata, options) {
28+
return this.promisified.query(req, ensureMetadata(metadata), ensureCallOptions(options));
2929
};
30-
DgraphClientStub.prototype.mutate = function (mu, options) {
31-
return this.promisified.mutate(mu, new grpc.Metadata(), ensureCallOptions(options));
30+
DgraphClientStub.prototype.mutate = function (mu, metadata, options) {
31+
return this.promisified.mutate(mu, ensureMetadata(metadata), ensureCallOptions(options));
3232
};
33-
DgraphClientStub.prototype.commitOrAbort = function (ctx, options) {
34-
return this.promisified.commitOrAbort(ctx, new grpc.Metadata(), ensureCallOptions(options));
33+
DgraphClientStub.prototype.commitOrAbort = function (ctx, metadata, options) {
34+
return this.promisified.commitOrAbort(ctx, ensureMetadata(metadata), ensureCallOptions(options));
3535
};
36-
DgraphClientStub.prototype.checkVersion = function (check, options) {
37-
return this.promisified.checkVersion(check, new grpc.Metadata(), ensureCallOptions(options));
36+
DgraphClientStub.prototype.checkVersion = function (check, metadata, options) {
37+
return this.promisified.checkVersion(check, ensureMetadata(metadata), ensureCallOptions(options));
3838
};
3939
DgraphClientStub.prototype.waitForReady = function (deadline) {
4040
return this.promisified.waitForReady(deadline);
@@ -48,12 +48,12 @@ var DgraphClientStub = (function () {
4848
return DgraphClientStub;
4949
}());
5050
exports.DgraphClientStub = DgraphClientStub;
51+
function ensureMetadata(metadata) {
52+
return (metadata == null) ? new grpc.Metadata() : metadata;
53+
}
5154
function ensureCallOptions(options) {
52-
if (options != null) {
53-
return options;
54-
}
55-
return {
55+
return (options == null) ? {
5656
propagate_flags: grpc.propagate.DEFAULTS,
5757
credentials: null,
58-
};
58+
} : options;
5959
}

lib/txn.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ export declare class Txn {
88
private finished;
99
private mutated;
1010
constructor(dc: DgraphClient);
11-
query(q: string, options?: grpc.CallOptions | null): Promise<types.Response>;
11+
query(q: string, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<types.Response>;
1212
queryWithVars(q: string, vars?: {
1313
[k: string]: any;
14-
} | null, options?: grpc.CallOptions | null): Promise<types.Response>;
15-
mutate(mu: types.Mutation, options?: grpc.CallOptions | null): Promise<messages.Assigned>;
16-
commit(options?: grpc.CallOptions | null): Promise<void>;
17-
discard(options?: grpc.CallOptions | null): Promise<void>;
14+
} | null, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<types.Response>;
15+
mutate(mu: types.Mutation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Assigned>;
16+
commit(metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<void>;
17+
discard(metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<void>;
1818
private mergeContext(src?);
1919
}

lib/txn.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ var Txn = (function () {
4747
this.ctx = new messages.TxnContext();
4848
this.ctx.setLinRead(this.dc.getLinRead());
4949
}
50-
Txn.prototype.query = function (q, options) {
51-
return this.queryWithVars(q, null, options);
50+
Txn.prototype.query = function (q, metadata, options) {
51+
return this.queryWithVars(q, null, metadata, options);
5252
};
53-
Txn.prototype.queryWithVars = function (q, vars, options) {
53+
Txn.prototype.queryWithVars = function (q, vars, metadata, options) {
5454
return __awaiter(this, void 0, void 0, function () {
5555
var req, varsMap_1, c, res, _a, _b;
5656
return __generator(this, function (_c) {
@@ -76,7 +76,7 @@ var Txn = (function () {
7676
this.dc.debug("Query request:\n" + util_1.stringifyMessage(req));
7777
c = this.dc.anyClient();
7878
_b = (_a = types).createResponse;
79-
return [4, c.query(req, options)];
79+
return [4, c.query(req, metadata, options)];
8080
case 1:
8181
res = _b.apply(_a, [_c.sent()]);
8282
this.mergeContext(res.getTxn());
@@ -86,7 +86,7 @@ var Txn = (function () {
8686
});
8787
});
8888
};
89-
Txn.prototype.mutate = function (mu, options) {
89+
Txn.prototype.mutate = function (mu, metadata, options) {
9090
return __awaiter(this, void 0, void 0, function () {
9191
var ag, c, e_1, e_2;
9292
return __generator(this, function (_a) {
@@ -103,7 +103,7 @@ var Txn = (function () {
103103
_a.label = 1;
104104
case 1:
105105
_a.trys.push([1, 3, , 8]);
106-
return [4, c.mutate(mu, options)];
106+
return [4, c.mutate(mu, metadata, options)];
107107
case 2:
108108
ag = _a.sent();
109109
return [3, 8];
@@ -131,7 +131,7 @@ var Txn = (function () {
131131
});
132132
});
133133
};
134-
Txn.prototype.commit = function (options) {
134+
Txn.prototype.commit = function (metadata, options) {
135135
return __awaiter(this, void 0, void 0, function () {
136136
var c, e_3;
137137
return __generator(this, function (_a) {
@@ -148,7 +148,7 @@ var Txn = (function () {
148148
_a.label = 1;
149149
case 1:
150150
_a.trys.push([1, 3, , 4]);
151-
return [4, c.commitOrAbort(this.ctx, options)];
151+
return [4, c.commitOrAbort(this.ctx, metadata, options)];
152152
case 2:
153153
_a.sent();
154154
return [3, 4];
@@ -160,7 +160,7 @@ var Txn = (function () {
160160
});
161161
});
162162
};
163-
Txn.prototype.discard = function (options) {
163+
Txn.prototype.discard = function (metadata, options) {
164164
return __awaiter(this, void 0, void 0, function () {
165165
var c;
166166
return __generator(this, function (_a) {
@@ -175,7 +175,7 @@ var Txn = (function () {
175175
}
176176
this.ctx.setAborted(true);
177177
c = this.dc.anyClient();
178-
return [4, c.commitOrAbort(this.ctx, options)];
178+
return [4, c.commitOrAbort(this.ctx, metadata, options)];
179179
case 1:
180180
_a.sent();
181181
return [2];

src/client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ export class DgraphClient {
4141
*
4242
* 3. Drop the database.
4343
*/
44-
public async alter(op: messages.Operation, options?: grpc.CallOptions | null): Promise<types.Payload> {
44+
public async alter(op: messages.Operation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<types.Payload> {
4545
this.debug(`Alter request:\n${stringifyMessage(op)}`);
4646

4747
const c = this.anyClient();
48-
const pl = types.createPayload(await c.alter(op, options));
48+
const pl = types.createPayload(await c.alter(op, metadata, options));
4949
this.debug(`Alter response:\n${stringifyMessage(pl)}`);
5050

5151
return pl;

src/clientStub.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,24 +65,26 @@ export class DgraphClientStub {
6565
};
6666
}
6767

68-
public alter(op: messages.Operation, options?: grpc.CallOptions | null): Promise<messages.Payload> {
69-
return this.promisified.alter(op, new grpc.Metadata(), ensureCallOptions(options));
68+
public alter(op: messages.Operation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Payload> {
69+
return this.promisified.alter(op, ensureMetadata(metadata), ensureCallOptions(options));
7070
}
7171

72-
public query(req: messages.Request, options?: grpc.CallOptions | null): Promise<messages.Response> {
73-
return this.promisified.query(req, new grpc.Metadata(), ensureCallOptions(options));
72+
public query(req: messages.Request, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Response> {
73+
return this.promisified.query(req, ensureMetadata(metadata), ensureCallOptions(options));
7474
}
7575

76-
public mutate(mu: messages.Mutation, options?: grpc.CallOptions | null): Promise<messages.Assigned> {
77-
return this.promisified.mutate(mu, new grpc.Metadata(), ensureCallOptions(options));
76+
public mutate(mu: messages.Mutation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Assigned> {
77+
return this.promisified.mutate(mu, ensureMetadata(metadata), ensureCallOptions(options));
7878
}
7979

80-
public commitOrAbort(ctx: messages.TxnContext, options?: grpc.CallOptions | null): Promise<messages.TxnContext> {
81-
return this.promisified.commitOrAbort(ctx, new grpc.Metadata(), ensureCallOptions(options));
80+
public commitOrAbort(
81+
ctx: messages.TxnContext, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.TxnContext> {
82+
return this.promisified.commitOrAbort(ctx, ensureMetadata(metadata), ensureCallOptions(options));
8283
}
8384

84-
public checkVersion(check: messages.Check, options?: grpc.CallOptions | null): Promise<messages.Version> {
85-
return this.promisified.checkVersion(check, new grpc.Metadata(), ensureCallOptions(options));
85+
public checkVersion(
86+
check: messages.Check, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Version> {
87+
return this.promisified.checkVersion(check, ensureMetadata(metadata), ensureCallOptions(options));
8688
}
8789

8890
public waitForReady(deadline: grpc.Deadline): Promise<void> {
@@ -98,13 +100,13 @@ export class DgraphClientStub {
98100
}
99101
}
100102

101-
function ensureCallOptions(options?: grpc.CallOptions | null): grpc.CallOptions {
102-
if (options != null) {
103-
return options;
104-
}
103+
function ensureMetadata(metadata?: grpc.Metadata | null): grpc.Metadata {
104+
return (metadata == null) ? new grpc.Metadata() : metadata;
105+
}
105106

106-
return {
107+
function ensureCallOptions(options?: grpc.CallOptions | null): grpc.CallOptions {
108+
return (options == null) ? {
107109
propagate_flags: grpc.propagate.DEFAULTS,
108110
credentials: null,
109-
};
111+
} : options;
110112
}

src/txn.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ export class Txn {
4343
* need to be made in the same transaction, it's convenient to chain the method,
4444
* e.g. client.newTxn().query("...").
4545
*/
46-
public query(q: string, options?: grpc.CallOptions | null): Promise<types.Response> {
47-
return this.queryWithVars(q, null, options);
46+
public query(q: string, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<types.Response> {
47+
return this.queryWithVars(q, null, metadata, options);
4848
}
4949

5050
/**
@@ -54,6 +54,7 @@ export class Txn {
5454
public async queryWithVars(
5555
q: string,
5656
vars?: { [k: string]: any } | null, // tslint:disable-line no-any
57+
metadata?: grpc.Metadata | null,
5758
options?: grpc.CallOptions | null,
5859
): Promise<types.Response> {
5960
if (this.finished) {
@@ -77,7 +78,7 @@ export class Txn {
7778
this.dc.debug(`Query request:\n${stringifyMessage(req)}`);
7879

7980
const c = this.dc.anyClient();
80-
const res = types.createResponse(await c.query(req, options));
81+
const res = types.createResponse(await c.query(req, metadata, options));
8182
this.mergeContext(res.getTxn());
8283
this.dc.debug(`Query response:\n${stringifyMessage(res)}`);
8384

@@ -96,7 +97,8 @@ export class Txn {
9697
* If the mutation fails, then the transaction is discarded and all future
9798
* operations on it will fail.
9899
*/
99-
public async mutate(mu: types.Mutation, options?: grpc.CallOptions | null): Promise<messages.Assigned> {
100+
public async mutate(
101+
mu: types.Mutation, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<messages.Assigned> {
100102
if (this.finished) {
101103
this.dc.debug(`Mutate request (ERR_FINISHED):\nmutation = ${stringifyMessage(mu)}`);
102104
throw ERR_FINISHED;
@@ -109,7 +111,7 @@ export class Txn {
109111
let ag: messages.Assigned;
110112
const c = this.dc.anyClient();
111113
try {
112-
ag = await c.mutate(<messages.Mutation>mu, options);
114+
ag = await c.mutate(<messages.Mutation>mu, metadata, options);
113115
} catch (e) {
114116
// Since a mutation error occurred, the txn should no longer be used (some
115117
// mutations could have applied but not others, but we don't know which ones).
@@ -145,7 +147,7 @@ export class Txn {
145147
* It's up to the user to decide if they wish to retry. In this case, the user
146148
* should create a new transaction.
147149
*/
148-
public async commit(options?: grpc.CallOptions | null): Promise<void> {
150+
public async commit(metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<void> {
149151
if (this.finished) {
150152
throw ERR_FINISHED;
151153
}
@@ -157,7 +159,7 @@ export class Txn {
157159

158160
const c = this.dc.anyClient();
159161
try {
160-
await c.commitOrAbort(this.ctx, options);
162+
await c.commitOrAbort(this.ctx, metadata, options);
161163
} catch (e) {
162164
throw isAbortedError(e) ? ERR_ABORTED : e;
163165
}
@@ -173,7 +175,7 @@ export class Txn {
173175
* is unavailable. In these cases, the server will eventually do the transaction
174176
* clean up.
175177
*/
176-
public async discard(options?: grpc.CallOptions | null): Promise<void> {
178+
public async discard(metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): Promise<void> {
177179
if (this.finished) {
178180
return;
179181
}
@@ -185,7 +187,7 @@ export class Txn {
185187

186188
this.ctx.setAborted(true);
187189
const c = this.dc.anyClient();
188-
await c.commitOrAbort(this.ctx, options);
190+
await c.commitOrAbort(this.ctx, metadata, options);
189191
}
190192

191193
private mergeContext(src?: messages.TxnContext | null): void {

tests/clientStub.spec.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@ import * as dgraph from "../src";
44

55
import { SERVER_ADDR, SERVER_CREDENTIALS, setup } from "./helper";
66

7-
async function checkVersion(stub: dgraph.DgraphClientStub): Promise<void> {
8-
const v = await stub.checkVersion(new dgraph.Check());
9-
const tag = v.getTag();
7+
function validateVersionObject(version: dgraph.Version) {
8+
const tag = version.getTag();
109
expect(typeof tag).toEqual("string");
1110
expect(tag).toBeDefined();
1211
}
1312

13+
async function checkVersion(stub: dgraph.DgraphClientStub): Promise<void> {
14+
validateVersionObject(await stub.checkVersion(new dgraph.Check()));
15+
}
16+
1417
describe("clientStub", () => {
1518
describe("constructor", () => {
1619
it("should accept undefined and null arguments", async () => {
@@ -25,9 +28,14 @@ describe("clientStub", () => {
2528
await checkVersion(client.anyClient());
2629
});
2730

31+
it("should check version with metadata", async () => {
32+
const clientStub = new dgraph.DgraphClientStub(SERVER_ADDR, SERVER_CREDENTIALS);
33+
validateVersionObject(await clientStub.checkVersion(new dgraph.Check(), new grpc.Metadata()));
34+
});
35+
2836
it("should check version with call options", async () => {
2937
const clientStub = new dgraph.DgraphClientStub(SERVER_ADDR, SERVER_CREDENTIALS);
30-
const p = clientStub.checkVersion(new dgraph.Check(), {
38+
const p = clientStub.checkVersion(new dgraph.Check(), null, {
3139
deadline: 0,
3240
propagate_flags: grpc.propagate.DEFAULTS,
3341
credentials: null,

0 commit comments

Comments
 (0)