Skip to content

Commit 783ac48

Browse files
committed
[ClientSDKs/Javascript] Added the sample project
1 parent 7797046 commit 783ac48

File tree

8 files changed

+21920
-0
lines changed

8 files changed

+21920
-0
lines changed

client/package-lock.json

Lines changed: 4326 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sample_js_sdk_project/bundle.js

Lines changed: 13282 additions & 0 deletions
Large diffs are not rendered by default.

sample_js_sdk_project/index.html

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport"
6+
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
8+
<title>Tic Tac Toe</title>
9+
<link rel="stylesheet" href="style.css">
10+
</head>
11+
<body>
12+
<section>
13+
<h1 class="game--title">Tic Tac Toe</h1>
14+
<div class="game--container">
15+
<div data-cell-index="0" class="cell"></div>
16+
<div data-cell-index="1" class="cell"></div>
17+
<div data-cell-index="2" class="cell"></div>
18+
<div data-cell-index="3" class="cell"></div>
19+
<div data-cell-index="4" class="cell"></div>
20+
<div data-cell-index="5" class="cell"></div>
21+
<div data-cell-index="6" class="cell"></div>
22+
<div data-cell-index="7" class="cell"></div>
23+
<div data-cell-index="8" class="cell"></div>
24+
</div>
25+
<h2 class="game--status"></h2>
26+
<button class="game--restart">Restart Game</button>
27+
</section>
28+
29+
<script src="script.js"></script>
30+
<script src="bundle.js"></script>
31+
</body>
32+
</html>

sample_js_sdk_project/index.js

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
var RaiDbSdk = require('rai_db_sdk');
2+
3+
4+
var api = new RaiDbSdk.DefaultApi()
5+
6+
function createDatabase(dbname, overwrite, callback) {
7+
8+
var transaction = new RaiDbSdk.Transaction(); // {Transaction} Optional description in *Markdown*
9+
transaction.mode = overwrite ? RaiDbSdk.Transaction.ModeEnum.CREATE_OVERWRITE : RaiDbSdk.Transaction.ModeEnum.CREATE;
10+
transaction.dbname = dbname;
11+
transaction.actions = [];
12+
13+
// transaction.
14+
return api.transactionPost(transaction, callback);
15+
}
16+
17+
function runAction(dbname, action, isReadOnly, mode, callback, name) {
18+
var transaction = new RaiDbSdk.Transaction(); // {Transaction} Optional description in *Markdown*
19+
transaction.mode = mode;
20+
transaction.dbname = dbname;
21+
transaction.readonly = isReadOnly || true;
22+
23+
var labeledAction = new RaiDbSdk.LabeledAction();
24+
labeledAction.name = name || 'single';
25+
labeledAction.action = action;
26+
27+
transaction.actions = [];
28+
transaction.actions.push(labeledAction);
29+
30+
// transaction.
31+
return api.transactionPost(transaction, function(error, data, response) {
32+
callback(error, data.actions[0].result, response);
33+
});
34+
}
35+
36+
function query(dbname, queryString, callback, outputs, inputs, persist, path, name, isReadOnly) {
37+
var action = new RaiDbSdk.QueryAction();
38+
39+
action.source = new RaiDbSdk.Source();
40+
action.source.name = name || "query";
41+
action.source.path = path || "";
42+
action.source.value = queryString;
43+
44+
action.inputs = inputs || [];
45+
action.outputs = outputs || [];
46+
action.persist = persist || [];
47+
action.type = 'QueryAction';
48+
49+
return runAction(dbname, action, isReadOnly, RaiDbSdk.Transaction.ModeEnum.OPEN, callback);
50+
}
51+
52+
function callback_gen(apiname){
53+
return function(error, data, response) {
54+
if (error || (data.problems && data.problems.length > 0)) {
55+
if(error) {
56+
console.error(apiname + ' API call error: ' + error);
57+
} else {
58+
console.error(apiname + ' API call error: ' + data);
59+
}
60+
} else {
61+
console.log(apiname + ' API called successfully. Returned data: ' + data);
62+
}
63+
}
64+
};
65+
66+
function makeDbName(length) {
67+
var result = '';
68+
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
69+
var charactersLength = characters.length;
70+
for ( var i = 0; i < length; i++ ) {
71+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
72+
}
73+
return result;
74+
}
75+
76+
// dbname = makeDbName(10)
77+
// createDatabase(dbname, false, function(error, data, response) {
78+
// callback_gen("create_database")(error, data, response);
79+
// queryString = "def result = 1";
80+
// outputs = ["result"];
81+
// query(dbname, queryString, callback_gen("q1"), outputs);
82+
// });
83+
84+
var dbname = "tictactoe_db";
85+
86+
moves = [
87+
[1,3,"o"],
88+
[1,2,"x"],
89+
[1,1,"o"],
90+
[2,3,"x"],
91+
[2,2,"o"],
92+
[3,3,"x"],
93+
[3,1,"o"],
94+
[3,2,"x"],
95+
]
96+
97+
var res = []
98+
idx = 0
99+
while(res.length < 1 && idx < moves.length){
100+
101+
var queryString = `
102+
ic game_already_has_a_winner{
103+
not(win(test_board1, "x") or win(test_board1, "o"))
104+
}
105+
106+
ic cats_game {
107+
exists(x y: test_board1(x, y, "-"))
108+
}
109+
`;
110+
query(dbname, queryString, callback_gen("q1"));
111+
112+
++idx;
113+
}
114+
115+
var outputs = ["result"];

0 commit comments

Comments
 (0)