Skip to content

Commit 298bcb7

Browse files
authored
Merge pull request #23 from SlicingDice/feature/delete-update-methods
Add support to delete and update
2 parents 9cc8a23 + 44c7eac commit 298bcb7

File tree

7 files changed

+525
-8
lines changed

7 files changed

+525
-8
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Change Log
22

3+
## [2.1.0]
4+
### Added
5+
- UPDATE support
6+
- DELETE support
7+
38
## [2.0.2]
49
### Updated
510
- Change SQL endpoint from `/query/sql` to `sql`

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SlicingDice Official JavaScript Client (v2.0.2)
1+
# SlicingDice Official JavaScript Client (v2.1.0)
22

33
Official JavaScript client for [SlicingDice - Data Warehouse and Analytics Database as a Service](https://www.slicingdice.com/).
44

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "slicerjs",
3-
"version": "2.0.2",
3+
"version": "2.1.0",
44
"description": "Official JavaScript client for SlicingDice, Data Warehouse and Analytics Database as a Service.",
55
"main": "src/slicer.js",
66
"scripts": {

src/slicer.js

+31-1
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,9 @@
366366
score: '/data_extraction/score/',
367367
saved: '/query/saved/',
368368
database: '/database/',
369-
sql: '/sql/'
369+
sql: '/sql/',
370+
delete: '/delete/',
371+
update: '/update/'
370372
};
371373
this._setUpRequest();
372374
}
@@ -727,6 +729,34 @@
727729
levelKey: 0
728730
}, true);
729731
}
732+
733+
/* Make a delete request
734+
*
735+
* @param (array) query - The query that represents the data to be deleted
736+
*/
737+
delete(query) {
738+
let path = this._sdRoutes.delete;
739+
return this.makeRequest({
740+
path: path,
741+
reqType: "POST",
742+
data: query,
743+
levelKey: 2
744+
});
745+
}
746+
747+
/* Make a update request
748+
*
749+
* @param (array) query - The query that represents the data to be updated
750+
*/
751+
update(query) {
752+
let path = this._sdRoutes.update;
753+
return this.makeRequest({
754+
path: path,
755+
reqType: "POST",
756+
data: query,
757+
levelKey: 2
758+
});
759+
}
730760
}
731761

732762
module.exports = SlicingDice;
+158
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
[
2+
{
3+
"name": "Test for a DELETION on a specific ENTITY ID.",
4+
"description": "In this test we will delete a record based on the ENTITY ID.",
5+
"columns": [
6+
{
7+
"type": "string",
8+
"cardinality": "high",
9+
"storage": "latest-value",
10+
"name": "string_test_column",
11+
"api-name": "string-test-column"
12+
},
13+
{
14+
"storage": "latest-value",
15+
"type": "integer",
16+
"name": "integer_test_column",
17+
"api-name": "integer-test-column"
18+
}
19+
],
20+
"insert": {
21+
"Entity1": {
22+
"string-test-column": "value:deleted_entity",
23+
"integer-test-column": 1000001
24+
},
25+
"Entity2": {
26+
"string-test-column": "value:deleted_entity",
27+
"integer-test-column": 1000001
28+
},
29+
"Entity3": {
30+
"string-test-column": "value:deleted_entity",
31+
"integer-test-column": 1000001
32+
},
33+
"Entity4": {
34+
"string-test-column": "value:deleted_entity",
35+
"integer-test-column": 1000001
36+
},
37+
"Entity5": {
38+
"string-test-column": "value:deleted_entity",
39+
"integer-test-column": 1000001
40+
},
41+
"Entity6": {
42+
"string-test-column": "value:deleted_entity",
43+
"integer-test-column": 1000001
44+
}
45+
},
46+
"additional_operation": {
47+
"query":[
48+
{
49+
"entity-id":{
50+
"equals":"Entity3"
51+
}
52+
}
53+
]
54+
},
55+
"result_additional": {
56+
"status": "ignore",
57+
"result": {
58+
"deleted": 1
59+
},
60+
"took": "ignore"
61+
},
62+
"query": {
63+
"query-name": "deleted_query",
64+
"query": [
65+
{
66+
"string-test-column": {
67+
"equals": "value:deleted_entity"
68+
}
69+
}
70+
]
71+
},
72+
"expected": {
73+
"status": "ignore",
74+
"result": {
75+
"deleted_query": 5
76+
},
77+
"took": "ignore"
78+
}
79+
},
80+
{
81+
"name": "Test for a DELETION on multiple values.",
82+
"description": "In this test we will delete a record based on a value from a column.",
83+
"columns": [
84+
{
85+
"type": "string",
86+
"cardinality": "high",
87+
"storage": "latest-value",
88+
"name": "string_test_column",
89+
"api-name": "string-test-column"
90+
},
91+
{
92+
"storage": "latest-value",
93+
"type": "integer",
94+
"name": "integer_test_column",
95+
"api-name": "integer-test-column"
96+
}
97+
],
98+
"insert": {
99+
"Entity1": {
100+
"string-test-column": "value:deleted_entity",
101+
"integer-test-column": 1000001
102+
},
103+
"Entity2": {
104+
"string-test-column": "value:deleted_entity",
105+
"integer-test-column": 1000001
106+
},
107+
"Entity3": {
108+
"string-test-column": "value:deleted_entity",
109+
"integer-test-column": 1000001
110+
},
111+
"Entity4": {
112+
"string-test-column": "value:not_deleted_entity",
113+
"integer-test-column": 1000001
114+
},
115+
"Entity5": {
116+
"string-test-column": "value:not_deleted_entity",
117+
"integer-test-column": 1000001
118+
},
119+
"Entity6": {
120+
"string-test-column": "value:not_deleted_entity",
121+
"integer-test-column": 1000001
122+
}
123+
},
124+
"additional_operation": {
125+
"query":[
126+
{
127+
"string-test-column":{
128+
"equals":"value:deleted_entity"
129+
}
130+
}
131+
]
132+
},
133+
"result_additional": {
134+
"status": "ignore",
135+
"result": {
136+
"deleted": 3
137+
},
138+
"took": "ignore"
139+
},
140+
"query": {
141+
"query-name": "deleted_query",
142+
"query": [
143+
{
144+
"string-test-column": {
145+
"equals": "value:deleted_entity"
146+
}
147+
}
148+
]
149+
},
150+
"expected": {
151+
"status": "ignore",
152+
"result": {
153+
"deleted_query": 0
154+
},
155+
"took": "ignore"
156+
}
157+
}
158+
]

0 commit comments

Comments
 (0)