Skip to content

Commit a637ee6

Browse files
committed
LKE-14350: Add the bulk create nodes/edges API
1 parent 9f021cb commit a637ee6

File tree

4 files changed

+52
-3
lines changed

4 files changed

+52
-3
lines changed

src/api/GraphEdge/index.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ import {LkErrorKey} from '../../http/response';
99
import {LkEdge, LkSubGraph} from '../graphItemTypes';
1010
import {IDataSourceParams} from '../commonTypes';
1111

12-
import {ICreateEdgeParams, IDeleteEdgeParams, IGetEdgeParams, IUpdateEdgeParams} from './types';
12+
import {
13+
BulkCreateEdgesParams,
14+
ICreateEdgeParams,
15+
IDeleteEdgeParams,
16+
IGetEdgeParams,
17+
IUpdateEdgeParams
18+
} from './types';
1319

1420
export * from './types';
1521

@@ -68,6 +74,18 @@ export class GraphEdgeAPI extends Request {
6874
});
6975
}
7076

77+
/**
78+
* Add a chunk of edges to the graph.
79+
*/
80+
public bulkCreateEdges(this: Request<{items: LkEdge[]}>, params: BulkCreateEdgesParams) {
81+
return this.request({
82+
errors: [UNAUTHORIZED, DATA_SOURCE_UNAVAILABLE, FORBIDDEN],
83+
url: '/:sourceKey/graph/bulk/edges',
84+
method: 'POST',
85+
params: params
86+
});
87+
}
88+
7189
/**
7290
* Get the number of edges in the graph.
7391
*/

src/api/GraphEdge/types.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ export interface IGetEdgeParams extends IGetSubGraphParams {
1010
id: string;
1111
}
1212

13-
export interface ICreateEdgeParams extends IDataSourceParams {
13+
interface EdgeParams {
1414
source: string;
1515
target: string;
1616
type: string;
1717
properties?: GenericObject;
1818
}
1919

20+
export interface ICreateEdgeParams extends EdgeParams, IDataSourceParams {}
21+
2022
export interface IUpdateEdgeParams extends IDataSourceParams {
2123
id: string;
2224
properties?: GenericObject;
@@ -27,3 +29,7 @@ export interface IUpdateEdgeParams extends IDataSourceParams {
2729
export interface IDeleteEdgeParams extends IDataSourceParams {
2830
id: string;
2931
}
32+
33+
export interface BulkCreateEdgesParams extends IDataSourceParams {
34+
edges: EdgeParams[];
35+
}

src/api/GraphNode/index.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {LkNode, LkNodeStatistics, LkSubGraph} from '../graphItemTypes';
1010
import {IDataSourceParams} from '../commonTypes';
1111

1212
import {
13+
BulkCreateNodesParams,
1314
ICreateNodeParams,
1415
IDeleteNodeParams,
1516
IGetAdjacentNodesParams,
@@ -98,6 +99,24 @@ export class GraphNodeAPI extends Request {
9899
});
99100
}
100101

102+
/**
103+
* Add a chunk of nodes to the graph.
104+
*/
105+
public bulkCreateNodes(this: Request<{items: LkNode[]}>, params: BulkCreateNodesParams) {
106+
return this.request({
107+
errors: [
108+
UNAUTHORIZED,
109+
DATA_SOURCE_UNAVAILABLE,
110+
FORBIDDEN,
111+
INVALID_PARAMETER,
112+
CONSTRAINT_VIOLATION
113+
],
114+
url: '/:sourceKey/graph/bulk/nodes',
115+
method: 'POST',
116+
params: params
117+
});
118+
}
119+
101120
/**
102121
* Get the number of nodes in the graph.
103122
*/

src/api/GraphNode/types.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ export interface IGetNodeParams extends IGetSubGraphParams {
1010
id: string;
1111
}
1212

13-
export interface ICreateNodeParams extends IDataSourceParams {
13+
interface NodeParams {
1414
categories: string[];
1515
// TODO type it as LkProperties
1616
properties?: GenericObject;
1717
}
1818

19+
export interface ICreateNodeParams extends NodeParams, IDataSourceParams {}
20+
1921
export interface IUpdateNodeParams extends IDataSourceParams {
2022
id: string;
2123
addedCategories?: string[];
@@ -29,6 +31,10 @@ export interface IDeleteNodeParams extends IDataSourceParams {
2931
id: string;
3032
}
3133

34+
export interface BulkCreateNodesParams extends IDataSourceParams {
35+
nodes: NodeParams[];
36+
}
37+
3238
export interface IGetStatisticsParams extends IDataSourceParams {
3339
ids: string[];
3440
withDigest?: boolean;

0 commit comments

Comments
 (0)